uk.ac.starlink.ttools.plot2.config
Class SpecifierPanel<V>

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

public abstract class SpecifierPanel<V>
extends Object
implements Specifier<V>

Partial Specifier implementation.

Since:
5 Mar 2013
Author:
Mark Taylor

Constructor Summary
protected SpecifierPanel(boolean isXFill)
          Constructor.
 
Method Summary
 void addActionListener(ActionListener listener)
          Adds a listener which will be informed when the user interacts with the graphical component to cause a (potential) change in the value.
protected abstract  JComponent createComponent()
          Abstract method called lazily during getComponent to obtain the graphical component used by this specifier.
protected  void fireAction()
          Notifies all the registered action listeners of a non-specific event.
protected  ActionListener getActionForwarder()
          Returns a listener which will take ActionEvents and forward them to any listeners registered with this panel.
protected  ChangeListener getChangeForwarder()
          Returns a listener which will take ChangeEvents and forward them to any listeners registered with this panel.
 JComponent getComponent()
          Returns the graphical component that the user can interact with to supply a value.
 boolean isXFill()
          Whether the GUI component should fill the available width of a panel.
 void removeActionListener(ActionListener listener)
          Removes a listener previously added by addActionListener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface uk.ac.starlink.ttools.plot2.config.Specifier
getSpecifiedValue, setSpecifiedValue, submitReport
 

Constructor Detail

SpecifierPanel

protected SpecifierPanel(boolean isXFill)
Constructor.

Parameters:
isXFill - true if the graphical component should expand to fill the available horizontal space
Method Detail

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.



Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.