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

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

Introduction

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

Prototype

int PACKAGE_FRAGMENT_ROOT

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

Click Source Link

Document

Constant representing a package fragment root.

Usage

From source file:nz.ac.massey.cs.jquest.views.ElementChangedListener.java

License:Open Source License

private void processDelta(IJavaElementDelta delta) {
    IJavaElement javaElement = delta.getElement();
    switch (javaElement.getElementType()) {
    case IJavaElement.JAVA_MODEL:
    case IJavaElement.JAVA_PROJECT:
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.PACKAGE_FRAGMENT:
        IJavaElementDelta[] affectedChildren = delta.getAffectedChildren();
        for (IJavaElementDelta affectedChild : affectedChildren) {
            processDelta(affectedChild);
        }//from   w  ww .  j  a  v a 2 s  . co  m
        break;
    case IJavaElement.COMPILATION_UNIT:
        ICompilationUnit cu = (ICompilationUnit) javaElement;
        if (selectedProject == null)
            return;
        if (!cu.getJavaProject().getProject().getName().equals(selectedProject.getName())) {
            return;
        }
        if (delta.getKind() == IJavaElementDelta.ADDED) {
            projectHasChanged = true;
            singleView.projectUpdated();
        } else if (delta.getKind() == IJavaElementDelta.REMOVED) {
            projectHasChanged = true;
            singleView.projectUpdated();
        } else if (delta.getKind() == IJavaElementDelta.CHANGED) {
            projectHasChanged = true;
            singleView.projectUpdated();
            //            if((delta.getFlags() & IJavaElementDelta.F_FINE_GRAINED) != 0) {
            //            }
        }
    }
}

From source file:org.apache.felix.sigil.eclipse.model.util.JavaHelper.java

License:Apache License

private static void findIndirectReferences(Set<String> indirect, String pckg, IParent parent, IJavaProject p)
        throws JavaModelException {
    for (IJavaElement e : parent.getChildren()) {
        boolean skip = false;
        switch (e.getElementType()) {
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            IPackageFragmentRoot rt = (IPackageFragmentRoot) e;
            IClasspathEntry ce = rt.getRawClasspathEntry();
            IPath path = ce.getPath();//w w  w  .j  ava 2 s  .  co  m
            skip = "org.eclipse.jdt.launching.JRE_CONTAINER".equals(path.toString());
            break;
        case IJavaElement.CLASS_FILE:
            IClassFile cf = (IClassFile) e;
            if (cf.getElementName().startsWith(pckg)) {
                findIndirectReferences(indirect, findPackage(cf.getType().getSuperclassName()), p, p);
            }
            break;
        case IJavaElement.COMPILATION_UNIT:
            ICompilationUnit cu = (ICompilationUnit) e;
            break;
        }

        if (!skip && e instanceof IParent) {
            IParent newParent = (IParent) e;
            findIndirectReferences(indirect, pckg, newParent, p);
        }
    }
}

From source file:org.apache.felix.sigil.eclipse.model.util.JavaHelper.java

License:Apache License

private static void findJavaModelImports(ISigilProjectModel project, Set<String> imports,
        IProgressMonitor monitor) {/*from   w ww.  java 2  s.c om*/
    try {
        for (IPackageFragment root : project.getJavaModel().getPackageFragments()) {
            if (monitor.isCanceled()) {
                return;
            }

            IPackageFragmentRoot rt = (IPackageFragmentRoot) root
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);

            if (isInClassPath(project, rt)) {
                for (ICompilationUnit cu : root.getCompilationUnits()) {
                    scanImports(cu, imports);
                }

                for (IClassFile cf : root.getClassFiles()) {
                    scanImports(cf, imports);
                }
            }
        }
    } catch (JavaModelException e) {
        SigilCore.error("Failed to parse java model", e);
    }
}

From source file:org.apache.felix.sigil.eclipse.model.util.JavaHelper.java

License:Apache License

public static Set<String> findLocalPackageUsers(ISigilProjectModel project, String packageName,
        IProgressMonitor monitor) throws JavaModelException {
    Set<String> imports = new HashSet<String>();
    Set<String> check = new HashSet<String>();
    for (IPackageFragment root : project.getJavaModel().getPackageFragments()) {
        IPackageFragmentRoot rt = (IPackageFragmentRoot) root.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);

        if (isInClassPath(project, rt)) {
            for (ICompilationUnit cu : root.getCompilationUnits()) {
                IPackageFragment pack = (IPackageFragment) cu.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
                if (!pack.getElementName().equals(packageName)) {
                    scanImports(cu, check);
                    if (check.contains(packageName)) {
                        imports.add(pack.getElementName());
                    }/*w w w. j  a  va  2s .  c  o m*/
                }
                check.clear();
            }

            for (IClassFile cf : root.getClassFiles()) {
                IPackageFragment pack = (IPackageFragment) cf.getAncestor(IJavaModel.PACKAGE_FRAGMENT);
                if (!pack.getElementName().equals(packageName)) {
                    scanImports(cf, check);
                    if (check.contains(packageName)) {
                        imports.add(pack.getElementName());
                    }
                }
                check.clear();
            }
        }
    }

    return imports;
}

From source file:org.apache.felix.sigil.ui.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_ROOT)) {
                    IPackageFragmentRoot root = (IPackageFragmentRoot) 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 w  w  w .  jav  a2 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.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;
            }//  ww  w.  j  a  v 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_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 IPackageFragmentRoot getSelectedPackageFragmentRoot() {
    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_ROOT)
            return (IPackageFragmentRoot) element;
    }//from   w w w  .  j av  a  2 s.c  om
    return null;
}

From source file:org.codehaus.groovy.eclipse.codeassist.ProposalUtils.java

License:Apache License

/**
 * Can be null if access restriction cannot be resolved for given type
 *
 * @param type// w  ww .  j ava  2s  .  c  o  m
 * @param project
 * @return
 */
public static AccessRestriction getTypeAccessibility(IType type) {

    PackageFragmentRoot root = (PackageFragmentRoot) type.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);

    try {
        IClasspathEntry entry = root.getResolvedClasspathEntry();
        // Alternative:
        // entry = ((JavaProject) typeProject).getClasspathEntryFor(root
        // .getPath());
        if (entry instanceof ClasspathEntry) {
            AccessRuleSet accessRuleSet = ((ClasspathEntry) entry).getAccessRuleSet();
            if (accessRuleSet != null) {
                char[] packageName = type.getPackageFragment().getElementName().toCharArray();
                char[][] packageChars = CharOperation.splitOn('.', packageName);
                char[] fileWithoutExtension = type.getElementName().toCharArray();

                return accessRuleSet.getViolatedRestriction(
                        CharOperation.concatWith(packageChars, fileWithoutExtension, '/'));

            }
        }
    } catch (JavaModelException e) {
        // nothing
    }

    return null;
}

From source file:org.cubictest.exporters.selenium.ui.CustomStepWizard.java

License:Open Source License

@Override
public void addPages() {
    classWizard = new NewClassWizardPage();
    IJavaProject javaProject = JavaCore.create(project);
    IResource pageFragmentRoot = null;/* w  w w  .j a v  a2  s  . c  o m*/
    try {
        for (IJavaElement element : javaProject.getChildren())
            if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
                pageFragmentRoot = element.getResource();
                break;
            }
    } catch (JavaModelException e) {
        Logger.error(e.getMessage(), e);
    }
    if (pageFragmentRoot != null)
        classWizard.setPackageFragmentRoot(javaProject.getPackageFragmentRoot(pageFragmentRoot), true);
    classWizard.addSuperInterface("org.cubictest.selenium.custom.ICustomTestStep");
    classWizard.setMethodStubSelection(false, false, true, true);
    addPage(classWizard);
}

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

License:Open Source License

/**
 * Opens the drop down menu./*from  w  ww.  j  av a  2 s.  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();
}