Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.ui.part
Class DrillDownAdapter

    java.lang.Object
      org.eclipse.ui.part.DrillDownAdapter

All Implemented Interfaces:
  ISelectionChangedListener

public class DrillDownAdapter
extends Object
implements ISelectionChangedListener

Implements a simple web style navigation metaphor for a `TreeViewer`. Home, back, and "drill into" functions are supported for the viewer,

To use the `DrillDownAdapter` ..

- Create an instance of `TreeViewer`.
- Create a `DrillDownAdapter` for the viewer.
- Create a container for your viewer with a toolbar or a popup menu. Add actions for "goBack", "goHome", and "goInto" to either one by calling addNavigationActions with the popup menu or toolbar.

If the input for the underlying viewer is changed by something other than the adapter the `reset` method should be called. This will clear the drill stack and update the navigation buttons to reflect the new state of the underlying viewer.

Constructor Summary
`DrillDownAdapter(TreeViewer tree)` Allocates a new DrillDownTreePart.

Method Summary
`void` | `addNavigationActions(IMenuManager manager)` Adds actions for "go back", "go home", and "go into" to a menu manager.
`void` | `addNavigationActions(IToolBarManager toolBar)` Adds actions for "go back", "go home", and "go into" to a tool bar manager.
`boolean` | `canExpand(Object element)` Returns whether expansion is possible for the current selection.
`boolean` | `canGoBack()` Returns whether "go back" is possible for child tree.
`boolean` | `canGoHome()` Returns whether "go home" is possible for child tree.
`boolean` | `canGoInto()` Returns whether "go into" is possible for child tree.
`void` | `goBack()` Reverts the input for the tree back to the state when `goInto` was last called.
`void` | `goHome()` Reverts the input for the tree back to the state when the adapter was created.
`void` | `goInto()` Sets the input for the tree to the current selection.
`void` | `goInto(Object newInput)` Sets the input for the tree to a particular item in the tree.
`void` | `reset()` Resets the drill down adapter.
`void` | `selectionChanged(SelectionChangedEvent event)` Updates the navigation buttons when a selection change occurs in the tree.
`protected void` | `updateNavigationButtons()` Updates the enabled state for each navigation button.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DrillDownAdapter

    public DrillDownAdapter(TreeViewer tree)

  Allocates a new DrillDownTreePart.

Parameters:
  `tree` - the target tree for refocusing

Method Detail

### addNavigationActions

    public void addNavigationActions(IMenuManager manager)

  Adds actions for "go back", "go home", and "go into" to a menu manager.

  Parameters:
    `manager` - is the target manager to update

### addNavigationActions

    public void addNavigationActions(IToolBarManager toolBar)

  Adds actions for "go back", "go home", and "go into" to a tool bar manager.

  Parameters:
    `toolBar` - is the target manager to update

### canExpand

    public boolean canExpand(Object element)

  Returns whether expansion is possible for the current selection. This will only be true if it has children.

  Parameters:
    `element` - the object to test for expansion
  Returns:
    `true` if expansion is possible; otherwise return `false`

  ### canGoBack

      public boolean canGoBack()

    Returns whether "go back" is possible for child tree. This is only possible if the client has performed one or more drilling operations.

    Returns:
      `true` if "go back" is possible; `false` otherwise

  ### canGoHome

      public boolean canGoHome()

    Returns whether "go home" is possible for child tree. This is only possible if the client has performed one or more drilling operations.

    Returns:
      `true` if "go home" is possible; `false` otherwise

  ### canGoInto

      public boolean canGoInto()

    Returns whether "go into" is possible for child tree. This is only possible if the current selection in the client has one item and it has children.

    Returns:
      `true` if "go into" is possible; `false` otherwise

  ### goBack

      public void goBack()

    Reverts the input for the tree back to the state when `goInto` was last called.

    A frame is removed from the drill stack. Then that frame is used to reset the input and expansion state for the child tree.

  ### goHome

      public void goHome()

    Reverts the input for the tree back to the state when the adapter was created.

    All of the frames are removed from the drill stack. Then the oldest frame is used to reset the input and expansion state for the child tree.

  ### goInto

      public void goInto()

    Sets the input for the tree to the current selection.

    The current input and expansion state are saved in a frame and added to the drill stack. Then the input for the tree is changed to be the current selection. The expansion state for the tree is maintained during the operation.

    On return the client may revert back to the previous state by invoking `goBack` or `goHome`.

  ### goInto

      public void goInto(Object newInput)

    Sets the input for the tree to a particular item in the tree.

    The current input and expansion state are saved in a frame and added to the drill stack. Then the input for the tree is changed to be `newInput`. The expansion state for the tree is maintained during the operation.

    On return the client may revert back to the previous state by invoking `goBack` or `goHome`.

    Parameters:
      `newInput` - the new input element

  ### reset

      public void reset()

    Resets the drill down adapter.

    This method is typically called when the input for the underlying view is reset by something other than the adapter. On return the drill stack has been cleared and the navigation buttons reflect the new state of the underlying viewer.

  ### selectionChanged

      public void selectionChanged(SelectionChangedEvent event)

    Updates the navigation buttons when a selection change occurs in the tree.

    Specified by:
      `selectionChanged` in interface `ISelectionChangedListener`
    Parameters:
      `event` - event object describing the change

  ### updateNavigationButtons

      protected void updateNavigationButtons()

    Updates the enabled state for each navigation button.

  Overview | Package | Class | Use | Tree | Deprecated | Index | Help
  | Eclipse Platform Release 3.0
  PREV CLASS NEXT CLASS | FRAMES NO FRAMES
  SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

  Guidelines for using Eclipse APIs.

  Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.