/** * Instructs {@link #isExpandable(Object)} to consult filters to more accurately * determine if an item can be expanded. * <p> * Setting this value to <code>true</code> will affect performance of the tree * viewer. * </p><p> * To improve performance, by default the tree viewer does not consult filters when * determining if a tree node could be expanded. * </p> * @param checkFilters <code>true</code> to instruct tree viewer to consult filters * @see #isExpandable(Object) * @since 3.8 */ public void setExpandPreCheckFilters(boolean checkFilters) { if (checkFilters != isExpandableCheckFilters) { this.isExpandableCheckFilters = checkFilters; refresh(); } }
/** * Instructs {@link #isExpandable(Object)} to consult filters to more accurately * determine if an item can be expanded. * <p> * Setting this value to <code>true</code> will affect performance of the tree * viewer. * </p><p> * To improve performance, by default the tree viewer does not consult filters when * determining if a tree node could be expanded. * </p> * @param checkFilters <code>true</code> to instruct tree viewer to consult filters * @see #isExpandable(Object) * @since 3.8 */ public void setExpandPreCheckFilters(boolean checkFilters) { if (checkFilters != isExpandableCheckFilters) { this.isExpandableCheckFilters = checkFilters; refresh(); } }
@Override public void clear() { initialize(fResult); fTreeViewer.refresh(); }
public void clear() { initialize(fResult); fTreeViewer.refresh(); }
public void clear() { initialize(fResult); fTreeViewer.refresh(); }
private void remove(Object element, boolean refreshViewer) { // precondition here: fResult.getMatchCount(child) <= 0 if (hasChildren(element)) { if (refreshViewer) fTreeViewer.refresh(element); } else { if (!hasMatches(element)) { fChildrenMap.remove(element); Object parent= getParent(element); if (parent != null) { removeFromSiblings(element, parent); remove(parent, refreshViewer); } else { removeFromSiblings(element, fResult); if (refreshViewer) fTreeViewer.refresh(); } } else { if (refreshViewer) { fTreeViewer.refresh(element); } } } }
protected void remove(Object element, boolean refreshViewer) { // precondition here: fResult.getMatchCount(child) <= 0 if (hasChildren(element)) { if (refreshViewer) fTreeViewer.refresh(element); } else { if (fResult.getMatchCount(element) == 0) { fChildrenMap.remove(element); Object parent= getParent(element); if (parent != null) { removeFromSiblings(element, parent); remove(parent, refreshViewer); } else { removeFromSiblings(element, fResult); if (refreshViewer) fTreeViewer.refresh(); } } else { if (refreshViewer) { fTreeViewer.refresh(element); } } } }
protected void remove(Object element, boolean refreshViewer) { // precondition here: fResult.getMatchCount(child) <= 0 if (hasChildren(element)) { if (refreshViewer) fTreeViewer.refresh(element); } else { if (fResult.getMatchCount(element) == 0) { fChildrenMap.remove(element); Object parent= getParent(element); if (parent != null) { removeFromSiblings(element, parent); remove(parent, refreshViewer); } else { removeFromSiblings(element, fResult); if (refreshViewer) fTreeViewer.refresh(); } } else { if (refreshViewer) { fTreeViewer.refresh(element); } } } }
public synchronized void elementsChanged(Object[] updatedElements) { if (getSearchResult() == null) return; AbstractTreeViewer viewer= (AbstractTreeViewer) getPage().getViewer(); Set toRemove= new HashSet(); Set toUpdate= new HashSet(); Map toAdd= new HashMap(); for (int i= 0; i < updatedElements.length; i++) { if (getPage().getDisplayedMatchCount(updatedElements[i]) > 0) insert(toAdd, toUpdate, updatedElements[i]); else remove(toRemove, toUpdate, updatedElements[i]); } viewer.remove(toRemove.toArray()); for (Iterator iter= toAdd.keySet().iterator(); iter.hasNext();) { Object parent= iter.next(); HashSet children= (HashSet) toAdd.get(parent); viewer.add(parent, children.toArray()); } for (Iterator elementsToUpdate= toUpdate.iterator(); elementsToUpdate.hasNext();) { viewer.refresh(elementsToUpdate.next()); } }
@Override public synchronized void elementsChanged(Object[] updatedElements) { if (getSearchResult() == null) return; AbstractTreeViewer viewer= (AbstractTreeViewer) getPage().getViewer(); Set<Object> toRemove= new HashSet<>(); Set<Object> toUpdate= new HashSet<>(); Map<Object, Set<Object>> toAdd= new HashMap<>(); for (int i= 0; i < updatedElements.length; i++) { if (getPage().getDisplayedMatchCount(updatedElements[i]) > 0) insert(toAdd, toUpdate, updatedElements[i]); else remove(toRemove, toUpdate, updatedElements[i]); } viewer.remove(toRemove.toArray()); for (Iterator<Object> iter= toAdd.keySet().iterator(); iter.hasNext();) { Object parent= iter.next(); HashSet<Object> children= (HashSet<Object>) toAdd.get(parent); viewer.add(parent, children.toArray()); } for (Iterator<Object> elementsToUpdate= toUpdate.iterator(); elementsToUpdate.hasNext();) { viewer.refresh(elementsToUpdate.next()); } }
@Override public synchronized void elementsChanged(Object[] updatedElements) { if (getSearchResult() == null) return; AbstractTreeViewer viewer= (AbstractTreeViewer) getPage().getViewer(); Set<Object> toRemove= new HashSet<>(); Set<Object> toUpdate= new HashSet<>(); Map<Object, Set<Object>> toAdd= new HashMap<>(); for (int i= 0; i < updatedElements.length; i++) { if (getPage().getDisplayedMatchCount(updatedElements[i]) > 0) insert(toAdd, toUpdate, updatedElements[i]); else remove(toRemove, toUpdate, updatedElements[i]); } viewer.remove(toRemove.toArray()); for (Iterator<Object> iter= toAdd.keySet().iterator(); iter.hasNext();) { Object parent= iter.next(); HashSet<Object> children= (HashSet<Object>) toAdd.get(parent); viewer.add(parent, children.toArray()); } for (Iterator<Object> elementsToUpdate= toUpdate.iterator(); elementsToUpdate.hasNext();) { viewer.refresh(elementsToUpdate.next()); } }
protected void insert(Object child, boolean refreshViewer) { Object parent= getParent(child); while (parent != null) { if (insertChild(parent, child)) { if (refreshViewer) fTreeViewer.add(parent, child); } else { if (refreshViewer) fTreeViewer.refresh(parent); return; } child= parent; parent= getParent(child); } if (insertChild(fResult, child)) { if (refreshViewer) fTreeViewer.add(fResult, child); } }
protected void insert(Object child, boolean refreshViewer) { Object parent= getParent(child); while (parent != null) { if (insertChild(parent, child)) { if (refreshViewer) fTreeViewer.add(parent, child); } else { if (refreshViewer) fTreeViewer.refresh(parent); return; } child= parent; parent= getParent(child); } if (insertChild(fResult, child)) { if (refreshViewer) fTreeViewer.add(fResult, child); } }