# Class PointSelectorSet

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

All Implemented Interfaces:
  `ImageObserver, MenuContainer, Serializable, Accessible`

public abstract class PointSelectorSet extends JPanel
Component which keeps track of a number of `PointSelector` objects. It currently uses a JTabbedPane to present them.

It also keeps track of whether the selected axes are reversed (flipped) and whether they use linear or logarithmic scales. This is not logically the job of this component, but the checkboxes really have to go in the same bit of screen space, so for practical reasons they are here.

Since:
  1 Nov 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
Modifier and Type
Field
Description
`static final String`
`MAIN_TAB_NAME`

### 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
`PointSelectorSet()`
Constructs a new set.

## Method Summary

Modifier and Type
Method
Description
`void`
`addActionListener(ActionListener listener)`
Adds an action listener.
`void`
`addNewSelector(PointSelector psel)`
Adds a new selector to this set.
`void`
`addTopcatListener(TopcatListener listener)`
Adds a TopcatListener which will be notified when changes occur to any TopcatModel associated with this component.
`protected abstract PointSelector`
`createSelector()`
Factory method to construct new PointSelector objects to go in this PointSelectorSet.
`protected abstract StyleEditor`
`createStyleEditor()`
Factory method to construct a StyleEditor component for configuring how different styles appear in the plot.
`Action`
`getAddSelectorAction()`
Returns an action which adds a new selector to this set.
`PointSelector`
`getMainSelector()`
Returns the 'main' PointSelector contained in this set.
`PointSelection`
`getPointSelection()`
Returns the data specification reflecting the current state of this component.
`Action`
`getRemoveSelectorAction()`
Returns an action which removes a selector from this set.
`PointSelector`
`getSelector(int index)`
Returns the selector at a given index.
`int`
`getSelectorCount()`
Returns the number of selectors in this set.
`StyleWindow`
`getStyleWindow()`
`void`
`removeActionListener(ActionListener listener)`
Removes an action listener.
`void`
`removeCurrentSelector()`
Removes the currently selected selector from this set.
`void`
`removeTopcatListener(TopcatListener listener)`
Removes a TopcatListener which was previously added.

### 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, setVisible, 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`

## Field Details

### MAIN_TAB_NAME

public static final String MAIN_TAB_NAME

See Also:
  - Constant Field Values

## Constructor Details

### PointSelectorSet

public PointSelectorSet()
Constructs a new set.

## Method Details

### getSelectorCount

public int getSelectorCount()
Returns the number of selectors in this set.

Returns:
  selector count

### getSelector

public PointSelector getSelector(int index)
Returns the selector at a given index.

Parameters:
  `index` - index of the selector to return
Returns:
  selector

### getAddSelectorAction

public Action getAddSelectorAction()
Returns an action which adds a new selector to this set.

Returns:
  add action

### getRemoveSelectorAction

public Action getRemoveSelectorAction()
Returns an action which removes a selector from this set.

Returns:
  remove action

### createSelector

protected abstract PointSelector createSelector()
Factory method to construct new PointSelector objects to go in this PointSelectorSet.

Returns:
  new point selector component

### createStyleEditor

protected abstract StyleEditor createStyleEditor()
Factory method to construct a StyleEditor component for configuring how different styles appear in the plot.

Returns:
  new style editor component

### getStyleWindow

public StyleWindow getStyleWindow()

### getPointSelection

public PointSelection getPointSelection()
Returns the data specification reflecting the current state of this component. This contains all the information about what points are to be plotted.

Returns:
  point selection object

### getMainSelector

public PointSelector getMainSelector()
Returns the 'main' PointSelector contained in this set.

Returns:
  main selector, or null if there isn't one yet

### addNewSelector

public void addNewSelector(PointSelector psel)
Adds a new selector to this set.

Parameters:
  `psel` - new selector

### removeCurrentSelector

public void removeCurrentSelector()
Removes the currently selected selector from this set.

### addActionListener

public void addActionListener(ActionListener listener)
Adds an action listener. Such listeners will be notified any time PointSelectors are added to or removed from this set, and any time the state of any selector currently a member of this set changes.

Parameters:
  `listener` - listener to add

### removeActionListener

public void removeActionListener(ActionListener listener)
Removes an action listener.

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

### addTopcatListener

public void addTopcatListener(TopcatListener listener)
Adds a TopcatListener which will be notified when changes occur to any TopcatModel associated with this component.

Parameters:
  `listener` - listener to add

### removeTopcatListener

public void removeTopcatListener(TopcatListener listener)
Removes a TopcatListener which was previously added.

Parameters:
  `listener` - listener to remove
See Also:
  - `addTopcatListener(TopcatListener)`