# Class LinesWindow

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
uk.ac.starlink.topcat.AuxWindow
uk.ac.starlink.topcat.plot.GraphicsWindow
uk.ac.starlink.topcat.plot.LinesWindow

All Implemented Interfaces:
  `ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants, TopcatListener`

public class LinesWindow extends GraphicsWindow implements TopcatListener
GraphicsWindow which draws a stack of line graphs.

Since:
  3 Mar 2006
Author:
  Mark Taylor
See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`class`
`LinesWindow.RescaleAction`
Action for performing rescaling actions.

### Nested classes/interfaces inherited from class GraphicsWindow

`GraphicsWindow.ExportAction, GraphicsWindow.ReplotListener`

### Nested classes/interfaces inherited from class JFrame

`JFrame.AccessibleJFrame`

### Nested classes/interfaces inherited from class Frame

`Frame.AccessibleAWTFrame`

### Nested classes/interfaces inherited from class Window

`Window.AccessibleAWTWindow, Window.Type`

### 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 JFrame

`accessibleContext, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class Frame

`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

### Fields inherited from class Component

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface ImageObserver

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

### Fields inherited from interface WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

## Constructor Summary

Constructors
Constructor
Description
`LinesWindow(Component parent)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`uk.ac.starlink.ttools.plot.Range[]`
`calculateRanges(uk.ac.starlink.ttools.plot.PlotData data, uk.ac.starlink.ttools.plot.PlotState state)`
Returns a 1-element array giving only the X axis range.
`protected uk.ac.starlink.ttools.plot.PlotState`
`createPlotState()`
Constructs a new PlotState.
`protected PointSelector`
`createPointSelector()`
Returns a new PointSelector instance to be used for selecting points to be plotted.
`protected StyleEditor`
`createStyleEditor()`
Creates a style editor suitable for this window.
`protected void`
`doReplot(uk.ac.starlink.ttools.plot.PlotState state)`
Performs an actual plot.
`uk.ac.starlink.ttools.plot.StyleSet`
`getDefaultStyles(int npoint)`
Returns a StyleSet which can supply markers.
`protected JComponent`
`getPlotPanel()`
Returns the component containing the graphics output of this window.
`uk.ac.starlink.ttools.plot.PlotState`
`getPlotState()`
Returns an object which characterises the choices the user has made in the GUI to indicate the plot that s/he wants to see.
`MutableStyleSet`
`getStyles()`
Returns a style set suitable for use with a new PointSelector.
`protected boolean`
`isLegendInteresting(uk.ac.starlink.ttools.plot.PlotState state)`
Indicates whether the legend is worth showing for a given plot state.
`void`
`modelChanged(TopcatEvent evt)`
Invoked when the model has changed in some way.
`void`
`setStyles(uk.ac.starlink.ttools.plot.StyleSet styles)`
Sets the style set to use for this window.

### Methods inherited from class GraphicsWindow

`addExtraAxes, addNewSubsets, createErrorModeMenu, createErrorModeModels, createErrorRendererMenu, createMarkerStyleMenu, dispose, fixDefaultErrorRenderers, getAuxAxisCount, getAxisEditAction, getAxisWindow, getColumnIndex, getDataRanges, getErrorModeModels, getExportMenu, getExtrasPanel, getFlipModels, getGridModel, getLegendModel, getLogModels, getMainRangeCount, getPadRatio, getPlot, getPoints, getPointSelectors, getPointSelectorToolBar, getReplotAction, getReplotListener, getRescaleAction, getStandardMarkStyleSets, getStatusBox, getViewRanges, getVisibleAuxAxisCount, init, replot, setGuidePointCount, setMainTable, setPadRatio, setVisible`

### Methods inherited from class AuxWindow

`addHelp, beep, confirm, createImportTableAction, createSaveTableAction, getBodyPanel, getControlPanel, getHelpMenu, getIconImage, getMainArea, getSponsorLogos, getToolBar, getWindowMenu, makeTitledBorder, makeVisible, placeProgressBar, positionAfter, recursiveSetEnabled, setBusy, setCloseIsExit, setMainHeading`

### Methods inherited from class JFrame

`addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

### Methods inherited from class Frame

`addNotify, getCursorType, getExtendedState, getFrames, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

### Methods inherited from class Window

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, show, toBack, toFront`

### Methods inherited from class Container

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class Object

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

### Methods inherited from interface MenuContainer

`getFont, postEvent`

## Constructor Details

### LinesWindow

public LinesWindow(Component parent)
Constructor.

Parameters:
  `parent` - parent component

## Method Details

### getPlotPanel

protected JComponent getPlotPanel()
Description copied from class: `GraphicsWindow`
Returns the component containing the graphics output of this window. This is the component which is exported or printed etc alongside the legend which is managed by GraphicsWindow. It should therefore contain only the output data, not any user interface decoration.

Specified by:
  `getPlotPanel` in class `GraphicsWindow`
Returns:
  plot container

### doReplot

protected void doReplot(uk.ac.starlink.ttools.plot.PlotState state)
Description copied from class: `GraphicsWindow`
Performs an actual plot.

Overrides:
  `doReplot` in class `GraphicsWindow`
Parameters:
  `state` - plot state determining details of plot configuration

### createPlotState

protected uk.ac.starlink.ttools.plot.PlotState createPlotState()
Description copied from class: `GraphicsWindow`
Constructs a new PlotState. This is called by `GraphicsWindow.getPlotState()` prior to the PlotState configuration done there. Thus if a subclass wants to provide and configure a particular state (for instance one of a specialised subclass of PlotState) it can override this method to do so. The default implementation just invokes `new PlotState()`.

Overrides:
  `createPlotState` in class `GraphicsWindow`
Returns:
  returns a new PlotState object ready for generic configuration

### getPlotState

public uk.ac.starlink.ttools.plot.PlotState getPlotState()
Description copied from class: `GraphicsWindow`
Returns an object which characterises the choices the user has made in the GUI to indicate the plot that s/he wants to see.

The `GraphicsWindow` implementation of this method as well as populating the state with standard information also calls `PointSelection.readPoints(BoundedRangeModel)` and `GraphicsWindow.calculateRanges(PointSelection, Points, PlotState)` if necessary.

Overrides:
  `getPlotState` in class `GraphicsWindow`
Returns:
  snapshot of the currently-selected plot request

### createPointSelector

protected PointSelector createPointSelector()
Description copied from class: `GraphicsWindow`
Returns a new PointSelector instance to be used for selecting points to be plotted.

Overrides:
  `createPointSelector` in class `GraphicsWindow`
Returns:
  new point selector component

### createStyleEditor

protected StyleEditor createStyleEditor()
Description copied from class: `GraphicsWindow`
Creates a style editor suitable for this window.

Specified by:
  `createStyleEditor` in class `GraphicsWindow`
Returns:
  new style editor

### setStyles

public void setStyles(uk.ac.starlink.ttools.plot.StyleSet styles)
Description copied from class: `GraphicsWindow`
Sets the style set to use for this window.

Overrides:
  `setStyles` in class `GraphicsWindow`
Parameters:
  `styles` - new style set

### getStyles

public MutableStyleSet getStyles()
Description copied from class: `GraphicsWindow`
Returns a style set suitable for use with a new PointSelector. Note this is not the same object as was set by `GraphicsWindow.setStyles(StyleSet)`, but it is based on it - it will dispense styles from the same set, but avoid styles already dispensed to other selectors.

Overrides:
  `getStyles` in class `GraphicsWindow`
Returns:
  style set suitable for a new selector

### getDefaultStyles

public uk.ac.starlink.ttools.plot.StyleSet getDefaultStyles(int npoint)
Description copied from class: `GraphicsWindow`
Returns a StyleSet which can supply markers. The `npoint` may be used as a hint for how many points are expected to be drawn with it.

Specified by:
  `getDefaultStyles` in class `GraphicsWindow`
Parameters:
  `npoint` - approximate number of points - use -1 for unknown
Returns:
  style factory

### calculateRanges

public uk.ac.starlink.ttools.plot.Range[] calculateRanges(uk.ac.starlink.ttools.plot.PlotData data, uk.ac.starlink.ttools.plot.PlotState state)
Returns a 1-element array giving only the X axis range.

Overrides:
  `calculateRanges` in class `GraphicsWindow`
Parameters:
  `data` - point data for the plot
  `state` - plot state
Returns:
  ranges

### isLegendInteresting

protected boolean isLegendInteresting(uk.ac.starlink.ttools.plot.PlotState state)
Description copied from class: `GraphicsWindow`
Indicates whether the legend is worth showing for a given plot state.

Overrides:
  `isLegendInteresting` in class `GraphicsWindow`
Parameters:
  `state` - plot state
Returns:
  true iff the legend would show non-trivial information

### modelChanged

public void modelChanged(TopcatEvent evt)
Description copied from interface: `TopcatListener`
Invoked when the model has changed in some way.

Specified by:
  `modelChanged` in interface `TopcatListener`
Parameters:
  `evt` - event description