# Class StyleEditor

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
uk.ac.starlink.topcat.plot.StyleEditor

All Implemented Interfaces:
  `ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener`

Direct Known Subclasses:
  `BarStyleEditor, DensityStyleEditor, LinesStyleEditor, MarkStyleEditor`

public abstract class StyleEditor extends JPanel implements ActionListener, ChangeListener
Graphical component which provides a GUI for editing the characteristics of a `Style` object. This is an abstract superclass; a specialised implementation will be required for each `Style` implementation. Since Style objects are usually immutable, this doesn't (necessarily) edit a single style object; instead you configure it with an existing style using the `setState(Style, String, boolean)` method and later use the `getStyle()` method and others to obtain the new style which is a result of the editing.

Since:
  10 Jan 2005
Author:
  Mark Taylor
See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from class JPanel

`JPanel.AccessibleJPanel`

### Nested classes/interfaces inherited from class JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

### Fields inherited from class JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

## Constructor Summary

Constructors
Constructor
Description
`StyleEditor()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`actionPerformed(ActionEvent evt)`
Invoked every time the style described by the current state of this component changes.
`void`
`addActionListener(ActionListener listener)`
Adds an action listener.
`void`
`cancelChanges()`
Undoes any changes done since `setState(Style, String, boolean)` was called.
`abstract String`
`getHelpID()`
Returns the help ID associated with this editor.
`boolean`
`getHideLegend()`
Returns whether the Hide Legend check box is currently selected.
`String`
`getLabel()`
Returns the label currently entered in this component.
`Icon`
`getLegendIcon()`
Returns the icon to be used for the display legend of this editor.
`SetId`
`getSetId()`
Returns the set identifier for the style which this editor is currently editing.
`abstract uk.ac.starlink.ttools.plot.Style`
`getStyle()`
Returns a style object derived from the current state of this component.
`protected void`
`init()`
Performs initialisation after construction but before the first display of this component.
`protected void`
`refreshState()`
Ensures that all the visual components of this editor match its internal state.
`void`
`removeActionListener(ActionListener listener)`
Removes an action listener which was previously added.
`void`
`setSetId(SetId id)`
Sets the set identifier for the style which this editor is currently editing.
`void`
`setState(uk.ac.starlink.ttools.plot.Style style, String label, boolean hideLegend)`
Sets the state of this component ready for editing.
`abstract void`
`setStyle(uk.ac.starlink.ttools.plot.Style style)`
Sets the style.
`void`
`setVisible(boolean visible)`
`void`
`stateChanged(ChangeEvent evt)`
Invoked every time the style described by the current state of this component changes.

### Methods inherited from class JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, unregisterKeyboardAction, update`

### Methods inherited from class 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, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### StyleEditor

public StyleEditor()
Constructor.

## Method Details

### setVisible

public void setVisible(boolean visible)

Overrides:
  `setVisible` in class `JComponent`

### init

protected void init()
Performs initialisation after construction but before the first display of this component.

### setState

public void setState(uk.ac.starlink.ttools.plot.Style style, String label, boolean hideLegend)
Sets the state of this component ready for editing.

Parameters:
  `style` - style
  `label` - textual label to use in legends annotating the style being edited
  `hideLegend` - whether this style is to be excluded from plot legends

### setStyle

public abstract void setStyle(uk.ac.starlink.ttools.plot.Style style)
Sets the style. Implementations should configure their visual state so that it matches the characteristics of the given style.

Parameters:
  `style` - current style

### getStyle

public abstract uk.ac.starlink.ttools.plot.Style getStyle()
Returns a style object derived from the current state of this component.

Returns:
  current (edited) style

### getHelpID

public abstract String getHelpID()
Returns the help ID associated with this editor.

Returns:
  ID within TOPCAT HelpSet

### getLabel

public String getLabel()
Returns the label currently entered in this component.

Returns:
  label

### getHideLegend

public boolean getHideLegend()
Returns whether the Hide Legend check box is currently selected.

Returns:
  true iff legend will be hidden for this style

### setSetId

public void setSetId(SetId id)
Sets the set identifier for the style which this editor is currently editing.

Parameters:
  `id` - set identifier

### getSetId

public SetId getSetId()
Returns the set identifier for the style which this editor is currently editing.

Returns:
  set identifier

### cancelChanges

public void cancelChanges()
Undoes any changes done since `setState(Style, String, boolean)` was called.

### addActionListener

public void addActionListener(ActionListener listener)
Adds an action listener. It will be notified every time something the state described by this component changes.

Parameters:
  `listener` - listener to add

### removeActionListener

public void removeActionListener(ActionListener listener)
Removes an action listener which was previously added.

Parameters:
  `listener` - listener to remove
See Also:
  - `addActionListener(ActionListener)`

### actionPerformed

public void actionPerformed(ActionEvent evt)
Invoked every time the style described by the current state of this component changes.

Specified by:
  `actionPerformed` in interface `ActionListener`

### stateChanged

public void stateChanged(ChangeEvent evt)
Invoked every time the style described by the current state of this component changes.

Specified by:
  `stateChanged` in interface `ChangeListener`

### refreshState

protected void refreshState()
Ensures that all the visual components of this editor match its internal state.

### getLegendIcon

public Icon getLegendIcon()
Returns the icon to be used for the display legend of this editor.

Returns:
  legend icon