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

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

Introduction

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

Prototype

int PACKAGE_FRAGMENT

To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT.

Click Source Link

Document

Constant representing a package fragment.

Usage

From source file:org.apache.felix.sigil.eclipse.internal.repository.eclipse.WorkspaceRepository.java

License:Apache License

private Collection<String> findPackages(ISigilProjectModel project) {
    final IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
    final IContentType javaContentType = contentTypeManager.getContentType("org.eclipse.jdt.core.javaSource");
    final HashSet<String> packages = new HashSet<String>();

    try {/*  w ww  .  ja v  a2s  .c o m*/
        project.getProject().accept(new IResourceVisitor() {
            public boolean visit(IResource resource) throws CoreException {
                if (resource instanceof IFile) {
                    IFile f = (IFile) resource;
                    IContentType ct = contentTypeManager.findContentTypeFor(f.getName());
                    if (ct != null && ct.isKindOf(javaContentType)) {
                        ICompilationUnit cu = (ICompilationUnit) JavaCore.create(f);
                        IPackageFragment pf = (IPackageFragment) cu.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
                        packages.add(pf.getElementName());
                    }
                }

                return true;
            }
        });
    } catch (CoreException e) {
        SigilCore.error("Failed to read packages for " + project.getProject().getName());
    }

    return packages;
}

From source file:org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper.java

License:Apache License

public static BackgroundLoadingSelectionDialog<String> createClassSelectDialog(Shell shell, String title,
        final ISigilProjectModel project, String selected, final String ifaceOrParentClass) {
    final BackgroundLoadingSelectionDialog<String> dialog = new BackgroundLoadingSelectionDialog<String>(shell,
            "Class Name", true);

    IJobRunnable job = new IJobRunnable() {
        public IStatus run(IProgressMonitor monitor) {
            try {
                for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
                        IJavaElement.PACKAGE_FRAGMENT)) {
                    IPackageFragment root = (IPackageFragment) e;
                    if (project.isInBundleClasspath(root)) {
                        for (IJavaElement e1 : JavaHelper.findTypes(root, IJavaElement.COMPILATION_UNIT,
                                IJavaElement.CLASS_FILE)) {
                            ITypeRoot typeRoot = (ITypeRoot) e1;
                            IType type = (IType) JavaHelper.findType(typeRoot, IJavaElement.TYPE);
                            if (JavaHelper.isAssignableTo(ifaceOrParentClass, type)) {
                                dialog.addElement(type.getFullyQualifiedName());
                            }//from  www.  j  a va 2  s. c  o  m
                        }
                    }
                }

                return Status.OK_STATUS;
            } catch (JavaModelException e) {
                return e.getStatus();
            }
        }

    };

    dialog.addBackgroundJob("Scanning for activators in project", job);

    return dialog;
}

From source file:org.apache.felix.sigil.eclipse.ui.util.ResourcesDialogHelper.java

License:Apache License

public static NewPackageExportDialog createNewExportDialog(Shell shell, String title,
        final IPackageExport selected, final ISigilProjectModel project, boolean multiSelect) {
    IFilter<IJavaElement> selectFilter = new IFilter<IJavaElement>() {
        public boolean select(IJavaElement e) {
            if (selected != null && e.getElementName().equals(selected.getPackageName())) {
                return true;
            }/*from w  ww  . j av  a 2  s .  c om*/

            if (e.getElementName().trim().length() > 0 && isLocal(e)) {
                for (IPackageExport p : project.getBundle().getBundleInfo().getExports()) {
                    if (p.getPackageName().equals(e.getElementName())) {
                        return false;
                    }
                }

                return true;
            } else {
                return false;
            }
        }

        private boolean isLocal(IJavaElement java) {
            try {
                switch (java.getElementType()) {
                case IJavaElement.PACKAGE_FRAGMENT:
                    IPackageFragment fragment = (IPackageFragment) java;
                    return fragment.containsJavaResources();
                default:
                    throw new IllegalStateException("Unexpected resource type " + java);
                }
            } catch (JavaModelException e) {
                SigilCore.error("Failed to inspect java element ", e);
                return false;
            }
        }

    };

    final NewPackageExportDialog dialog = new NewPackageExportDialog(shell, multiSelect);
    dialog.setFilter(selectFilter);

    dialog.setProjectVersion(project.getVersion());
    if (selected != null) {
        dialog.setSelectedName(selected.getPackageName());
        dialog.setVersion(selected.getRawVersion());
    }

    IJobRunnable job = new IJobRunnable() {
        public IStatus run(IProgressMonitor monitor) {
            try {
                ArrayList<IPackageFragment> list = new ArrayList<IPackageFragment>(UPDATE_BATCH_SIZE);
                for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
                        IJavaElement.PACKAGE_FRAGMENT)) {
                    IPackageFragment root = (IPackageFragment) e;
                    if (project.isInBundleClasspath(root)) {
                        list.add(root);
                        if (list.size() >= UPDATE_BATCH_SIZE) {
                            dialog.addElements(list);
                            list.clear();
                        }
                    }
                }
                if (!list.isEmpty()) {
                    dialog.addElements(list);
                }
                return Status.OK_STATUS;
            } catch (JavaModelException e) {
                return e.getStatus();
            }
        }
    };

    dialog.addBackgroundJob("Scanning for packages in project", job);

    return dialog;
}

From source file:org.apache.felix.sigil.search.index.Index.java

License:Apache License

public void addEntry(ICompilationUnit unit, IBundleRepository rep, ISigilBundle bundle, boolean exported) {
    String name = unit.getElementName();
    if (name.endsWith(".java")) {
        name = name.substring(0, name.length() - 5);
    }//  www. j  av  a 2  s  . c o m
    IPackageFragment p = (IPackageFragment) unit.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
    addEntry(p.getElementName() + "." + name, rep, bundle, p.getElementName(), exported);
}

From source file:org.apache.felix.sigil.ui.eclipse.ui.util.ResourcesDialogHelper.java

License:Apache License

public static NewPackageExportDialog createNewExportDialog(Shell shell, String title,
        final IPackageExport selected, final ISigilProjectModel project, boolean multiSelect) {
    IFilter<IJavaElement> selectFilter = new IFilter<IJavaElement>() {
        public boolean select(IJavaElement e) {
            if (selected != null && e.getElementName().equals(selected.getPackageName())) {
                return true;
            }/*from   w  ww.  j ava2  s .  co  m*/

            if (e.getElementName().trim().length() > 0 && isLocal(e)) {
                for (IPackageExport p : project.getBundle().getBundleInfo().getExports()) {
                    if (p.getPackageName().equals(e.getElementName())) {
                        return false;
                    }
                }

                return true;
            } else {
                return false;
            }
        }

        private boolean isLocal(IJavaElement java) {
            try {
                switch (java.getElementType()) {
                case IJavaElement.PACKAGE_FRAGMENT:
                    IPackageFragment fragment = (IPackageFragment) java;
                    return fragment.containsJavaResources();
                default:
                    throw new IllegalStateException("Unexpected resource type " + java);
                }
            } catch (JavaModelException e) {
                SigilCore.error("Failed to inspect java element ", e);
                return false;
            }
        }

    };

    final NewPackageExportDialog dialog = new NewPackageExportDialog(shell, multiSelect);
    dialog.setFilter(selectFilter);

    dialog.setProjectVersion(project.getVersion());
    if (selected != null) {
        dialog.setSelectedName(selected.getPackageName());
        dialog.setVersion(selected.getRawVersion());
    }

    IJobRunnable job = new IJobRunnable() {
        public IStatus run(IProgressMonitor monitor) {
            try {
                ArrayList<IPackageFragment> list = new ArrayList<IPackageFragment>(UPDATE_BATCH_SIZE);
                for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
                        IJavaElement.PACKAGE_FRAGMENT_ROOT)) {
                    IPackageFragmentRoot root = (IPackageFragmentRoot) e;
                    if (project.isInBundleClasspath(root)) {
                        for (IJavaElement e1 : JavaHelper.findTypes(root, IJavaElement.PACKAGE_FRAGMENT)) {
                            list.add((IPackageFragment) e1);
                            if (list.size() >= UPDATE_BATCH_SIZE) {
                                dialog.addElements(list);
                                list.clear();
                            }
                        }
                    }
                }
                if (!list.isEmpty()) {
                    dialog.addElements(list);
                }
                return Status.OK_STATUS;
            } catch (JavaModelException e) {
                return e.getStatus();
            }
        }
    };

    dialog.addBackgroundJob("Scanning for packages in project", job);

    return dialog;
}

From source file:org.apache.tapestrytools.ui.internal.wizards.NewTapestryComponentPage.java

License:Open Source License

private IPackageFragment getSelectedPackageFragment() {
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window == null)
        return null;
    ISelection selection = window.getSelectionService().getSelection();
    if (selection == null)
        return null;
    IJavaElement element = getInitialJavaElement(selection);
    if (element != null) {
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            return (IPackageFragment) element;
        } else if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            IJavaElement parent = ((ICompilationUnit) element).getParent();
            if (parent.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                return (IPackageFragment) parent;
            }/*from  w  w  w .  j av a 2  s . c o  m*/
        } else if (element.getElementType() == IJavaElement.TYPE) {
            return ((IType) element).getPackageFragment();
        }
    }
    return null;
}

From source file:org.codecover.eclipse.utils.EclipseMASTLinkage.java

License:Open Source License

/**
 * Find the corresponding CodeCover MAST HierarchyLevel to the given
 * Eclipse Java Element./*www .ja v  a 2  s.  co m*/
 * 
 * @param code
 *   root of code (MAST) to search
 * @param element
 *   search key
 * @return
 *   the HierarchyLevel of <i>element</i>, null if not found
 */
public static HierarchyLevel findSource(HierarchyLevel code, IJavaElement element) {
    HierarchyLevel result = null; //null until element is found

    /* check input */
    if (code == null) {
        throw new IllegalArgumentException("code is null"); //$NON-NLS-1$
    }
    if (element == null) {
        throw new IllegalArgumentException("element is null"); //$NON-NLS-1$
    }

    /* get corresponding ICompilationUnit */
    ICompilationUnit compilationUnit;
    if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
        compilationUnit = (ICompilationUnit) element;
    } else {
        compilationUnit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
    }

    if (compilationUnit != null) {

        /* Extract fully qualified class name with its package */
        String fileName = compilationUnit.getElementName();
        String className = fileName.split("\\.")[0]; //$NON-NLS-1$
        IPackageFragment pkgF = (IPackageFragment) compilationUnit.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
        if (pkgF != null) {
            String path[];
            if (pkgF.getElementName().equals("")) { //$NON-NLS-1$
                path = new String[] { className };
            } else {
                className = pkgF.getElementName() + "." + className; //$NON-NLS-1$
                path = className.split("\\."); //$NON-NLS-1$
            }

            /* find HierarchyLevel for the class by name */
            HierarchyLevel current = code;
            boolean found = true;

            for (int i = 0; i < path.length && found; ++i) {
                found = false;

                /* find next HierarchyLevel in path */
                for (HierarchyLevel l : current.getChildren()) {
                    if (l.getName().equals(path[i])) {
                        current = l;
                        found = true;
                        break;
                    }
                }
            }
            if (found) {

                /* the whole path was successfully traversed */
                result = current;
            }
        }
    }

    return result;
}

From source file:org.codehaus.groovy.eclipse.core.model.GroovyProjectFacade.java

License:Apache License

public List<IType> findAllRunnableTypes() throws JavaModelException {
    final List<IType> results = newList();
    IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot root : roots) {
        if (!root.isReadOnly()) {
            IJavaElement[] children = root.getChildren();
            for (IJavaElement child : children) {
                if (child.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                    ICompilationUnit[] units = ((IPackageFragment) child).getCompilationUnits();
                    for (ICompilationUnit unit : units) {
                        results.addAll(findAllRunnableTypes(unit));
                    }/*from  w w  w.  j  av a 2  s.  c  o  m*/
                }
            }
        }
    }
    return results;
}

From source file:org.codehaus.groovy.eclipse.core.model.GroovyProjectFacade.java

License:Apache License

/**
 * @return/*from  w  w  w.  java  2  s .  c om*/
 * @throws JavaModelException
 */
public List<IType> findAllScripts() throws JavaModelException {
    final List<IType> results = newList();
    IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot root : roots) {
        if (!root.isReadOnly()) {
            IJavaElement[] children = root.getChildren();
            for (IJavaElement child : children) {
                if (child.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                    ICompilationUnit[] units = ((IPackageFragment) child).getCompilationUnits();
                    for (ICompilationUnit unit : units) {
                        if (unit instanceof GroovyCompilationUnit) {
                            for (IType type : unit.getTypes()) {
                                if (isGroovyScript(type)) {
                                    results.add(type);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return results;
}

From source file:org.dawnsci.common.widgets.breadcrumb.BreadcrumbItemDropDown.java

License:Open Source License

/**
 * Opens the drop down menu.// w  w w.  ja v  a  2s . co m
 */
public void showMenu() {
    if (DEBUG)
        System.out.println("BreadcrumbItemDropDown.showMenu()"); //$NON-NLS-1$

    if (!fEnabled || fMenuIsShown)
        return;

    fMenuIsShown = true;

    fShell = new Shell(fToolBar.getShell(), SWT.RESIZE | SWT.TOOL | SWT.ON_TOP);
    if (DEBUG)
        System.out.println("   creating new shell"); //$NON-NLS-1$

    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    fShell.setLayout(layout);

    Composite composite = new Composite(fShell, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout gridLayout = new GridLayout(1, false);
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    composite.setLayout(gridLayout);

    fDropDownViewer = new ProblemTreeViewer(composite, treeSwitches);
    fDropDownViewer.setUseHashlookup(true);

    final Tree tree = (Tree) fDropDownViewer.getControl();
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Object input = fParent.getData();
    fParent.getViewer().configureDropDownViewer(fDropDownViewer, input);
    fDropDownViewer.setInput(input);

    setShellBounds(fShell);

    fShell.addControlListener(new ControlAdapter() {
        /*
         * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent)
         */
        @Override
        public void controlResized(ControlEvent e) {
            if (isResizingProgrammatically)
                return;

            Point size = fShell.getSize();
            getDialogSettings().put(DIALOG_HEIGHT, size.y);
        }
    });

    fDropDownViewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            if (DEBUG)
                System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$

            ISelection selection = event.getSelection();
            if (!(selection instanceof IStructuredSelection))
                return;

            Object element = ((IStructuredSelection) selection).getFirstElement();
            if (element == null)
                return;

            openElement(element);
        }
    });

    tree.addMouseListener(new MouseListener() {
        public void mouseUp(MouseEvent e) {
            if (DEBUG)
                System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$

            if (e.button != 1)
                return;

            if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0)
                return;

            Item item = tree.getItem(new Point(e.x, e.y));
            if (item == null)
                return;

            openElement(item.getData());
        }

        public void mouseDown(MouseEvent e) {
        }

        public void mouseDoubleClick(MouseEvent e) {
        }
    });

    tree.addMouseMoveListener(new MouseMoveListener() {
        TreeItem fLastItem = null;

        public void mouseMove(MouseEvent e) {
            if (tree.equals(e.getSource())) {
                Object o = tree.getItem(new Point(e.x, e.y));
                if ((o != null && !o.equals(fLastItem)) || (fLastItem != null && o == null)) {
                    boolean showHandPointer = false;
                    if (o instanceof TreeItem) {
                        Object itemData = ((TreeItem) o).getData();
                        if (itemData instanceof IJavaElement) {
                            int elementType = ((IJavaElement) itemData).getElementType();
                            if (elementType != IJavaElement.JAVA_PROJECT
                                    && elementType != IJavaElement.PACKAGE_FRAGMENT
                                    && elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT) {
                                showHandPointer = true;
                            }
                        } else if (itemData instanceof IFile) {
                            showHandPointer = true;
                        } else if (itemData instanceof IJarEntryResource) {
                            showHandPointer = ((IJarEntryResource) itemData).isFile();
                        }
                    }
                    tree.setCursor(showHandPointer ? tree.getDisplay().getSystemCursor(SWT.CURSOR_HAND) : null);
                }
                if (o instanceof TreeItem) {
                    Rectangle clientArea = tree.getClientArea();
                    TreeItem currentItem = (TreeItem) o;
                    if (!o.equals(fLastItem)) {
                        fLastItem = (TreeItem) o;
                        tree.setSelection(new TreeItem[] { fLastItem });
                    } else if (e.y - clientArea.y < tree.getItemHeight() / 4) {
                        // Scroll up
                        if (currentItem.getParentItem() == null) {
                            int index = tree.indexOf((TreeItem) o);
                            if (index < 1)
                                return;

                            fLastItem = tree.getItem(index - 1);
                            tree.setSelection(new TreeItem[] { fLastItem });
                        } else {
                            Point p = tree.toDisplay(e.x, e.y);
                            Item item = fDropDownViewer.scrollUp(p.x, p.y);
                            if (item instanceof TreeItem) {
                                fLastItem = (TreeItem) item;
                                tree.setSelection(new TreeItem[] { fLastItem });
                            }
                        }
                    } else if (clientArea.y + clientArea.height - e.y < tree.getItemHeight() / 4) {
                        // Scroll down
                        if (currentItem.getParentItem() == null) {
                            int index = tree.indexOf((TreeItem) o);
                            if (index >= tree.getItemCount() - 1)
                                return;

                            fLastItem = tree.getItem(index + 1);
                            tree.setSelection(new TreeItem[] { fLastItem });
                        } else {
                            Point p = tree.toDisplay(e.x, e.y);
                            Item item = fDropDownViewer.scrollDown(p.x, p.y);
                            if (item instanceof TreeItem) {
                                fLastItem = (TreeItem) item;
                                tree.setSelection(new TreeItem[] { fLastItem });
                            }
                        }
                    }
                } else if (o == null) {
                    fLastItem = null;
                }
            }
        }
    });

    tree.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_UP) {
                TreeItem[] selection = tree.getSelection();
                if (selection.length != 1)
                    return;

                int selectionIndex = tree.indexOf(selection[0]);
                if (selectionIndex != 0)
                    return;

                fShell.close();
            }
        }

        public void keyReleased(KeyEvent e) {
        }
    });

    fDropDownViewer.addTreeListener(new ITreeViewerListener() {
        public void treeCollapsed(TreeExpansionEvent event) {
        }

        public void treeExpanded(TreeExpansionEvent event) {
            tree.setRedraw(false);
            fShell.getDisplay().asyncExec(new Runnable() {
                public void run() {
                    if (fShell.isDisposed())
                        return;

                    try {
                        resizeShell(fShell);
                    } finally {
                        tree.setRedraw(true);
                    }
                }
            });
        }
    });

    int index = fParent.getViewer().getIndexOfItem(fParent);
    if (index < fParent.getViewer().getItemCount() - 1) {
        BreadcrumbItem childItem = fParent.getViewer().getItem(index + 1);
        Object child = childItem.getData();

        fDropDownViewer.setSelection(new StructuredSelection(child), true);

        TreeItem[] selection = tree.getSelection();
        if (selection.length > 0) {
            tree.setTopItem(selection[0]);
        }
    }

    fShell.setVisible(true);
    installCloser(fShell);
    tree.setFocus();
}