List of usage examples for org.eclipse.jface.viewers ITreePathContentProvider getChildren
public Object[] getChildren(TreePath parentPath);
From source file:com.jointlogic.breadcrumbs.sampleapp.api.BreadcrumbViewer.java
License:Open Source License
/** * Generates the parent chain of the given element. * /*from w w w . jav a 2 s .c o m*/ * @param element * element to build the parent chain for * @return the first index of an item in fBreadcrumbItems which is not part * of the chain */ private void buildItemChain(final Object input) { if (this.fBreadcrumbItems.size() > 0) { final BreadcrumbItem last = (BreadcrumbItem) this.fBreadcrumbItems .get(this.fBreadcrumbItems.size() - 1); last.setIsLastItem(false); } int index = 0; boolean updateLayout = false; if (input != null) { final ITreePathContentProvider contentProvider = (ITreePathContentProvider) getContentProvider(); TreePath path = new TreePath(new Object[0]); // Top level elements need to be retrieved using getElements(), rest // using getChildren(). Object[] children = contentProvider.getElements(input); Object element = children != null && children.length != 0 ? children[0] : null; while (element != null) { path = path.createChildPath(element); // All but last item are hidden if the viewer is in a vertical // toolbar. children = contentProvider.getChildren(path); if ((getStyle() & SWT.VERTICAL) == 0 || children == null || children.length == 0) { updateLayout = updateOrCreateItem(index++, path, element) || updateLayout; } if (children != null && children.length != 0) { element = children[0]; } else { break; } } } BreadcrumbItem last = null; if (index <= this.fBreadcrumbItems.size()) { last = (BreadcrumbItem) this.fBreadcrumbItems.get(index - 1); last.setIsLastItem(true); } while (index < this.fBreadcrumbItems.size()) { updateLayout = true; final BreadcrumbItem item = (BreadcrumbItem) this.fBreadcrumbItems .remove(this.fBreadcrumbItems.size() - 1); if (item.hasFocus() && last != null) { last.setFocus(true); } if (item == this.fSelectedItem) { selectItem(null); } if (item.getData() != null) { unmapElement(item.getData()); } item.dispose(); } if (updateLayout) { updateSize(); this.fContainer.layout(true, true); } }
From source file:cz.robotron.examples.jface.treePathFiltered.TreePathPatternFilter.java
License:Open Source License
/** * @see PatternFilter#isParentMatch(Viewer, Object) *///from ww w . ja va 2 s . co m @Override protected boolean isParentMatch(Viewer viewer, Object element) { TreePath elementPath = (TreePath) element; boolean proceed = allowDescend(elementPath); if (!proceed) { return false; } Object[] children; ITreePathContentProvider cp = ((ITreePathContentProvider) ((AbstractTreeViewer) viewer) .getContentProvider()); children = cp.getChildren(elementPath); if ((children != null) && (children.length > 0)) { // convert children to tree paths List<TreePath> pathChildren = TreePathFilteredTree.getPathsForElements(elementPath, children); return isAnyVisible(viewer, element, pathChildren.toArray()); } return false; }
From source file:org.eclipse.debug.internal.ui.viewers.breadcrumb.BreadcrumbViewer.java
License:Open Source License
/** * Generates the parent chain of the given element. * @param input element to build the parent chain for *//* ww w . j a va2 s .c o m*/ private void buildItemChain(Object input) { if (fBreadcrumbItems.size() > 0) { BreadcrumbItem last = (BreadcrumbItem) fBreadcrumbItems.get(fBreadcrumbItems.size() - 1); last.setIsLastItem(false); } int index = 0; boolean updateLayout = false; if (input != null) { ITreePathContentProvider contentProvider = (ITreePathContentProvider) getContentProvider(); TreePath path = new TreePath(new Object[0]); // Top level elements need to be retrieved using getElements(), rest // using getChildren(). Object[] children = contentProvider.getElements(input); Object element = children != null && children.length != 0 ? children[0] : null; while (element != null) { path = path.createChildPath(element); // All but last item are hidden if the viewer is in a vertical toolbar. children = contentProvider.getChildren(path); if ((getStyle() & SWT.VERTICAL) == 0 || children == null || children.length == 0) { updateLayout = updateOrCreateItem(index++, path, element) || updateLayout; } if (children != null && children.length != 0) { element = children[0]; } else { break; } } } BreadcrumbItem last = null; if (index <= fBreadcrumbItems.size()) { last = ((BreadcrumbItem) fBreadcrumbItems.get(index - 1)); last.setIsLastItem(true); } while (index < fBreadcrumbItems.size()) { updateLayout = true; BreadcrumbItem item = (BreadcrumbItem) fBreadcrumbItems.remove(fBreadcrumbItems.size() - 1); if (item.hasFocus() && last != null) { last.setFocus(true); } if (item == fSelectedItem) { selectItem(null); } if (item.getData() != null) unmapElement(item.getData()); item.dispose(); } if (updateLayout) { updateSize(); fContainer.layout(true, true); } }
From source file:org.eclipse.swt.nebula.nebface.ctabletreeviewer.CTableTreeViewer.java
License:Open Source License
protected Object[] getRawChildren(Object parent) { Object[] result = null;/*from www . j a va2 s .c o m*/ TreePath path; if (parent instanceof TreePath) { path = (TreePath) parent; parent = path.getLastSegment(); } else { path = null; } if (parent != null) { IStructuredContentProvider cp = (IStructuredContentProvider) getContentProvider(); if (cp != null) { if (cp instanceof ITreeContentProvider) { ITreeContentProvider tcp = (ITreeContentProvider) cp; // if Flat, must iteratively get all children and return them as one array // so that the filters and sorters hit every element // if NOT Flat (Hierarchical) then only return the direct elements or children // requested - the getSortedChildren method will compile all branches after // being filtered if (getCTableTree().isFlat()) { Object[] oa; if (equals(parent, getRoot())) { oa = tcp.getElements(parent); } else { oa = tcp.getChildren(parent); } Set s = new HashSet(oa.length); for (int i = 0; i < oa.length; i++) { s.add(oa[i]); s.addAll(Arrays.asList(getRawChildren(oa[i]))); } result = s.isEmpty() ? new Object[0] : s.toArray(); } else { if (equals(parent, getRoot())) { result = tcp.getElements(parent); } else { result = tcp.getChildren(parent); } } } else if (cp instanceof ITreePathContentProvider) { ITreePathContentProvider tpcp = (ITreePathContentProvider) cp; // if Flat, must iteratively get all children and return them as one array // so that the filters and sorters hit every element // if NOT Flat (Hierarchical) then only return the direct elements or children // requested - the getSortedChildren method will compile all branches after // being filtered if (getCTableTree().isFlat()) { Object[] oa; if (equals(parent, getRoot())) { oa = tpcp.getElements(parent); } else { if (path == null) { // A path was not provided so try and find one Widget w = findItem(parent); if (w instanceof Item) { Item item = (Item) w; path = getTreePathFromItem(item); } if (path == null) { path = new TreePath(new Object[] { parent }); } } oa = tpcp.getChildren(path); } Set s = new HashSet(oa.length); for (int i = 0; i < oa.length; i++) { s.add(oa[i]); s.addAll(Arrays.asList(getRawChildren(oa[i]))); } result = s.isEmpty() ? new Object[0] : s.toArray(); } else { if (equals(parent, getRoot())) { result = tpcp.getElements(parent); } else { if (path == null) { // A path was not provided so try and find one Widget w = findItem(parent); if (w instanceof Item) { Item item = (Item) w; path = getTreePathFromItem(item); } if (path == null) { path = new TreePath(new Object[] { parent }); } } result = tpcp.getChildren(path); } } } else { result = cp.getElements(parent); } assertElementsNotNull(result); } } return (result != null) ? result : new Object[0]; }
From source file:org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.java
License:Open Source License
public Object[] getChildren(TreePath parentPath) { if (contentProvider instanceof ITreePathContentProvider) { ITreePathContentProvider tpcp = (ITreePathContentProvider) contentProvider; Object[] children = tpcp.getChildren(parentPath); return children; }//from w ww . j a v a 2 s . c om return getChildren(parentPath.getLastSegment()); }
From source file:org.neuro4j.studio.debug.ui.views.BreadcrumbViewer.java
License:Apache License
/** * Generates the parent chain of the given element. * /*from w w w .jav a2 s . c om*/ * @param element * element to build the parent chain for * @return the first index of an item in fBreadcrumbItems which is not * part of the chain */ private void buildItemChain(Object input) { if (fBreadcrumbItems.size() > 0) { BreadcrumbItem last = (BreadcrumbItem) fBreadcrumbItems.get(fBreadcrumbItems.size() - 1); last.setIsLastItem(false); } int index = 0; boolean updateLayout = false; if (input != null) { ITreePathContentProvider contentProvider = (ITreePathContentProvider) getContentProvider(); TreePath path = new TreePath(new Object[0]); // Top level elements need to be retrieved using getElements(), rest // using getChildren(). Object[] children = contentProvider.getElements(input); Object element = children != null && children.length != 0 ? children[0] : null; while (element != null) { path = path.createChildPath(element); // All but last item are hidden if the viewer is in a vertical toolbar. children = contentProvider.getChildren(path); if ((getStyle() & SWT.VERTICAL) == 0 || children == null || children.length == 0) { updateLayout = updateOrCreateItem(index++, path, element) || updateLayout; } if (children != null && children.length != 0) { element = children[0]; } else { break; } } } BreadcrumbItem last = null; if (index <= fBreadcrumbItems.size()) { last = ((BreadcrumbItem) fBreadcrumbItems.get(index - 1)); last.setIsLastItem(true); } while (index < fBreadcrumbItems.size()) { updateLayout = true; BreadcrumbItem item = (BreadcrumbItem) fBreadcrumbItems.remove(fBreadcrumbItems.size() - 1); if (item.hasFocus() && last != null) { last.setFocus(true); } if (item == fSelectedItem) { selectItem(null); } if (item.getData() != null) unmapElement(item.getData()); item.dispose(); } if (updateLayout) { updateSize(); fContainer.layout(true, true); } }
From source file:org.openscada.ui.breadcrumbs.BreadcrumbViewer.java
License:Open Source License
/** * Generates the parent chain of the given element. * //from w w w. ja v a2 s .c om * @param element * element to build the parent chain for * @return the first index of an item in fBreadcrumbItems which is not part * of the chain */ private void buildItemChain(final Object input) { if (this.fBreadcrumbItems.size() > 0) { final BreadcrumbItem last = (BreadcrumbItem) this.fBreadcrumbItems .get(this.fBreadcrumbItems.size() - 1); last.setIsLastItem(false); } int index = 0; boolean updateLayout = false; if (input != null) { final ITreePathContentProvider contentProvider = (ITreePathContentProvider) getContentProvider(); TreePath path = new TreePath(new Object[0]); // Top level elements need to be retrieved using getElements(), rest // using getChildren(). Object[] children = contentProvider.getElements(input); Object element = children != null && children.length != 0 ? children[0] : null; while (element != null) { path = path.createChildPath(element); // All but last item are hidden if the viewer is in a vertical // toolbar. children = contentProvider.getChildren(path); if ((getStyle() & SWT.VERTICAL) == 0 || children == null || children.length == 0) { updateLayout = updateOrCreateItem(index++, path, element) || updateLayout; } if (children != null && children.length != 0) { element = children[0]; } else { break; } } } BreadcrumbItem last = null; if (index <= this.fBreadcrumbItems.size()) { last = (BreadcrumbItem) this.fBreadcrumbItems.get(index - 1); last.setIsLastItem(true); } while (index < this.fBreadcrumbItems.size()) { updateLayout = true; final BreadcrumbItem item = (BreadcrumbItem) this.fBreadcrumbItems .remove(this.fBreadcrumbItems.size() - 1); if (item.hasFocus() && last != null) { last.setFocus(true); } if (item == this.fSelectedItem) { selectItem(null); } if (item.getData() != null) { unmapElement(item.getData()); } item.dispose(); } if (updateLayout) { updateSize(); this.fContainer.layout(true, true); } }
From source file:rabbit.ui.internal.viewers.FilterableTreePathContentProviderTest.java
License:Apache License
@Test public void getChildrenShouldRetainTheOrderOfTheChildrenWhenNoFiltering() { Object[] children = { 9, 29, "adf", 0 }; TreePath parent = newPath();/*from w w w .ja va 2 s . com*/ ITreePathContentProvider p = create(parent, children); assertThat(p.getChildren(parent), equalTo(children)); }
From source file:rabbit.ui.internal.viewers.FilterableTreePathContentProviderTest.java
License:Apache License
@Test public void getChildrenShouldReturnAllChildrenIfNoFiltering() { Object[] expectedChildren1 = { Integer.valueOf(0), "100" }; Object[] expectedChildren2 = { "1", "2" }; TreePath parent1 = newPath("1"); TreePath parent2 = newPath("2"); ITreePathContentProvider mock = mock(ITreePathContentProvider.class); given(mock.getChildren(parent1)).willReturn(expectedChildren1); given(mock.getChildren(parent2)).willReturn(expectedChildren2); FilterableTreePathContentProvider provider = create(mock); assertThat(provider.getChildren(parent1), equalTo(expectedChildren1)); assertThat(provider.getChildren(parent2), equalTo(expectedChildren2)); }
From source file:rabbit.ui.internal.viewers.FilterableTreePathContentProviderTest.java
License:Apache License
private final ForwardingTreePathContentProvider create() { ITreePathContentProvider p = mock(ITreePathContentProvider.class); given(p.getChildren(Mockito.<TreePath>any())).willReturn(EMPTY_ARRAY); given(p.getElements(Mockito.any())).willReturn(EMPTY_ARRAY); given(p.hasChildren(Mockito.<TreePath>any())).willReturn(Boolean.FALSE); return create(p); }