Class SpecifierPanel<V>

java.lang.Object
uk.ac.starlink.ttools.plot2.config.SpecifierPanel<V>
All Implemented Interfaces:
Specifier<V>
Direct Known Subclasses:
BinSizer.BinSizerSpecifier, ChooserColorSpecifier, ComboBoxSpecifier, MultiSpecifierPanel, SliderSpecifier, TextFieldSpecifier, ToggleSpecifier, UnitRangeSpecifier

public abstract class SpecifierPanel<V> extends Object implements Specifier<V>
Partial Specifier implementation.
Since:
5 Mar 2013
Author:
Mark Taylor
  • Constructor Details

    • SpecifierPanel

      protected SpecifierPanel(boolean isXFill)
      Constructor.
      Parameters:
      isXFill - true if the graphical component should expand to fill the available horizontal space
  • Method Details

    • isXFill

      public boolean isXFill()
      Description copied from interface: Specifier
      Whether the GUI component should fill the available width of a panel. This rendering hint should on the whole this should be true for expandable components, and false for fixed size components. Components should have a fixed vertical size in any case.
      Specified by:
      isXFill in interface Specifier<V>
      Returns:
      true for horizontally expandable components
    • createComponent

      protected abstract JComponent createComponent()
      Abstract method called lazily during getComponent to obtain the graphical component used by this specifier. It will be called a maximum of once. It is not necessary that the component actually be created in this method, for instance it may be created at construction time if that's more convenient.
      Returns:
      graphical component
    • getComponent

      public JComponent getComponent()
      Description copied from interface: Specifier
      Returns the graphical component that the user can interact with to supply a value. It should be line-like (not tall).

      The returned component should preferably honour the JComponent setEnabled/isEnabled methods.

      Specified by:
      getComponent in interface Specifier<V>
      Returns:
      specifier component
    • addActionListener

      public void addActionListener(ActionListener listener)
      Description copied from interface: Specifier
      Adds a listener which will be informed when the user interacts with the graphical component to cause a (potential) change in the value.
      Specified by:
      addActionListener in interface Specifier<V>
      Parameters:
      listener - listener to add
    • removeActionListener

      public void removeActionListener(ActionListener listener)
      Description copied from interface: Specifier
      Removes a listener previously added by addActionListener.
      Specified by:
      removeActionListener in interface Specifier<V>
      Parameters:
      listener - listener to remove
    • getActionForwarder

      protected ActionListener getActionForwarder()
      Returns a listener which will take ActionEvents and forward them to any listeners registered with this panel.

      In general any input component which forms part of this panel's GUI should have as a listener the result of getActionForwarder or getChangeForwarder, so that changes in their state are propagated to listeners of this specifier.

      Returns:
      action forwarder
    • getChangeForwarder

      protected ChangeListener getChangeForwarder()
      Returns a listener which will take ChangeEvents and forward them to any listeners registered with this panel.

      In general any input component which forms part of this panel's GUI should have as a listener the result of getActionForwarder or getChangeForwarder, so that changes in their state are propagated to listeners of this specifier.

      Returns:
      change forwarder
    • fireAction

      protected void fireAction()
      Notifies all the registered action listeners of a non-specific event.