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 Detail

      • 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 Detail

      • 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.
      • 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