List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getJavaProject
IJavaProject getJavaProject();
null
if this element is not contained in any Java project (for instance, the IJavaModel
is not contained in any Java project). From source file:com.google.gdt.eclipse.designer.wizards.model.mvp.ViewComposite.java
License:Open Source License
private void factoryButtonPressed() { final IPackageFragmentRoot packageRoot = getRoot(); if (packageRoot == null) { return;/*from w w w . j a v a 2 s .c om*/ } Shell shell = Display.getCurrent().getActiveShell(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ITreeContentProvider contentProvider = new StandardJavaElementContentProvider(); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(shell, labelProvider, contentProvider); dialog.setTitle("ClientFactory interface selection"); dialog.setMessage("Choose a ClientFactory interface:"); dialog.setAllowMultiple(false); dialog.setHelpAvailable(false); // dialog.setValidator(new ISelectionStatusValidator() { public IStatus validate(Object[] selection) { if (selection.length == 1) { if (selection[0] instanceof ICompilationUnit) { try { if (validateFactoryCompilationUnit((ICompilationUnit) selection[0]) == null) { return StatusUtils.OK_STATUS; } } catch (Exception e) { DesignerPlugin.log(e); } } } return StatusUtils.ERROR_STATUS; } }); dialog.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { // check project if (element instanceof IJavaProject) { return element.equals(packageRoot.getJavaProject()); } // check package fragment root if (element instanceof IPackageFragmentRoot) { return element.equals(packageRoot); } // check package fragment if (element instanceof IPackageFragment) { try { IPackageFragment packageFragment = (IPackageFragment) element; return packageFragment.getCompilationUnits().length > 0 && Utils.isModuleSourcePackage(packageFragment); } catch (Exception e) { DesignerPlugin.log(e); return false; } } // check *.java if (element instanceof ICompilationUnit) { return true; } return false; } }); dialog.setInput(packageRoot); { String factoryClassName = factoryNameField.getText(); if (!StringUtils.isEmpty(factoryClassName)) { IPackageFragment packageFragment = packageRoot .getPackageFragment(CodeUtils.getPackage(factoryClassName)); if (packageFragment.exists()) { ICompilationUnit compilationUnit = packageFragment .getCompilationUnit(CodeUtils.getShortClass(factoryClassName) + ".java"); if (compilationUnit.exists()) { dialog.setInitialSelection(compilationUnit); } } } } if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof ICompilationUnit) { ICompilationUnit unit = (ICompilationUnit) element; factoryNameField.setText(unit.findPrimaryType().getFullyQualifiedName()); } } }
From source file:com.google.gdt.eclipse.designer.wizards.model.mvp.ViewComposite.java
License:Open Source License
@Override protected String validate() { // reset values state viewPackageFragment = null;/*from w ww. j a v a 2 s. c o m*/ placePackageFragment = null; activityPackageFragment = null; descriptionText.setText(""); // process names fields validateNames(); // validate values ... IPackageFragmentRoot packageRoot = null; // validate source folder { if (sourceField.getText().length() == 0) { return "Source folder name can not be empty."; } packageRoot = sourceField.getRoot(); if (packageRoot == null) { return "Source folder is invalid."; } else { // validate project if (!Utils.supportMvp(packageRoot.getJavaProject())) { return "Current project nor support MVP framework (need gwt-2.1 or higher)."; } } } // validate package name String packageName; IPackageFragment basePkg; { packageName = packageField.getText(); if (packageName.length() == 0) { return "Package can not be empty."; } // check that package name is valid IStatus status = JavaConventions.validatePackageName(packageName, null, null); if (status.getSeverity() == IStatus.ERROR) { return status.getMessage(); } // check for client package basePkg = packageRoot.getPackageFragment(packageName); try { if (!Utils.isModuleSourcePackage(basePkg)) { return "GWT widgets can be used only in client package of some GWT module."; } } catch (Exception e) { return "Exception: " + e.getMessage(); } } // try get special packages for Places & Activities IPackageFragment viewPkg = basePkg; IPackageFragment placePkg = basePkg; IPackageFragment activityPkg = basePkg; { try { IPackageFragment rootSourcePackage = Utils.getRootSourcePackage(basePkg); List<String> packageNameTemplates = generatePackageNameTemplates(packageName, rootSourcePackage.getElementName()); // select 'place' package { IPackageFragment existsPackageFragment = selectExistsPackage(packageRoot, packageNameTemplates, "place", "places"); if (existsPackageFragment != null) { placePkg = existsPackageFragment; } } // select 'activity' package { IPackageFragment existsPackageFragment = selectExistsPackage(packageRoot, packageNameTemplates, "activity", "activities"); if (existsPackageFragment != null) { activityPkg = existsPackageFragment; } } } catch (Exception e) { DesignerPlugin.log(e); } } // validate view name { String validateMessage = validateNewCompilationUnit(viewPkg, viewField.getText(), "View name"); if (validateMessage != null) { if (viewPkg != basePkg) { validateMessage = validateNewCompilationUnit(basePkg, viewField.getText(), "View name"); if (validateMessage != null) { return validateMessage; } else { viewPackageFragment = basePkg; } } else { return validateMessage; } } else { viewPackageFragment = viewPkg; } } // validate place name if (placeNameField.isEnabled()) { String validateMessage = validateNewCompilationUnit(placePkg, placeNameField.getText(), "Place name"); if (validateMessage != null) { if (placePkg != basePkg) { validateMessage = validateNewCompilationUnit(basePkg, placeNameField.getText(), "Place name"); if (validateMessage != null) { return validateMessage; } else { placePackageFragment = basePkg; } } else { return validateMessage; } } else { placePackageFragment = placePkg; } } // validate activity name if (activityNameField.isEnabled()) { String validateMessage = validateNewCompilationUnit(activityPkg, activityNameField.getText(), "Activity name"); if (validateMessage != null) { if (activityPkg != basePkg) { validateMessage = validateNewCompilationUnit(basePkg, activityNameField.getText(), "Activity name"); if (validateMessage != null) { return validateMessage; } else { activityPackageFragment = basePkg; } } else { return validateMessage; } } else { activityPackageFragment = activityPkg; } } // validate factory if (factoryNameField.isEnabled()) { String factoryFullName = factoryNameField.getText(); if (factoryFullName.length() == 0) { return "ClientFactory name can not be empty."; } String factoryPackageName = CodeUtils.getPackage(factoryFullName); String factoryClassName = CodeUtils.getShortClass(factoryFullName); IPackageFragment packageFragment = packageRoot.getPackageFragment(factoryPackageName); ICompilationUnit compilationUnit = packageFragment.getCompilationUnit(factoryClassName + ".java"); if (!compilationUnit.exists()) { return "ClientFactory unit " + factoryFullName + " does not exists."; } try { String validateMessage = validateFactoryCompilationUnit(compilationUnit); if (validateMessage != null) { return validateMessage; } } catch (Exception e) { DesignerPlugin.log(e); } } // description { StringBuffer message = new StringBuffer(); message.append("Generating View class " + getViewPackageName() + "." + getViewName()); if (placeNameField.isEnabled()) { message.append("\nGenerating Place class " + getPlacePackageName() + "." + getPlaceName()); } if (activityNameField.isEnabled()) { message.append("\nGenerating Activity class " + getActivityPackageName() + "." + getActivityName()); } if (factoryField.getSelection() && factoryField.isEnabled()) { message.append("\nModifying ClientFactory class " + getClientFactoryPackageName() + "." + getClientFactoryName()); } descriptionText.setText(message.toString()); } return null; }
From source file:com.google.gdt.eclipse.designer.wizards.ui.JUnitWizard.java
License:Open Source License
@Override protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { IPackageFragmentRoot fragmentRoot = m_mainPage.getPackageFragmentRoot(); if (fragmentRoot != null) { IJavaProject project = fragmentRoot.getJavaProject(); if (project != null && project.findType("junit.framework.TestCase") == null) { try { ProjectUtils.addPluginLibraries(project, "org.junit"); } catch (Throwable e) { DesignerPlugin.log(e);/*from w w w . j a v a2s . c om*/ throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, "Unable add JUnit jar to classpath " + project.getElementName(), e)); } } } m_mainPage.createType(monitor); }
From source file:com.google.gwt.eclipse.core.wizards.NewModuleWizard.java
License:Open Source License
@Override protected InputStream getInitialContents() { List<String> contents = new ArrayList<String>(); IPackageFragmentRoot root = newModuleWizardPage.getPackageFragmentRoot(); IJavaProject javaProject = root.getJavaProject(); contents.add("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); String gwtModuleDtd = NO_VERSION_FOUND_DTD; GWTRuntime runtime = GWTRuntime.findSdkFor(javaProject); if (runtime != null) { String versionNum = runtime.getVersion(); if (!versionNum.endsWith(".999") && !versionNum.startsWith("0.0")) { gwtModuleDtd = "<!DOCTYPE module PUBLIC \"-//Google Inc.//DTD Google Web Toolkit " + versionNum + "//EN\" \"http://google-web-toolkit.googlecode.com/svn/tags/" + versionNum + "/distro-source/core/src/gwt-module.dtd\">"; }/* w w w.jav a2 s. c o m*/ } contents.add(gwtModuleDtd); contents.add("<module>"); List<IModule> moduleInherits = newModuleWizardPage.getModuleInherits(); // TODO: Instead of hardcoding a tab character here, we should try and use // the WST editor preferences for indentation. We should respect the user's // preferences for spaces vs. tabs, and the number of spaces that make up an // indentation. for (IModule moduleInherit : moduleInherits) { contents.add("\t<inherits name=\"" + moduleInherit.getQualifiedName() + "\" />"); } // Explicitly add the source path element contents.add("\t<source path=\"client\"/>"); contents.add("</module>"); String xml = Util.join(contents, System.getProperty("line.separator")); ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes()); return stream; }
From source file:com.gwtplatform.plugin.projectfile.ProjectClass.java
License:Apache License
public ProjectClass(IPackageFragmentRoot root, String fullyQualifiedName, SourceWriterFactory sourceWriterFactory) throws JavaModelException { this.root = root; int lastDotIndex = fullyQualifiedName.lastIndexOf('.'); if (lastDotIndex <= 1) { packageName = ""; } else {// w w w . j ava2 s .c o m packageName = fullyQualifiedName.substring(0, lastDotIndex); } elementName = fullyQualifiedName.substring(lastDotIndex + 1); this.sourceWriterFactory = sourceWriterFactory; type = root.getJavaProject().findType(fullyQualifiedName); originalUnit = createCompilationUnitIfNeeded(); workingCopy = originalUnit.getWorkingCopy(new NullProgressMonitor()); workingCopyType = workingCopy.getType(type.getElementName()); }
From source file:com.gwtplatform.plugin.projectfile.ProjectClass.java
License:Apache License
public ProjectClass(IPackageFragmentRoot root, String packageName, String elementName, SourceWriterFactory sourceWriterFactory) throws JavaModelException { this.root = root; this.packageName = packageName; this.elementName = elementName; this.sourceWriterFactory = sourceWriterFactory; type = root.getJavaProject().findType(packageName + "." + elementName); originalUnit = createCompilationUnitIfNeeded(); workingCopy = originalUnit.getWorkingCopy(new NullProgressMonitor()); }
From source file:com.gwtplatform.plugin.sample.BasicSampleBuilder.java
License:Apache License
public BasicSampleBuilder(IPackageFragmentRoot root, IPackageFragment projectPackage, SourceWriterFactory sourceWriterFactory) throws JavaModelException { this.root = root; this.javaProject = root.getJavaProject(); this.clientPackage = javaProject.findPackageFragment(projectPackage.getPath().append("client")); this.serverPackage = javaProject.findPackageFragment(projectPackage.getPath().append("server")); this.sharedPackage = javaProject.findPackageFragment(projectPackage.getPath().append("shared")); this.sourceWriterFactory = sourceWriterFactory; }
From source file:com.gwtplatform.plugin.wizard.NewActionWizard.java
License:Apache License
private boolean isSpringHandlerModule(IPackageFragmentRoot root) throws JavaModelException { String handlerModuleString = page.getHandlerModule(); IType handlerModuleType = root.getJavaProject().findType(handlerModuleString); ITypeHierarchy hierarchy = handlerModuleType.newSupertypeHierarchy(new NullProgressMonitor()); IType[] superclasses = hierarchy.getAllClasses(); for (IType superclass : superclasses) { if (superclass.getFullyQualifiedName('.').equals(GuiceHandlerModule.C_HANDLER_MODULE)) { return false; } else if (superclass.getFullyQualifiedName('.').equals(SpringHandlerModule.C_HANDLER_MODULE)) { return true; }/* w ww.j a v a 2 s. co m*/ } return false; }
From source file:com.gwtplatform.plugin.wizard.NewActionWizardPage.java
License:Apache License
private IStatus actionHandlerChanged() { StatusInfo status = new StatusInfo(); if (actionHandlerPackage.getText().isEmpty()) { status.setError("You must select the ActionHandler's package"); return status; }// w ww. j a va 2 s.c o m IPackageFragmentRoot root = getPackageFragmentRoot(); IJavaProject project = root.getJavaProject(); IPackageFragment pack = root.getPackageFragment(actionHandlerPackage.getText()); if (!pack.getElementName().isEmpty()) { IStatus val = JavaConventionsUtil.validatePackageName(pack.getElementName(), project); if (val.getSeverity() == IStatus.ERROR) { status.setError(Messages.format(NewWizardMessages.NewTypeWizardPage_error_InvalidPackageName, val.getMessage())); return status; } else if (val.getSeverity() == IStatus.WARNING) { status.setWarning(Messages.format( NewWizardMessages.NewTypeWizardPage_warning_DiscouragedPackageName, val.getMessage())); // continue } } else { status.setWarning(NewWizardMessages.NewTypeWizardPage_warning_DefaultPackageDiscouraged); } if (!pack.getElementName().contains(".server")) { status.setError("ActionHandler's package must be in the server package"); return status; } if (project != null) { if (project.exists() && !pack.getElementName().isEmpty()) { try { IPath rootPath = root.getPath(); IPath outputPath = project.getOutputLocation(); if (rootPath.isPrefixOf(outputPath) && !rootPath.equals(outputPath)) { // if the bin folder is inside of our root, don't allow to name a // package // like the bin folder IPath packagePath = rootPath.append(pack.getElementName().replace('.', '/')); if (outputPath.isPrefixOf(packagePath)) { status.setError(NewWizardMessages.NewTypeWizardPage_error_ClashOutputLocation); return status; } } } catch (JavaModelException e) { JavaPlugin.log(e); // let pass } } } else { status.setError(""); } return status; }
From source file:com.gwtplatform.plugin.wizard.NewPresenterWizard.java
License:Apache License
protected boolean finish(IProgressMonitor desiredMonitor) { IProgressMonitor monitor = desiredMonitor; if (desiredMonitor == null) { monitor = new NullProgressMonitor(); }//from www .j a v a 2 s . c o m Presenter presenter = null; Tokens tokens = null; View view = null; Ui ui = null; Ginjector ginjector = null; PresenterModule presenterModule = null; PlaceAnnotation newPlaceAnnotation = null; IField tokenField = null; try { monitor.beginTask("Presenter creation", 3); IPackageFragmentRoot root = page.getPackageFragmentRoot(); // Presenter monitor.subTask("Presenter"); presenter = new Presenter(root, page.getPackageText(), page.getTypeName(), sourceWriterFactory, page.isWidget()); if (page.isPopup()) { presenter.createPopupViewInterface(); } else { presenter.createViewInterface(); } if (page.isPlace()) { tokens = new Tokens(root, page.getTokenClass(), sourceWriterFactory); tokenField = tokens.createTokenField(page.getTokenName()); tokens.createTokenGetter(page.getTokenName()); if (page.getGatekeeper().isEmpty()) { presenter.createProxyPlaceInterface(page.isProxyStandard(), tokens.getType(), page.getTokenName()); } else { IType gatekeeper = page.getJavaProject().findType(page.getGatekeeper()); presenter.createProxyPlaceInterface(page.isProxyStandard(), tokens.getType(), page.getTokenName(), gatekeeper); } } else if (!page.isWidget()) { presenter.createProxyInterface(page.isProxyStandard()); } presenter.createConstructor(); if (!page.isWidget()) { IType revealEvent = page.getJavaProject().findType(page.getRevealEvent()); if (revealEvent.getElementName().equals("RevealContentEvent")) { IType parent = page.getJavaProject().findType(page.getParent()); presenter.createRevealInParentMethod(revealEvent, parent, page.getContentSlot()); } else { presenter.createRevealInParentMethod(revealEvent); } } String[] methods = page.getMethodStubs(); for (String method : methods) { presenter.createMethodStub(method); } monitor.worked(1); // View monitor.subTask("View"); view = new View(root, page.getViewPackageText(), page.getViewTypeName(), sourceWriterFactory, presenter.getType(), page.isPopup()); if (page.useUiBinder()) { view.createBinderInterface(); view.createWidgetField(); } view.createConstructor(page.useUiBinder()); view.createAsWidgetMethod(page.useUiBinder()); // Ui if (page.useUiBinder()) { monitor.subTask("UiBinder"); ui = new Ui(root, page.getViewPackageText(), page.getViewTypeName()); ui.createFile(page.isPopup()); } // Ginjector if (!page.isWidget()) { monitor.subTask("Provider in Ginjector"); ginjector = new Ginjector(root, page.getGinjector(), sourceWriterFactory); ginjector.createProvider(presenter.getType()); } monitor.worked(1); // PresenterModule monitor.subTask("Bind in PresenterModule"); presenterModule = new PresenterModule(root, page.getPresenterModule(), sourceWriterFactory); if (page.isWidget()) { if (page.isSingleton()) { presenterModule.createSingletonPresenterWidgetBinder(presenter.getType(), view.getType()); } else { presenterModule.createPresenterWidgetBinder(presenter.getType(), view.getType()); } } else { presenterModule.createPresenterBinder(presenter.getType(), view.getType()); } if (!page.getAnnotation().isEmpty()) { IType annotation = root.getJavaProject().findType(page.getAnnotation()); if (annotation == null) { // Annotation type doesn't exist, create it! newPlaceAnnotation = new PlaceAnnotation(root, page.getAnnotation(), sourceWriterFactory); annotation = newPlaceAnnotation.getType(); } presenterModule.createConstantBinder(annotation, tokens.getType(), tokenField); } monitor.worked(1); if (presenter != null) { presenter.commit(); } if (tokens != null) { tokens.commit(); } if (view != null) { view.commit(); } if (ginjector != null) { ginjector.commit(); } if (presenterModule != null) { presenterModule.commit(); } if (newPlaceAnnotation != null) { newPlaceAnnotation.commit(); } } catch (Exception e) { try { if (presenter != null) { presenter.discard(true); } if (tokens != null) { tokens.discard(false); } if (view != null) { view.discard(true); } if (ui != null) { ui.getFile().delete(true, null); } if (ginjector != null) { ginjector.discard(false); } if (presenterModule != null) { presenterModule.discard(false); } } catch (Exception e1) { e1.printStackTrace(); } IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, "An unexpected error has happened. Close the wizard and retry.", e); ErrorDialog.openError(getShell(), null, null, status); return false; } monitor.done(); return true; }