private void postRefresh(Object root, int relation, Object affectedElement, Collection runnables) { // JFace doesn't refresh when object isn't part of the viewer // Therefore move the refresh start down to the viewer's input if (isParent(root, fInput)) root= fInput; List toRefresh= new ArrayList(1); toRefresh.add(root); augmentElementToRefresh(toRefresh, relation, affectedElement); postRefresh(toRefresh, true, runnables); }
public Object[] getChildren(Object parentElement) { try { if (parentElement instanceof IJavaModel) return concatenate(getJavaProjects((IJavaModel)parentElement), getNonJavaProjects((IJavaModel)parentElement)); if (parentElement instanceof PackageFragmentRootContainer) return getContainerPackageFragmentRoots((PackageFragmentRootContainer)parentElement); if (parentElement instanceof IProject) return ((IProject)parentElement).members(); return super.getChildren(parentElement); } catch (CoreException e) { return NO_CHILDREN; } }
@Override public void dispose() { super.dispose(); fStateModel.removePropertyChangeListener(fLayoutPropertyListener); }
@Override public void elementChanged(final ElementChangedEvent event) { final ArrayList<Runnable> runnables= new ArrayList<>(); try { // 58952 delete project does not update Package Explorer [package explorer] // if the input to the viewer is deleted then refresh to avoid the display of stale elements if (inputDeleted(runnables)) return; processDelta(event.getDelta(), runnables); } catch (JavaModelException e) { JavaPlugin.log(e); } finally { executeRunnables(runnables); } }
@Override public void elementChanged(final ElementChangedEvent event) { final ArrayList<Runnable> runnables= new ArrayList<>(); try { clearPackageCache(); // 58952 delete project does not update Package Explorer [package explorer] // if the input to the viewer is deleted then refresh to avoid the display of stale elements if (inputDeleted(runnables)) return; processDelta(event.getDelta(), runnables); } catch (JavaModelException e) { JavaPlugin.log(e); } finally { executeRunnables(runnables); } }
public Object[] getChildren(Object parentElement) { if (parentElement instanceof IWorkspaceRoot) { IWorkspaceRoot root = (IWorkspaceRoot) parentElement; return root.getProjects(); } if (parentElement instanceof IProject) { return super.getChildren(JavaCore.create((IProject)parentElement)); } return super.getChildren(parentElement); }
/** * Creates a new content provider for Java elements. * @param provideMembers if set, members of compilation units and class files are shown */ public PackageExplorerContentProvider(boolean provideMembers) { super(provideMembers); fShowLibrariesNode= false; fIsFlatLayout= false; fFoldPackages= arePackagesFoldedInHierarchicalLayout(); fPendingUpdates= null; JavaPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this); }
/** * Returns the hierarchical packages inside a given fragment. * * @param fragment the package to get the children for or 'null' to get the children of the root * @param result Collection where the resulting elements are added * @throws JavaModelException if fetching the children fails */ private void getHierarchicalPackageChildren(IPackageFragment fragment, Collection<Object> result) throws JavaModelException { List<IPackageFragment> children = packageCache.getDirectChildren(fragment); for (IPackageFragment child : children) { if (fFoldPackages) { child= getFolded(child); } result.add(child); } }
if (!name.isEmpty() && name.indexOf('.') == -1) { if (fFoldPackages) { curr= getFolded(curr); if (isRelevantPackage(curr, is9OrHigher)) result.add(curr); IJavaElement emptyModuleInfo= emptyModuleInfo(curr, is9OrHigher); if (emptyModuleInfo != null) result.add(emptyModuleInfo);
public Object[] getElements(Object inputElement) { if (inputElement instanceof IWorkspaceRoot) { IWorkspaceRoot root = (IWorkspaceRoot) inputElement; return root.getProjects(); } else if (inputElement instanceof IJavaModel) { return ((IJavaModel)inputElement).getWorkspace().getRoot().getProjects(); } if (inputElement instanceof IProject) { return super.getElements(JavaCore.create((IProject)inputElement)); } return super.getElements(inputElement); }
/** * This method should only be called inside this class * and from test cases. * @return the created content provider */ public PackageExplorerContentProvider createContentProvider() { IPreferenceStore store= PreferenceConstants.getPreferenceStore(); boolean showCUChildren= store.getBoolean(PreferenceConstants.SHOW_CU_CHILDREN); if (getRootMode() == PROJECTS_AS_ROOTS) return new PackageExplorerContentProvider(showCUChildren); else return new WorkingSetAwareContentProvider(showCUChildren, fWorkingSetModel); }
public void elementChanged(final ElementChangedEvent event) { final ArrayList runnables= new ArrayList(); try { // 58952 delete project does not update Package Explorer [package explorer] // if the input to the viewer is deleted then refresh to avoid the display of stale elements if (inputDeleted(runnables)) return; processDelta(event.getDelta(), runnables); } catch (JavaModelException e) { JavaPlugin.log(e); } finally { executeRunnables(runnables); } }
@Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof IWorkspaceRoot) { IWorkspaceRoot root = (IWorkspaceRoot) parentElement; return filterResourceProjects(root.getProjects()); } if (parentElement instanceof IProject) { return super.getChildren(JavaCore.create((IProject)parentElement)); } return super.getChildren(parentElement); }
/** * Creates a new content provider for Java elements. * @param provideMembers if set, members of compilation units and class files are shown */ public PackageExplorerContentProvider(boolean provideMembers) { super(provideMembers); fShowLibrariesNode= false; fIsFlatLayout= false; fFoldPackages= arePackagesFoldedInHierarchicalLayout(); fPendingUpdates= null; JavaPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this); fUpdateJob= null; }
/** * Returns the hierarchical packages inside a given folder. * @param folder The parent folder * @param result Collection where the resulting elements are added * @throws CoreException thrown when elements could not be accessed */ private void getHierarchicalPackagesInFolder(IFolder folder, Collection<Object> result) throws CoreException { IResource[] resources= folder.members(); for (int i= 0; i < resources.length; i++) { IResource resource= resources[i]; if (resource instanceof IFolder) { IFolder curr= (IFolder) resource; IJavaElement element= JavaCore.create(curr); if (element instanceof IPackageFragment) { if (fFoldPackages) { IPackageFragment fragment= (IPackageFragment) element; element= getFolded(fragment); } result.add(element); } } } }
@Override public Object[] getElements(Object inputElement) { if (inputElement instanceof IWorkspaceRoot) { IWorkspaceRoot root = (IWorkspaceRoot) inputElement; return filterResourceProjects(root.getProjects()); } else if (inputElement instanceof IJavaModel) { return filterResourceProjects(((IJavaModel) inputElement).getWorkspace().getRoot().getProjects()); } if (inputElement instanceof IProject) { return super.getElements(JavaCore.create((IProject)inputElement)); } return super.getElements(inputElement); }
/** * This method should only be called inside this class * and from test cases. * @return the created content provider */ public PackageExplorerContentProvider createContentProvider() { IPreferenceStore store= PreferenceConstants.getPreferenceStore(); boolean showCUChildren= store.getBoolean(PreferenceConstants.SHOW_CU_CHILDREN); if (showProjects()) return new PackageExplorerContentProvider(showCUChildren); else return new WorkingSetAwareContentProvider(showCUChildren, fWorkingSetModel); }
@Override public Object[] getChildren(Object parentElement) { try { if (parentElement instanceof IJavaModel) return concatenate(getJavaProjects((IJavaModel)parentElement), getNonJavaProjects((IJavaModel)parentElement)); if (parentElement instanceof PackageFragmentRootContainer) return getContainerPackageFragmentRoots((PackageFragmentRootContainer)parentElement); if (parentElement instanceof IProject) { IProject project= (IProject) parentElement; if (project.isAccessible()) return project.members(); return NO_CHILDREN; } return super.getChildren(parentElement); } catch (CoreException e) { return NO_CHILDREN; } }
private void postRefresh(Object root, int relation, Object affectedElement, Collection<Runnable> runnables) { // JFace doesn't refresh when object isn't part of the viewer // Therefore move the refresh start down to the viewer's input if (isParent(root, fInput) || root instanceof IJavaModel) root= fInput; List<Object> toRefresh= new ArrayList<>(1); toRefresh.add(root); augmentElementToRefresh(toRefresh, relation, affectedElement); postRefresh(toRefresh, true, runnables); }
@Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof IWorkspaceRoot) { IWorkspaceRoot root = (IWorkspaceRoot) parentElement; return filterResourceProjects(root.getProjects()); } if (parentElement instanceof IProject) { return super.getChildren(JavaCore.create((IProject)parentElement)); } return super.getChildren(parentElement); }