uk.ac.starlink.ast.gui
Class ComponentColourControls

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by uk.ac.starlink.ast.gui.ComponentColourControls
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, PlotControls

public class ComponentColourControls
extends JPanel
implements PlotControls, ChangeListener

Create controls for setting the colour of a component. The actual setting is performed by an object that implements the PlotController interface.

The Color is stored in a ColourStore object that provides persistence and maintains a list of listeners for changes in the colour.

Version:
$Id$
Author:
Peter W. Draper
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JButton colourButton
          The button used to request the colour dialog.
protected  ColourIcon colourIcon
          Colour Icon of colour button, shows the current colour.
protected  JLabel colourLabel
          Label showing the description of the colour that will be changed.
protected  ColourStore colourStore
          ColourStore that provides change notifications and permanent store.
protected  PlotController controller
          The controller of the component that we're controlling.
protected  String description
          Description of the colour that will be changed.
protected  String name
          Short name of these controls (for a tabbed label).
protected  Color originalColour
          The original colour of the component.
protected  String title
          Title for a page of these controls.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ComponentColourControls(PlotController controller, AbstractPlotControlsModel colourStore, String title, String name, String label)
          Create an instance.
 
Method Summary
protected  void chooseColour()
          Choose a colour for the component using a chooser dialog.
 ColourStore getColourStore()
          Get the ColourStore.
 JComponent getControlsComponent()
          Return a reference to the JComponent sub-class that will be displayed (normally a reference to this).
 AbstractPlotControlsModel getControlsModel()
          Return reference to the AbstractPlotControlsModel.
static Class getControlsModelClass()
          Return the class of object that we expect as our model.
 String getControlsName()
          Return a short name for these controls (for the tab).
 String getControlsTitle()
          Return a title for these controls (for the border).
 String getDescription()
          Get the description used in the label.
 PlotController getPlotController()
          Get the controller for the applying the colour changes.
protected  void initUI()
          Place the UI components.
 void matchColour()
          Update the component colour to match the one in store.
 void reset()
          Reset the colour to original.
 void setColourStore(ColourStore colourStore)
          Set the ColourStore used to store the colour.
 void setController(PlotController controller)
          Set the controller of the component to be coloured.
 void setDescription(String title, String name, String label)
          Set the descriptions, title, name and label.
 void stateChanged(ChangeEvent e)
          Listen for ColourStore issuing ChangeEvents.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

controller

protected PlotController controller
The controller of the component that we're controlling.


colourIcon

protected ColourIcon colourIcon
Colour Icon of colour button, shows the current colour.


colourButton

protected JButton colourButton
The button used to request the colour dialog.


colourLabel

protected JLabel colourLabel
Label showing the description of the colour that will be changed.


description

protected String description
Description of the colour that will be changed.


title

protected String title
Title for a page of these controls.


name

protected String name
Short name of these controls (for a tabbed label).


colourStore

protected ColourStore colourStore
ColourStore that provides change notifications and permanent store.


originalColour

protected Color originalColour
The original colour of the component. Kept for resetting. Will be initialised when the PlotController is set.

Constructor Detail

ComponentColourControls

public ComponentColourControls(PlotController controller,
                               AbstractPlotControlsModel colourStore,
                               String title,
                               String name,
                               String label)
                        throws RuntimeException
Create an instance. Requires a PlotController to send change requests to and a short description of the property (this is shown in a label).

Parameters:
controller - a controller for the object that is to be coloured.
colourStore - the storage for the actual Colour.
description - a short description of the property.
Throws:
RuntimeException
Method Detail

initUI

protected void initUI()
Place the UI components.


setController

public void setController(PlotController controller)
Set the controller of the component to be coloured.


setColourStore

public void setColourStore(ColourStore colourStore)
Set the ColourStore used to store the colour.


getColourStore

public ColourStore getColourStore()
Get the ColourStore.


getPlotController

public PlotController getPlotController()
Get the controller for the applying the colour changes.


setDescription

public void setDescription(String title,
                           String name,
                           String label)
Set the descriptions, title, name and label.


getDescription

public String getDescription()
Get the description used in the label.


chooseColour

protected void chooseColour()
Choose a colour for the component using a chooser dialog.


matchColour

public void matchColour()
Update the component colour to match the one in store.


getControlsTitle

public String getControlsTitle()
Return a title for these controls (for the border).

Specified by:
getControlsTitle in interface PlotControls

getControlsName

public String getControlsName()
Return a short name for these controls (for the tab).

Specified by:
getControlsName in interface PlotControls

reset

public void reset()
Reset the colour to original.

Specified by:
reset in interface PlotControls

getControlsComponent

public JComponent getControlsComponent()
Return a reference to the JComponent sub-class that will be displayed (normally a reference to this).

Specified by:
getControlsComponent in interface PlotControls

getControlsModel

public AbstractPlotControlsModel getControlsModel()
Return reference to the AbstractPlotControlsModel. This defines the actual state of the controls and stores the current values.

Specified by:
getControlsModel in interface PlotControls

getControlsModelClass

public static Class getControlsModelClass()
Return the class of object that we expect as our model.


stateChanged

public void stateChanged(ChangeEvent e)
Listen for ColourStore issuing ChangeEvents.

Specified by:
stateChanged in interface ChangeListener


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