List of usage examples for org.eclipse.jdt.core IJavaElement 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.laex.j2objc.CleanupAction.java
License:Open Source License
@Override public void run(IAction action) { if (!action.isEnabled()) { return;/*from w ww . ja v a 2 s .c o m*/ } MessageBox mb = new MessageBox(targetPart.getSite().getShell(), SWT.OK | SWT.CANCEL | SWT.ERROR); mb.setMessage( "This action cleans up all the internal files generated by the plugin. It won't clean up compiled source files. Are you sure you want to proceed ? "); int resp = mb.open(); if (resp == SWT.CANCEL) return; for (Object o : selected) { if (o instanceof IJavaElement) { IJavaElement jel = (IJavaElement) o; IJavaProject javaProject = jel.getJavaProject(); AntDelegate antDel = new AntDelegate(javaProject); try { antDel.executeCleanup(targetPart.getSite().getShell().getDisplay()); } catch (IOException e) { LogUtil.logException(e); } catch (CoreException e) { LogUtil.logException(e); } try { javaProject.getResource().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); } catch (CoreException e) { LogUtil.logException(e); } } } }
From source file:com.laex.j2objc.ToObjectiveCAction.java
License:Open Source License
@Override public void run(IAction action) { if (!action.isEnabled()) { return;//w w w.jav a 2 s .c o m } /* Show the console view */ final MessageConsole console = MessageUtil.findConsole(MessageUtil.J2OBJC_CONSOLE); IWorkbenchPage page = targetPart.getSite().getWorkbenchWindow().getActivePage(); String id = IConsoleConstants.ID_CONSOLE_VIEW; IConsoleView view; try { view = (IConsoleView) page.showView(id); view.display(console); } catch (PartInitException e1) { LogUtil.logException(e1); } /* Before starting the job, check if the path to J2OBJC has been set up */ final Display display = targetPart.getSite().getShell().getDisplay(); final String pathToCompiler = Activator.getDefault().getPreferenceStore() .getString(PreferenceConstants.PATH_TO_COMPILER); console.clearConsole(); MessageConsoleStream mct = console.newMessageStream(); if (StringUtils.isEmpty(pathToCompiler)) { try { MessageUtil.setConsoleColor(display, mct, SWT.COLOR_RED); mct.write( "Path to compiler empty. Please set the path to J2OBJC compiler from global preferences."); } catch (IOException e) { LogUtil.logException(e); } return; } /* Before starting the job, calculate total no. of files to compile */ calculateWork(); // Start the job final Job job = new Job("J2OBJC Command Line Executor") { @Override protected IStatus run(IProgressMonitor monitor) { try { monitor.beginTask("J2OBJC Compiliation", totalWork); IJavaElement elm = (IJavaElement) strucSelc.getFirstElement(); IJavaProject javaProject = (IJavaProject) elm.getJavaProject(); Map<String, String> props = PropertiesUtil.getProjectProperties(javaProject.getResource()); props.put(PreferenceConstants.PATH_TO_COMPILER, pathToCompiler); // some initial message plumbing ToObjectiveCDelegate.clearPrebuiltSwitch(); ToObjectiveCDelegate delegate = new ToObjectiveCDelegate(display, props, monitor); elm.getResource().accept(delegate); monitor.worked(1); // copy files to some external directory monitor.subTask("Exporting Objective-C Classes"); String destinationDir = PropertiesUtil.getOutputDirectory(javaProject); doOutput(console, display, javaProject, destinationDir); monitor.worked(1); // refresh javaProject.getResource().refreshLocal(IResource.DEPTH_INFINITE, monitor); monitor.worked(1); monitor.done(); } catch (CoreException ce) { LogUtil.logException(ce); return Status.CANCEL_STATUS; } catch (IOException e) { LogUtil.logException(e); return Status.CANCEL_STATUS; } return Status.OK_STATUS; } private void doOutput(final MessageConsole console, final Display display, IJavaProject javaProject, String destinationDir) throws IOException, CoreException { if (StringUtils.isNotEmpty(destinationDir)) { // Ant specific code String sourceDir = javaProject.getResource().getLocation().makeAbsolute().toOSString(); AntDelegate antDelegate = new AntDelegate(javaProject); antDelegate.executeExport(display, sourceDir, destinationDir); } else { MessageConsoleStream mct = console.newMessageStream(); MessageUtil.setConsoleColor(display, mct, SWT.COLOR_BLUE); mct.write("No Output directory specified. Files will not be exported."); } } }; job.setUser(true); job.schedule(); }
From source file:com.liferay.ide.portlet.ui.wizard.NewPortletClassWizardPage.java
License:Open Source License
protected IProject getSelectedProject() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); if (window == null) { return null; }/* ww w .jav a2 s. com*/ ISelection selection = window.getSelectionService().getSelection(); if (selection == null) { return null; } if (!(selection instanceof IStructuredSelection)) { return null; } IJavaElement element = getInitialJavaElement(selection); if (element != null && element.getJavaProject() != null) { return element.getJavaProject().getProject(); } IStructuredSelection stucturedSelection = (IStructuredSelection) selection; if (stucturedSelection.getFirstElement() instanceof EObject) { return ProjectUtilities.getProject(stucturedSelection.getFirstElement()); } return getExtendedSelectedProject(stucturedSelection.getFirstElement()); }
From source file:com.liferay.ide.project.ui.wizard.LiferayDataModelWizardPage.java
License:Open Source License
protected IProject getSelectedProject() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); if (window == null) { return null; }/*from ww w . j a v a 2s . co m*/ ISelection selection = window.getSelectionService().getSelection(); if (selection == null) { return null; } if (!(selection instanceof IStructuredSelection)) { return null; } IJavaElement element = getInitialJavaElement(selection); if (element != null && element.getJavaProject() != null) { return element.getJavaProject().getProject(); } IStructuredSelection stucturedSelection = (IStructuredSelection) selection; if (stucturedSelection.getFirstElement() instanceof EObject) { return ProjectUtilities.getProject(stucturedSelection.getFirstElement()); } return null; }
From source file:com.liferay.ide.service.ui.editor.ServiceMethodHyperlinkDetector.java
License:Open Source License
private IType findType(IJavaElement parent, String fullyQualifiedName) throws JavaModelException { IType retval = parent.getJavaProject().findType(fullyQualifiedName); if (retval == null) { final IJavaProject[] serviceProjects = ServiceUtil.getAllServiceProjects(); for (final IJavaProject sp : serviceProjects) { try { retval = sp.findType(fullyQualifiedName); } catch (Exception e) { }//from w ww . j a va2s . c om if (retval != null) { break; } } } return retval; }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
/** * Processes a delta recursively. When more than two children are affected the * tree is fully refreshed starting at this node. * * @param delta the delta to process/*w w w .java2 s .c om*/ * @param runnables the resulting view changes as runnables (type {@link Runnable}) * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need * to be processed * @throws JavaModelException thrown when the access to an element failed */ private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables) throws JavaModelException { int kind = delta.getKind(); int flags = delta.getFlags(); IJavaElement element = delta.getElement(); int elementType = element.getElementType(); if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) { IJavaProject proj = element.getJavaProject(); if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check! return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT) { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) if (!fIsFlatLayout) { Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (!(parent instanceof IPackageFragmentRoot)) { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } if (!fIsFlatLayout) { if (kind == IJavaElementDelta.REMOVED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { postRemove(element, runnables); return false; } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } else if (kind == IJavaElementDelta.ADDED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { if (fFoldPackages) { postRefresh(parent, PARENT, element, runnables); return true; } else { postAdd(parent, element, runnables); return false; } } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; } } if (elementType == IJavaElement.COMPILATION_UNIT) { ICompilationUnit cu = (ICompilationUnit) element; if (!JavaModelUtil.isPrimary(cu)) { return false; } if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) { return false; } if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) { return false; // test moved ahead } if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests return false; } } if (elementType == IJavaElement.JAVA_PROJECT) { // handle open and closing of a project if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if the class path has changed we refresh the entire project if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if added it could be that the corresponding IProject is already shown. Remove it first. // bug 184296 if (kind == IJavaElementDelta.ADDED) { postRemove(element.getResource(), runnables); postAdd(element.getParent(), element, runnables); return false; } } if (kind == IJavaElementDelta.REMOVED) { Object parent = internalGetParent(element); if (element instanceof IPackageFragment) { // refresh package fragment root to allow filtering empty (parent) packages: bug 72923 if (fViewer.testFindItem(parent) != null) postRefresh(parent, PARENT, element, runnables); return true; } else if (element instanceof IPackageFragmentRoot) { // libs and class folders can show up twice (in library container and as resource at original location) IResource resource = element.getResource(); if (resource != null && !resource.exists()) postRemove(resource, runnables); } postRemove(element, runnables); if (parent instanceof IPackageFragment) postUpdateIcon((IPackageFragment) parent, runnables); // we are filtering out empty subpackages, so we // a package becomes empty we remove it from the viewer. if (isPackageFragmentEmpty(element.getParent())) { if (fViewer.testFindItem(parent) != null) postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } return false; } if (kind == IJavaElementDelta.ADDED) { Object parent = internalGetParent(element); // we are filtering out empty subpackages, so we // have to handle additions to them specially. if (parent instanceof IPackageFragment) { Object grandparent = internalGetParent(parent); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (parent.equals(fInput)) { postRefresh(parent, PARENT, element, runnables); } else { // refresh from grandparent if parent isn't visible yet if (fViewer.testFindItem(parent) == null) postRefresh(grandparent, GRANT_PARENT, element, runnables); else { postRefresh(parent, PARENT, element, runnables); } } return true; } else { if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) { // libs and class folders can show up twice (in library container or under project, and as resource at original location) IResource resource = element.getResource(); if (resource != null) { Object resourceParent = super.internalGetParent(resource); if (resourceParent != null) { IJavaProject proj = element.getJavaProject(); if (fShowLibrariesNode || !resourceParent.equals(proj)) { postAdd(resourceParent, resource, runnables); } } } } postAdd(parent, element, runnables); } } if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) { if (kind == IJavaElementDelta.CHANGED) { // isStructuralCUChange already performed above postRefresh(element, ORIGINAL, element, runnables); } return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) { // the contents of an external JAR has changed if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } // the source attachment of a JAR has changed if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0) postUpdateIcon(element, runnables); if (isClassPathChange(delta)) { // throw the towel and do a full refresh of the affected java project. postRefresh(element.getJavaProject(), PROJECT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerPart.java
License:Open Source License
private Object convertElement(Object original) { if (original instanceof IJavaElement) { if (original instanceof ICompilationUnit) { ICompilationUnit cu = (ICompilationUnit) original; IJavaProject javaProject = cu.getJavaProject(); if (javaProject != null && javaProject.exists() && !javaProject.isOnClasspath(cu)) { // could be a working copy of a .java file that is not on classpath IResource resource = cu.getResource(); if (resource != null) return resource; }/*from www.jav a 2 s . co m*/ } return original; } else if (original instanceof IResource) { IJavaElement je = JavaCore.create((IResource) original); if (je != null && je.exists()) { IJavaProject javaProject = je.getJavaProject(); if (javaProject != null && javaProject.exists()) { if (javaProject.equals(je) || javaProject.isOnClasspath(je)) { return je; } else { // a working copy of a .java file that is not on classpath return original; } } } } else if (original instanceof IAdaptable) { IAdaptable adaptable = (IAdaptable) original; IJavaElement je = (IJavaElement) adaptable.getAdapter(IJavaElement.class); if (je != null && je.exists()) return je; IResource r = (IResource) adaptable.getAdapter(IResource.class); if (r != null) { je = JavaCore.create(r); if (je != null && je.exists()) return je; else return r; } } return original; }
From source file:com.redhat.ceylon.eclipse.code.explorer.WorkingSetAwareContentProvider.java
License:Open Source License
private IProject getProject(IJavaElement element) { IJavaProject project = element.getJavaProject(); if (project == null) return null; return project.getProject(); }
From source file:com.sabre.buildergenerator.ui.wizard.TypeNameValidator.java
License:Open Source License
/** * copied from jdt//w w w .j a v a2s . c o m * * @param context * an {@link IJavaElement} or <code>null</code> * @return a <code>String[]</code> whose <code>[0]</code> is the * {@link JavaCore#COMPILER_SOURCE} and whose <code>[1]</code> is * the {@link JavaCore#COMPILER_COMPLIANCE} level at the given * <code>context</code>. */ static String[] getSourceComplianceLevels(IJavaElement context) { if (context != null) { IJavaProject javaProject = context.getJavaProject(); if (javaProject != null) { return new String[] { javaProject.getOption(JavaCore.COMPILER_SOURCE, true), javaProject.getOption(JavaCore.COMPILER_COMPLIANCE, true) }; } } return new String[] { JavaCore.getOption(JavaCore.COMPILER_SOURCE), JavaCore.getOption(JavaCore.COMPILER_COMPLIANCE) }; }
From source file:com.siteview.mde.internal.ui.correction.java.QuickFixProcessor.java
License:Open Source License
public boolean hasCorrections(ICompilationUnit unit, int problemId) { switch (problemId) { case IProblem.ForbiddenReference: case IProblem.ImportNotFound: IJavaElement parent = unit.getParent(); if (parent != null) { IJavaProject project = parent.getJavaProject(); if (project != null) return WorkspaceModelManager.isPluginProject(project.getProject()); }// w w w .j a v a 2 s .co m } return false; }