Class TwoPaneElementSelector

All Implemented Interfaces:
IShellProvider

public class TwoPaneElementSelector extends AbstractElementListSelectionDialog
A list selection dialog with two panes. Duplicated entries will be folded together and are displayed in the lower pane (qualifier).
Since:
2.0
  • Constructor Details

    • TwoPaneElementSelector

      public TwoPaneElementSelector(Shell parent, ILabelProvider elementRenderer, ILabelProvider qualifierRenderer)
      Creates the two pane element selector.
      Parameters:
      parent - the parent shell.
      elementRenderer - the element renderer.
      qualifierRenderer - the qualifier renderer.
  • Method Details

    • setUpperListLabel

      public void setUpperListLabel(String label)
      Sets the upper list label. If the label is null (default), no label is created.
      Parameters:
      label - the label to set or null for no label.
    • setLowerListLabel

      public void setLowerListLabel(String label)
      Sets the lower list label.
      Parameters:
      label - String or null. If the label is null (default), no label is created.
    • setLowerListComparator

      public void setLowerListComparator(Comparator comparator)
      Sets the comparator used to sort the list in the lower pane.

      Note: the comparator might want to honor AbstractElementListSelectionDialog.isCaseIgnored().

      Parameters:
      comparator - a Comparator or null if String's comparison methods should be used
      Since:
      3.5
    • setElements

      public void setElements(Object[] elements)
      Sets the elements to be displayed.
      Parameters:
      elements - the elements to be displayed.
    • createDialogArea

      public Control createDialogArea(Composite parent)
      Description copied from class: Dialog
      Creates and returns the contents of the upper part of this dialog (above the button bar).

      The Dialog implementation of this framework method creates and returns a new Composite with standard margins and spacing.

      The returned control's layout data must be an instance of GridData. This method must not modify the parent's layout.

      Subclasses must override this method but may call super as in the following example:

       Composite composite = (Composite) super.createDialogArea(parent);
       //add controls to composite as necessary
       return composite;
       
      Overrides:
      createDialogArea in class Dialog
      Parameters:
      parent - the parent composite to contain the dialog area
      Returns:
      the dialog area control
    • createLabel

      protected Label createLabel(Composite parent, String name)
      Creates a label if name was not null.
      Parameters:
      parent - the parent composite.
      name - the name of the label.
      Returns:
      returns a label if a name was given, null otherwise.
    • createLowerList

      protected Table createLowerList(Composite parent)
      Creates the list widget and sets layout data.
      Parameters:
      parent - the parent composite.
      Returns:
      returns the list table widget.
    • computeResult

      protected void computeResult()
      Description copied from class: SelectionStatusDialog
      Compute the result and return it.
      Specified by:
      computeResult in class SelectionStatusDialog
      See Also:
    • handleDefaultSelected

      protected void handleDefaultSelected()
      Description copied from class: AbstractElementListSelectionDialog
      Handles default selection (double click). By default, the OK button is pressed.
      Overrides:
      handleDefaultSelected in class AbstractElementListSelectionDialog
      See Also:
    • handleSelectionChanged

      protected void handleSelectionChanged()
      Description copied from class: AbstractElementListSelectionDialog
      Handles a selection changed event. By default, the current selection is validated.
      Overrides:
      handleSelectionChanged in class AbstractElementListSelectionDialog
      See Also:
    • setLowerSelectedElement

      protected void setLowerSelectedElement(Object element)
      Selects an element in the lower pane.
      Parameters:
      element - the element to select
    • getLowerSelectedElement

      protected Object getLowerSelectedElement()
      Returns the selected element from the lower pane.
      Returns:
      Object
    • handleEmptyList

      protected void handleEmptyList()
      Description copied from class: AbstractElementListSelectionDialog
      Handles empty list by disabling widgets.
      Overrides:
      handleEmptyList in class AbstractElementListSelectionDialog
    • validateCurrentSelection

      protected boolean validateCurrentSelection()
      Description copied from class: AbstractElementListSelectionDialog
      Validates the current selection and updates the status line accordingly.
      Overrides:
      validateCurrentSelection in class AbstractElementListSelectionDialog
      Returns:
      boolean true if the current selection is valid.
      Since:
      3.5
      See Also: