Example usage for org.eclipse.jdt.core IJavaElement getJavaProject

List of usage examples for org.eclipse.jdt.core IJavaElement getJavaProject

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement getJavaProject.

Prototype

IJavaProject getJavaProject();

Source Link

Document

Returns the Java project this element is contained in, or null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project).

Usage

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;
}