Example usage for org.eclipse.jdt.core IPackageFragmentRoot getPath

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getPath

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot getPath.

Prototype

IPath getPath();

Source Link

Document

Returns the path to the innermost resource enclosing this element.

Usage

From source file:org.eclipse.virgo.ide.jdt.internal.ui.decoration.JdtClasspathContainerElementDecorator.java

License:Open Source License

/**
 * Decorates the given <code>element</code>.
 *///  w  w w. j  av  a  2 s.  c  om
public void decorate(Object element, IDecoration decoration) {
    // package fragments are the first elements below the JAR file
    if (element instanceof IPackageFragment) {
        IPackageFragment packageFragment = (IPackageFragment) element;
        if (shouldDecorateImportedPackageFragment(packageFragment)) {
            // make light gray and lock icon decoration
            decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
            decoration.addOverlay(JdtUiImages.DESC_OVR_LOCKED, IDecoration.TOP_LEFT);
        } else if (shouldDecorateExportedPackageFragment(packageFragment)) {
            decoration.addOverlay(JdtUiImages.DESC_OVR_EXPORTED, IDecoration.TOP_RIGHT);
        }
    }
    // jar package fragments roots; decorate those that come from a test dependency
    else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        try {
            if (ServerClasspathContainer.CLASSPATH_CONTAINER_PATH.equals(root.getRawClasspathEntry().getPath())
                    && root.getJavaProject().getProject().isAccessible() && root.getJavaProject().isOpen()) {
                ServerClasspathContainer cpContainer = (ServerClasspathContainer) JavaCore
                        .getClasspathContainer(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH,
                                root.getJavaProject());
                if (cpContainer != null) {
                    for (IClasspathEntry entry : cpContainer.getClasspathEntries()) {
                        if (entry.getPath().equals(root.getPath()) && entry.getExtraAttributes() != null) {
                            for (IClasspathAttribute attribute : entry.getExtraAttributes()) {
                                if (attribute.getName()
                                        .equals(ServerClasspathContainer.TEST_CLASSPATH_ATTRIBUTE_VALUE)) {
                                    decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
                                    decoration.addOverlay(JdtUiImages.DESC_OVR_LOCKED, IDecoration.TOP_LEFT);
                                }
                            }
                            break;
                        }
                    }
                }

            }
        } catch (JavaModelException e) {
        }
    }
    // class files represent a single type file in a JAR
    else if (element instanceof IClassFile) {
        IClassFile classFile = (IClassFile) element;
        if (classFile.getParent() instanceof IPackageFragment) {
            if (shouldDecorateImportedPackageFragment((IPackageFragment) classFile.getParent())) {
                // make light gray
                decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
            }
        }
    }
    // decorate the class path container and add the originating target runtime
    else if (element instanceof ClassPathContainer) {
        ClassPathContainer container = (ClassPathContainer) element;
        if (container.getClasspathEntry().getPath().equals(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH)) {
            try {
                if (container.getJavaProject().getProject().isAccessible()
                        && container.getJavaProject().isOpen()) {
                    ServerClasspathContainer cpContainer = (ServerClasspathContainer) JavaCore
                            .getClasspathContainer(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH,
                                    container.getJavaProject());
                    decoration.addSuffix(cpContainer.getDescriptionSuffix());
                }
            } catch (JavaModelException e) {
            }
        }
    }
}

From source file:org.eclipse.virgo.ide.runtime.internal.ui.editor.RepositoryBrowserEditorPage.java

License:Open Source License

private Section createRightSection(FormToolkit toolkit, ScrolledForm form) {
    GridLayout layout;//from   ww w .j  a v  a2  s . c  om
    Section leftSection = toolkit.createSection(form.getBody(),
            ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
    leftSection.setText(Messages.RepositoryBrowserEditorPage_BundlesAndLibraries);
    leftSection.setDescription(
            Messages.RepositoryBrowserEditorPage_BundlesAndLibrariesMessage + getServerName() + ". " //$NON-NLS-1$
                    + Messages.RepositoryBrowserEditorPage_BundlesAndLibrariesProviso);
    leftSection.setLayoutData(new GridData(GridData.FILL_BOTH));

    Composite leftComposite = toolkit.createComposite(leftSection);
    layout = new GridLayout();
    layout.numColumns = 1;
    leftComposite.setLayout(layout);
    leftComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    toolkit.paintBordersFor(leftComposite);
    leftSection.setClient(leftComposite);

    GridData data = new GridData(GridData.FILL_HORIZONTAL);

    Composite composite2 = toolkit.createComposite(leftComposite);
    layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginHeight = 5;
    composite2.setLayout(layout);
    composite2.setLayoutData(new GridData(GridData.FILL_BOTH));
    toolkit.paintBordersFor(composite2);

    repositoryTableViewer = new CommonViewer(ServerUiPlugin.ARTEFACTS_BROWSER_VIEW_ID, composite2,
            SWT.BORDER | SWT.SINGLE);
    repositoryTableViewer.setSorter(new RepositoryViewerSorter());

    registerContextMenu(repositoryTableViewer);

    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 120;
    repositoryTableViewer.getControl().setLayoutData(data);

    Composite buttonComposite = new Composite(composite2, SWT.NONE);
    buttonComposite.setLayout(new GridLayout(1, true));
    data = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
    buttonComposite.setLayoutData(data);

    data = new GridData(GridData.FILL_HORIZONTAL);
    data.widthHint = 100;
    refreshButton = toolkit.createButton(buttonComposite, Messages.RepositoryBrowserEditorPage_Refresh,
            SWT.PUSH);
    refreshButton.setLayoutData(data);
    refreshButton.setToolTipText(Messages.RepositoryBrowserEditorPage_RefreshMessage);
    refreshButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent selectionEvent) {
            refreshBundleRepository();
        }
    });

    downloadSourcesButton = toolkit.createButton(buttonComposite,
            Messages.RepositoryBrowserEditorPage_InstallSources, SWT.PUSH);
    downloadSourcesButton.setLayoutData(data);
    downloadSourcesButton.setToolTipText(Messages.RepositoryBrowserEditorPage_InstallSourcesMessage);
    downloadSourcesButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent selectionEvent) {
            downloadSources();
        }
    });

    // insert vertical space to make the download button stand out
    toolkit.createLabel(buttonComposite, Messages.RepositoryBrowserEditorPage_40);

    openManifestButton = toolkit.createButton(buttonComposite,
            Messages.RepositoryBrowserEditorPage_OpenManifest, SWT.PUSH);
    openManifestButton.setLayoutData(data);
    openManifestButton.setToolTipText(Messages.RepositoryBrowserEditorPage_OpenManifestMessage);
    openManifestButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent selectionEvent) {
            ISelection selection = repositoryTableViewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object element = ((IStructuredSelection) selection).getFirstElement();
                if (element instanceof IPackageFragmentRoot) {
                    IPackageFragmentRoot fragment = (IPackageFragmentRoot) element;
                    BundleManifestEditor.openExternalPlugin(fragment.getPath().toFile(),
                            "META-INF/MANIFEST.MF"); //$NON-NLS-1$
                }
            }
        }
    });

    openManifestButton.setEnabled(false);
    repositoryTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object element = ((IStructuredSelection) selection).getFirstElement();
                if (element instanceof IPackageFragmentRoot) {
                    openManifestButton.setEnabled(true);
                } else {
                    openManifestButton.setEnabled(false);
                }
            }
        }
    });

    TableWrapLayout twLayout = new TableWrapLayout();
    twLayout.bottomMargin = 0;
    twLayout.topMargin = 0;
    twLayout.leftMargin = 0;
    twLayout.rightMargin = 0;

    Composite wrappedComposite = toolkit.createComposite(leftComposite);
    wrappedComposite.setLayout(twLayout);
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(wrappedComposite);

    Link repoLink = new Link(wrappedComposite, SWT.WRAP);
    repoLink.setText(Messages.RepositoryBrowserEditorPage_NewBundlesMessage);
    repoLink.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshBundleRepository();
        }

    });
    repoLink.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP));

    return leftSection;
}

From source file:org.eclipse.vjet.eclipse.javalaunch.utils.EclipseResourceUtils.java

License:Open Source License

/**
 * Find the source folder for this resource. For instance if the resource is
 * in "/src/main/java/com/ebay/blogs/login" then return "src/main/java"
 * /*from   ww  w  .  j  a  v  a  2 s  . c o m*/
 * To do this we must iterate through all the package fragments and look for
 * source folders. If this is the source folder for the resource then remove
 * the source folder path.
 * 
 * @param resource
 * @param jProject
 * @return
 */
protected static IPath getResourcePath(IResource resource, IJavaProject jProject) {

    /**
     */
    if (jProject != null) {
        try {
            IPackageFragmentRoot[] packageRoots = jProject.getPackageFragmentRoots();
            if (packageRoots != null) {

                // Look through the package fragment roots
                for (IPackageFragmentRoot packageFragmentRoot : packageRoots) {

                    // If this is a source folder
                    if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {

                        // If this is the source folder for the resource we are interested in.
                        if (packageFragmentRoot.getPath().isPrefixOf(resource.getFullPath())) {

                            return packageFragmentRoot.getPath();
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    return null;

}

From source file:org.eclipse.wb.internal.core.utils.jdt.ui.PackageRootSelectionDialogField.java

License:Open Source License

/**
 * Return string presentation of package root.
 *///  ww w  .  j  a v a  2 s. c  om
private static String getRootString(IPackageFragmentRoot root) {
    return root == null ? "" : root.getPath().makeRelative().toString();
}

From source file:org.eclipse.wb.tests.designer.core.TestProject.java

License:Open Source License

private IPackageFragmentRoot createSourceFolder() throws CoreException {
    IFolder folder = m_project.getFolder("src");
    folder.create(false, true, null);/*from w w  w .  j  av a  2s. c  om*/
    IPackageFragmentRoot root = m_javaProject.getPackageFragmentRoot(folder);
    //
    IClasspathEntry[] oldEntries = m_javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath());
    m_javaProject.setRawClasspath(newEntries, null);
    return root;
}

From source file:org.eclipse.wst.xml.core.internal.contentmodel.tapestry.travelpackage.TapestryClassLoader.java

License:Open Source License

public IPackageFragmentRoot getTapestryCoreJar(IProject project) {
    IPackageFragmentRoot[] roots2;/*  ww w  .  j  av  a2s  .  c om*/
    try {
        roots2 = JavaCore.create(project).getAllPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots2) {
            if (!root.isArchive())
                continue;
            String jarName = root.getPath().toString().substring(root.getPath().toString().lastIndexOf('/'));
            if (jarName.startsWith("/tapestry-core") && jarName.endsWith(".jar"))
                return root;
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return null;
}

From source file:org.eclipse.xtend.ide.builder.XtendParallelBuilderParticipant.java

License:Open Source License

public List<IPath> getSourceFolderPathes(IProject project) {
    List<IPath> sourceFolder = Lists.newArrayList();
    try {/*w  ww .j a v  a2s .c o m*/
        if (project.isOpen() && project.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject javaProject = JavaCore.create(project);
            List<IPackageFragmentRoot> packageFragmentRoots = Arrays
                    .asList(javaProject.getPackageFragmentRoots());
            for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
                if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    IPath path = packageFragmentRoot.getPath();
                    sourceFolder.add(path);
                }
            }
        }
    } catch (JavaModelException e) {
        if (!e.isDoesNotExist())
            logger.error(e.getMessage(), e);
    } catch (CoreException e) {
        logger.error(e.getMessage(), e);
    }
    return sourceFolder;
}

From source file:org.eclipse.xtend.shared.ui.core.internal.JDTUtil.java

License:Open Source License

public static ResourceID findXtendXpandResourceID(IJavaProject project, IStorage file) {
    if (file == null)
        return null;
    try {// w w w . j  ava  2 s. c o  m
        IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            IPackageFragmentRoot root = roots[i];
            if (root.getPath().isPrefixOf(file.getFullPath())) {
                IPath shortOne = file.getFullPath().removeFirstSegments(root.getPath().segmentCount());
                String ns = shortOne.removeFileExtension().toString();
                ns = patternSlash.matcher(ns).replaceAll("::");
                return new ResourceID(ns, shortOne.getFileExtension());
            }
        }
    } catch (JavaModelException e1) {
        XtendLog.logInfo(e1);
    }
    return null;
}

From source file:org.eclipse.xtend.shared.ui.core.internal.JDTUtil.java

License:Open Source License

public static IJavaProject getJProject(IStorage s) {
    if (s instanceof IFile) {
        return JavaCore.create(((IFile) s).getProject());
    } else {//w  w w .java2  s. c o m
        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
        for (int i = 0; i < projects.length; i++) {
            IProject project = projects[i];
            IJavaProject p = JavaCore.create(project);
            if (p.exists()) {
                IPackageFragmentRoot[] roots;
                try {
                    roots = p.getPackageFragmentRoots();
                    for (int j = 0; j < roots.length; j++) {
                        IPackageFragmentRoot root = roots[j];
                        if (root.getPath().isPrefixOf(s.getFullPath()))
                            return p;
                    }
                } catch (JavaModelException e) {
                    XtendLog.logError(e);
                }
            }
        }
    }
    return null;
}

From source file:org.eclipse.xtext.builder.impl.javasupport.JdtToBeBuiltComputer.java

License:Open Source License

protected boolean isBuiltByUpstream(IPackageFragmentRoot root, IProject project,
        IProject[] projectsInCorrectBuildOrder) {
    for (IProject p : projectsInCorrectBuildOrder) {
        if (p.equals(project))
            return false;
        if (XtextProjectHelper.hasNature(p) && XtextProjectHelper.hasBuilder(p)) {
            IJavaProject javaProject = JavaCore.create(p);
            if (javaProject.exists()) {
                if (javaProject.isOnClasspath(root)) {
                    if (log.isTraceEnabled())
                        log.trace("Build of project '" + project.getName()
                                + "' skips indexing classpath entry '" + root.getPath()
                                + "' because it already indexed by " + javaProject.getElementName());
                    return true;
                }/*w  ww .j ava 2  s  . c  om*/
            }
        }
    }
    return false;
}