org.eclipse.net4j.util.ui.views
Class ContainerItemProvider<CONTAINER extends IContainer<Object>>

java.lang.Object
  extended by org.eclipse.net4j.util.ui.StructuredContentProvider<INPUT>
      extended by org.eclipse.net4j.util.ui.views.ItemProvider<CONTAINER>
          extended by org.eclipse.net4j.util.ui.views.ContainerItemProvider<CONTAINER>
All Implemented Interfaces:
EventListener, IBaseLabelProvider, IColorProvider, IContentProvider, IFontProvider, ILabelProvider, IStructuredContentProvider, ITreeContentProvider, IListener
Direct Known Subclasses:
ContainerPathItemProvider

public class ContainerItemProvider<CONTAINER extends IContainer<Object>>
extends ItemProvider<CONTAINER>

Author:
Eike Stepper

Nested Class Summary
 class ContainerItemProvider.AbstractContainerNode
           
 class ContainerItemProvider.AbstractNode
           
 class ContainerItemProvider.ContainerNode
           
 class ContainerItemProvider.ErrorElement
           
 class ContainerItemProvider.LazyElement
           
 class ContainerItemProvider.LeafNode
           
static interface ContainerItemProvider.Node
           
 
Field Summary
 
Fields inherited from class org.eclipse.net4j.util.ui.views.ItemProvider
NO_ELEMENTS
 
Constructor Summary
ContainerItemProvider()
           
ContainerItemProvider(IElementFilter rootElementFilter)
           
 
Method Summary
protected  void addNode(Object element, ContainerItemProvider.Node node)
           
protected  void connectInput(CONTAINER input)
           
protected  ContainerItemProvider.ContainerNode createContaineNode(ContainerItemProvider.Node parent, Object element)
           
protected  ContainerItemProvider.LeafNode createLeafNode(ContainerItemProvider.Node parent, Object element)
           
protected  ContainerItemProvider.Node createNode(ContainerItemProvider.Node parent, Object element)
           
protected  void disconnectInput(CONTAINER input)
           
 void dispose()
          Disposes of this content provider.
protected  void elementAdded(Object element, Object parent)
           
protected  void elementRemoved(Object element, Object parent)
           
protected  void executeRunnable(Runnable runnable)
           
protected  void fillContextMenu(IMenuManager manager, ITreeSelection selection)
           
protected  boolean filterRootElement(Object element)
           
 Object[] getChildren(Object element)
          Returns the child elements of the given parent element.
protected  String getErrorText(IContainer<Object> container)
           
 Font getFont(Object obj)
          Provides a font for the given element.
 Color getForeground(Object obj)
          Provides a foreground color for the given element.
 Image getImage(Object obj)
          Returns the image for the label of the given element.
protected  ContainerItemProvider.Node getNode(Object element)
           
protected  Map<Object,ContainerItemProvider.Node> getNodes()
           
 Object getParent(Object element)
          Returns the parent for the given element, or null indicating that the parent can't be computed.
protected  ContainerItemProvider.Node getRoot()
           
 IElementFilter getRootElementFilter()
           
protected  String getSlowText(IContainer<Object> container)
           
protected  void handleInactiveElement(Iterator<ContainerItemProvider.Node> it, ContainerItemProvider.Node child)
           
 boolean hasChildren(Object element)
          Returns whether the given element has children.
protected  boolean isSlow(IContainer<Object> container)
           
protected  ContainerItemProvider.Node removeNode(Object element)
           
 
Methods inherited from class org.eclipse.net4j.util.ui.views.ItemProvider
addListener, fireLabelProviderChanged, fireLabelProviderChanged, fireLabelProviderChanged, getBackground, getElements, getListeners, getText, isLabelProperty, removeListener
 
Methods inherited from class org.eclipse.net4j.util.ui.StructuredContentProvider
getDisplay, getInput, getItalicFont, getViewer, inputChanged, notifyEvent, refreshElement, refreshSynced, refreshViewer, revealElement, selectElement, updateLabels
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.jface.viewers.IContentProvider
inputChanged
 

Constructor Detail

ContainerItemProvider

public ContainerItemProvider()

ContainerItemProvider

public ContainerItemProvider(IElementFilter rootElementFilter)
Method Detail

getRootElementFilter

public IElementFilter getRootElementFilter()

hasChildren

public boolean hasChildren(Object element)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns whether the given element has children.

Intended as an optimization for when the viewer does not need the actual children. Clients may be able to implement this more efficiently than getChildren.

Specified by:
hasChildren in interface ITreeContentProvider
Overrides:
hasChildren in class ItemProvider<CONTAINER extends IContainer<Object>>
Parameters:
element - the element
Returns:
true if the given element has children, and false if it has no children

getChildren

public Object[] getChildren(Object element)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns the child elements of the given parent element.

The difference between this method and IStructuredContentProvider.getElements is that getElements is called to obtain the tree viewer's root elements, whereas getChildren is used to obtain the children of a given parent element in the tree (including a root).

The result is not modified by the viewer.

Parameters:
element - the parent element
Returns:
an array of child elements

getParent

public Object getParent(Object element)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns the parent for the given element, or null indicating that the parent can't be computed. In this case the tree-structured viewer can't expand a given node correctly if requested.

Parameters:
element - the element
Returns:
the parent element, or null if it has none or if the parent cannot be computed

dispose

public void dispose()
Description copied from interface: org.eclipse.jface.viewers.IContentProvider
Disposes of this content provider. This is called by the viewer when it is disposed.

The viewer should not be updated during this call, as it is in the process of being disposed.

Specified by:
dispose in interface IBaseLabelProvider
Specified by:
dispose in interface IContentProvider
Overrides:
dispose in class StructuredContentProvider<CONTAINER extends IContainer<Object>>

connectInput

protected void connectInput(CONTAINER input)
Overrides:
connectInput in class StructuredContentProvider<CONTAINER extends IContainer<Object>>

disconnectInput

protected void disconnectInput(CONTAINER input)
Overrides:
disconnectInput in class StructuredContentProvider<CONTAINER extends IContainer<Object>>

handleInactiveElement

protected void handleInactiveElement(Iterator<ContainerItemProvider.Node> it,
                                     ContainerItemProvider.Node child)
Since:
2.0

elementAdded

protected void elementAdded(Object element,
                            Object parent)

elementRemoved

protected void elementRemoved(Object element,
                              Object parent)

getRoot

protected ContainerItemProvider.Node getRoot()

getNodes

protected Map<Object,ContainerItemProvider.Node> getNodes()

getNode

protected ContainerItemProvider.Node getNode(Object element)

createNode

protected ContainerItemProvider.Node createNode(ContainerItemProvider.Node parent,
                                                Object element)

createLeafNode

protected ContainerItemProvider.LeafNode createLeafNode(ContainerItemProvider.Node parent,
                                                        Object element)

createContaineNode

protected ContainerItemProvider.ContainerNode createContaineNode(ContainerItemProvider.Node parent,
                                                                 Object element)

addNode

protected void addNode(Object element,
                       ContainerItemProvider.Node node)

removeNode

protected ContainerItemProvider.Node removeNode(Object element)

filterRootElement

protected boolean filterRootElement(Object element)

executeRunnable

protected void executeRunnable(Runnable runnable)
Since:
3.1

isSlow

protected boolean isSlow(IContainer<Object> container)
Since:
3.1

getSlowText

protected String getSlowText(IContainer<Object> container)
Since:
3.1

getErrorText

protected String getErrorText(IContainer<Object> container)
Since:
3.1

fillContextMenu

protected void fillContextMenu(IMenuManager manager,
                               ITreeSelection selection)
Overrides:
fillContextMenu in class ItemProvider<CONTAINER extends IContainer<Object>>

getFont

public Font getFont(Object obj)
Description copied from interface: org.eclipse.jface.viewers.IFontProvider
Provides a font for the given element.

Specified by:
getFont in interface IFontProvider
Overrides:
getFont in class ItemProvider<CONTAINER extends IContainer<Object>>
Parameters:
obj - the element
Returns:
the font for the element, or null to use the default font

getForeground

public Color getForeground(Object obj)
Description copied from interface: org.eclipse.jface.viewers.IColorProvider
Provides a foreground color for the given element.

Specified by:
getForeground in interface IColorProvider
Overrides:
getForeground in class ItemProvider<CONTAINER extends IContainer<Object>>
Parameters:
obj - the element
Returns:
the foreground color for the element, or null to use the default foreground color

getImage

public Image getImage(Object obj)
Description copied from interface: org.eclipse.jface.viewers.ILabelProvider
Returns the image for the label of the given element. The image is owned by the label provider and must not be disposed directly. Instead, dispose the label provider when no longer needed.

Specified by:
getImage in interface ILabelProvider
Overrides:
getImage in class ItemProvider<CONTAINER extends IContainer<Object>>
Parameters:
obj - the element for which to provide the label image
Returns:
the image used to label the element, or null if there is no image for the given object


Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.