Class DiffTreeViewer

All Implemented Interfaces:
IInputProvider, IInputSelectionProvider, IPostSelectionProvider, ISelectionProvider
Direct Known Subclasses:
StructureDiffViewer

public class DiffTreeViewer extends TreeViewer
A tree viewer that works on objects implementing the IDiffContainer and IDiffElement interfaces.

This class may be instantiated; it is not intended to be subclassed outside of this package.

See Also:
Restriction:
This class is not intended to be subclassed by clients.
  • Constructor Details

    • DiffTreeViewer

      public DiffTreeViewer(Tree tree, CompareConfiguration configuration)
      Creates a new viewer for the given SWT tree control with the specified configuration.
      Parameters:
      tree - the tree control
      configuration - the configuration for this viewer
    • DiffTreeViewer

      public DiffTreeViewer(Composite parent, CompareConfiguration configuration)
      Creates a new viewer under the given SWT parent and with the specified configuration.
      Parameters:
      parent - the SWT control under which to create the viewer
      configuration - the configuration for this viewer
  • Method Details

    • getTitle

      public String getTitle()
      Returns the viewer's name.
      Returns:
      the viewer's name
    • getBundle

      protected ResourceBundle getBundle()
      Returns the resource bundle.
      Returns:
      the viewer's resource bundle
    • getCompareConfiguration

      public CompareConfiguration getCompareConfiguration()
      Returns the compare configuration of this viewer.
      Returns:
      the compare configuration of this viewer
    • handleDispose

      protected void handleDispose(DisposeEvent event)
      Called on the viewer disposal. Unregisters from the compare configuration. Clients may extend if they have to do additional cleanup.
      Overrides:
      handleDispose in class ColumnViewer
      Parameters:
      event - dispose event that triggered call to this method
    • propertyChange

      protected void propertyChange(PropertyChangeEvent event)
      Tracks property changes of the configuration object. Clients may extend to track their own property changes. In this case they must call the inherited method.
      Parameters:
      event - property change event that triggered call to this method
    • inputChanged

      protected void inputChanged(Object in, Object oldInput)
      Description copied from class: Viewer
      Internal hook method called when the input to this viewer is initially set or subsequently changed.

      The default implementation does nothing. Subclassers may override this method to do something when a viewer's input is set. A typical use is populate the viewer.

      Overrides:
      inputChanged in class AbstractTreeViewer
      Parameters:
      in - the new input of this viewer, or null if none
      oldInput - the old input element or null if there was previously no input
    • initialSelection

      protected void initialSelection()
      This hook method is called from within inputChanged after a new input has been set but before any controls are updated. This default implementation calls navigate(true) to select and expand the first leaf node. Clients can override this method and are free to decide whether they want to call the inherited method.
      Since:
      2.0
    • internalExpandToLevel

      protected void internalExpandToLevel(Widget node, int level)
      Overridden to avoid expanding DiffNodes that shouldn't expand.
      Overrides:
      internalExpandToLevel in class AbstractTreeViewer
      Parameters:
      node - the node to expand
      level - non-negative level, or ALL_LEVELS to collapse all levels of the tree
    • dontExpand

      protected boolean dontExpand(Object o)
      This hook method is called from within internalExpandToLevel to control whether a given model node should be expanded or not. This default implementation checks whether the object is a DiffNode and calls dontExpand() on it. Clients can override this method and are free to decide whether they want to call the inherited method.
      Parameters:
      o - the model object to be expanded
      Returns:
      false if a node should be expanded, true to prevent expanding
      Since:
      2.0
    • createToolItems

      protected void createToolItems(ToolBarManager toolbarManager)
      This factory method is called after the viewer's controls have been created. It installs four actions in the given ToolBarManager. Two actions allow for copying one side of a DiffNode to the other side. Two other actions are for navigating from one node to the next (previous).

      Clients can override this method and are free to decide whether they want to call the inherited method.

      Parameters:
      toolbarManager - the toolbar manager for which to add the actions
    • fillContextMenu

      protected void fillContextMenu(IMenuManager manager)
      This method is called to add actions to the viewer's context menu. It installs actions for expanding tree nodes, copying one side of a DiffNode to the other side. Clients can override this method and are free to decide whether they want to call the inherited method.
      Parameters:
      manager - the menu manager for which to add the actions
    • expandSelection

      protected void expandSelection()
      Expands to infinity all items in the selection.
      Since:
      2.0
    • copySelected

      protected void copySelected(boolean leftToRight)
      Copies one side of all DiffNodes in the current selection to the other side. Called from the (internal) actions for copying the sides of a DiffNode. Clients may override.
      Parameters:
      leftToRight - if true the left side is copied to the right side. If false the right side is copied to the left side
    • copyOne

      protected void copyOne(ICompareInput node, boolean leftToRight)
      Called to copy one side of the given node to the other. This default implementation delegates the call to ICompareInput.copy(...). Clients may override.
      Parameters:
      node - the node to copy
      leftToRight - if true the left side is copied to the right side. If false the right side is copied to the left side