diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java | 332 |
1 files changed, 166 insertions, 166 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java index 6eca256f3..3395b071e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/provisional/VirtualTree.java @@ -29,193 +29,193 @@ import org.eclipse.swt.SWT; */ public class VirtualTree extends VirtualItem { - /** - * Lazy virtual tree does not retrieve elements or labels, - * except for the selected elements. - */ - private boolean fLazy; + /** + * Lazy virtual tree does not retrieve elements or labels, + * except for the selected elements. + */ + private boolean fLazy; - private IVirtualItemValidator fValidator; + private IVirtualItemValidator fValidator; - private class SelectedItemValidator implements IVirtualItemValidator { - @Override + private class SelectedItemValidator implements IVirtualItemValidator { + @Override public boolean isItemVisible(VirtualItem item) { - // visible items. For now only mark the selected items as visible. - for (int i = 0; i < fSelection.length; i++) { - VirtualItem selectionItem = fSelection[i]; - while (selectionItem != null) { - if (item.equals(selectionItem)) { - return true; - } - selectionItem = selectionItem.getParent(); - } - } - return false; - } - - @Override + // visible items. For now only mark the selected items as visible. + for (int i = 0; i < fSelection.length; i++) { + VirtualItem selectionItem = fSelection[i]; + while (selectionItem != null) { + if (item.equals(selectionItem)) { + return true; + } + selectionItem = selectionItem.getParent(); + } + } + return false; + } + + @Override public void showItem(VirtualItem item) { - } - } + } + } - /** - * Set of listeners of the virtual tree. - */ + /** + * Set of listeners of the virtual tree. + */ private Set<IVirtualItemListener> fVirtualItemListeners = new HashSet<>(1); - /** - * The currently selected items. This array contains only - * the leaf items which are selected. - */ - private VirtualItem[] fSelection = new VirtualItem[0]; - - /** - * Constructs the virtual tree with the given style and validator. - * - * @param style The style flag. Only SWT.VIRTUAL flag is used. - * @param validator Item validator used to determine item visibility. - */ - public VirtualTree(int style, IVirtualItemValidator validator) { - super(null, new VirtualItem.Index(0)); - fLazy = (style & SWT.VIRTUAL) != 0; - if (fLazy && validator == null) { - fValidator = new SelectedItemValidator(); - } else { - fValidator = validator; - } - clearNeedsLabelUpdate(); - clearNeedsDataUpdate(); - } - - /** - * Disposes the virtual tree. - */ - @Override + /** + * The currently selected items. This array contains only + * the leaf items which are selected. + */ + private VirtualItem[] fSelection = new VirtualItem[0]; + + /** + * Constructs the virtual tree with the given style and validator. + * + * @param style The style flag. Only SWT.VIRTUAL flag is used. + * @param validator Item validator used to determine item visibility. + */ + public VirtualTree(int style, IVirtualItemValidator validator) { + super(null, new VirtualItem.Index(0)); + fLazy = (style & SWT.VIRTUAL) != 0; + if (fLazy && validator == null) { + fValidator = new SelectedItemValidator(); + } else { + fValidator = validator; + } + clearNeedsLabelUpdate(); + clearNeedsDataUpdate(); + } + + /** + * Disposes the virtual tree. + */ + @Override public void dispose() { - super.dispose(); - fVirtualItemListeners.clear(); - } + super.dispose(); + fVirtualItemListeners.clear(); + } - @Override + @Override public void setNeedsCountUpdate() { - super.setNeedsCountUpdate(); - clearNeedsLabelUpdate(); - clearNeedsDataUpdate(); - } + super.setNeedsCountUpdate(); + clearNeedsLabelUpdate(); + clearNeedsDataUpdate(); + } - @Override + @Override public void setNeedsLabelUpdate() { - // no-op - } + // no-op + } - @Override + @Override public void setData(String key, Object data) { - super.setData(key, data); - if (data == null) { - clearNeedsDataUpdate(); - } - } - - /** - * Adds a listener for when virtual items are revealed in the view. - * @param listener Listener to add to list of listeners. - */ - public void addItemListener(IVirtualItemListener listener) { - fVirtualItemListeners.add(listener); - } - - public void removeItemListener(IVirtualItemListener listener) { - fVirtualItemListeners.remove(listener); - } - - public VirtualItem[] getSelection() { - return fSelection; - } - - public void setSelection(VirtualItem[] items) { - fSelection = items; - } - - public void showItem(VirtualItem item) { - if (fValidator != null) { - fValidator.showItem(item); - } - } - - public void fireItemDisposed(VirtualItem item) { + super.setData(key, data); + if (data == null) { + clearNeedsDataUpdate(); + } + } + + /** + * Adds a listener for when virtual items are revealed in the view. + * @param listener Listener to add to list of listeners. + */ + public void addItemListener(IVirtualItemListener listener) { + fVirtualItemListeners.add(listener); + } + + public void removeItemListener(IVirtualItemListener listener) { + fVirtualItemListeners.remove(listener); + } + + public VirtualItem[] getSelection() { + return fSelection; + } + + public void setSelection(VirtualItem[] items) { + fSelection = items; + } + + public void showItem(VirtualItem item) { + if (fValidator != null) { + fValidator.showItem(item); + } + } + + public void fireItemDisposed(VirtualItem item) { for (IVirtualItemListener listener : fVirtualItemListeners) { listener.disposed(item); - } - } + } + } - public void fireItemRevealed(VirtualItem item) { + public void fireItemRevealed(VirtualItem item) { for (IVirtualItemListener listener : fVirtualItemListeners) { listener.revealed(item); - } - } + } + } - @Override + @Override public void setData(Object data) { - super.setData(data); - // The root item always has children as long as the input is non-null, - // so that it should be expanded. - setHasItems(data != null); - } + super.setData(data); + // The root item always has children as long as the input is non-null, + // so that it should be expanded. + setHasItems(data != null); + } - @Override + @Override public void setHasItems(boolean hasChildren) { - super.setHasItems(hasChildren); - // The root item is always expanded as long as it has children. - if (hasChildren) { - setExpanded(true); - } - } - - /** - * Returns whether the given item is considered visible by the tree as - * determined by its virtual item validator. - * - * @param item Item to check. - * @return true if items is vislble. - * @see IVirtualItemValidator - */ - public boolean isItemVisible(VirtualItem item) { - if (fLazy) { - return fValidator.isItemVisible(item); - } - return true; - } - - /** - * Validates the entire tree. - */ - public void validate() { - validate(VirtualTree.this); - } - - /** - * Validates the item and its children, identifying children which were - * revealed and need to be updated. - * - * @param item The item which to validate. - */ - public void validate(VirtualItem item) { - if (item.needsDataUpdate()) { - if (isItemVisible(item)) { - fireItemRevealed(item); - } - } else if (item.getData() != null) { - if ( item.needsLabelUpdate() || (item.needsCountUpdate() && item.hasItems() && item.getExpanded()) ) { - if (isItemVisible(item)) { - fireItemRevealed(item); - } - } - - if (item.getData() != null && item.getItemCount() > 0 && item.getExpanded()) { - for (int i = 0; i < item.getItemCount(); i++) { - validate(item.getItem(new Index(i))); - } - } - } - } + super.setHasItems(hasChildren); + // The root item is always expanded as long as it has children. + if (hasChildren) { + setExpanded(true); + } + } + + /** + * Returns whether the given item is considered visible by the tree as + * determined by its virtual item validator. + * + * @param item Item to check. + * @return true if items is vislble. + * @see IVirtualItemValidator + */ + public boolean isItemVisible(VirtualItem item) { + if (fLazy) { + return fValidator.isItemVisible(item); + } + return true; + } + + /** + * Validates the entire tree. + */ + public void validate() { + validate(VirtualTree.this); + } + + /** + * Validates the item and its children, identifying children which were + * revealed and need to be updated. + * + * @param item The item which to validate. + */ + public void validate(VirtualItem item) { + if (item.needsDataUpdate()) { + if (isItemVisible(item)) { + fireItemRevealed(item); + } + } else if (item.getData() != null) { + if ( item.needsLabelUpdate() || (item.needsCountUpdate() && item.hasItems() && item.getExpanded()) ) { + if (isItemVisible(item)) { + fireItemRevealed(item); + } + } + + if (item.getData() != null && item.getItemCount() > 0 && item.getExpanded()) { + for (int i = 0; i < item.getItemCount(); i++) { + validate(item.getItem(new Index(i))); + } + } + } + } } |