capint
1/12/2016 - 10:06 PM

Eclipse >> JFace >> Content Provider

Eclipse >> JFace >> Content Provider

private AbstractData _dataInput;
public Object[] getChildren(Object element_p) {
  return _dataInput.getChildren(element_p);
}
public Object[] getElements(Object element_p) {
  return _dataInput.getElements();
}
public Object getParent(Object element_p) {
  return _dataInput.getParent(element_p);
}
public boolean hasChildren(Object element_p) {
  return getChildren(element_p).length > 0;
}
public void inputChanged(Viewer viewer_p, Object oldInput_p, Object newInput_p) {
  if (null == _viewer) {
    //*** Tree viewer is just created
    if (newInput_p instanceof AbstractData) {
      _viewer = (AbstractTreeViewer) viewer_p;
      _dataInput = (AbstractData) newInput_p;
    }
  } else {
    //*** Handle add / remove operations
    //*** Handle Tree Mode view change.
    if (shouldRefresh) {
      _viewer.refresh();
      if (addedContent && isExpandingNewContent()){
        for (Object o : (Object[]) newInput_p){
          _viewer.expandToLevel(o, 0);
        }
      }
    }
  }
}
Object[]	getChildren(Object parentElement)
  Returns the child elements of the given parent element.
Object[]	getElements(Object inputElement)
  Returns the elements to display in the viewer when its input is set to the given element.
Object	getParent(Object element)
  Returns the parent for the given element, or null indicating that the parent can't be computed.
boolean	hasChildren(Object element)
  Returns whether the given element has children.
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
  Notifies this content provider that the given viewer's input has been switched to a different element.
  A typical use for this method is registering the content provider as a listener to changes on the new input 
  (using model-specific means) (content provider should implement kind of listener), and deregistering the viewer from the old input. 
  In response to these change notifications, the content provider should update the viewer (see the add, remove, update and refresh 
  methods on the viewers).