Package uk.ac.starlink.topcat

# Class ColumnSearchWindow

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
uk.ac.starlink.topcat.AuxDialog
uk.ac.starlink.topcat.ColumnSearchWindow

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

Direct Known Subclasses:
  `DataColumnSearchWindow`, `SmallColumnSearchWindow`

public class ColumnSearchWindow extends AuxDialog
Dialog window that allows the user to search for text content in cells of a column of a displayed table.

This is a partial implementation that provides the basic GUI, but it must be extended to do something useful such as actually perform a search and message a user with the results.

It could quite easily be generalised to search for text in something that isn't a table column.

Since:
  14 Sep 2023
Author:
  Mark Taylor
See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`ColumnSearchWindow.Search`
Specifies a column content search.
`static enum`
`ColumnSearchWindow.SearchScope`
Enum for search target scope.

## Nested classes/interfaces inherited from class javax.swing.JDialog

`JDialog.AccessibleJDialog`

## Nested classes/interfaces inherited from class java.awt.Dialog

`Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType`

## Nested classes/interfaces inherited from class java.awt.Window

`Window.AccessibleAWTWindow, Window.Type`

## Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

## Nested classes/interfaces inherited from class java.awt.Component

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

## Field Summary

### Fields inherited from class javax.swing.JDialog

`accessibleContext, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class java.awt.Dialog

`DEFAULT_MODALITY_TYPE`

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

### Fields inherited from interface javax.swing.WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

## Constructor Summary

Constructors
Constructor
Description
`ColumnSearchWindow(String title, Window owner, String colselLabel, ComboBoxModel<TableColumn> colSelectorModel)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`ColumnSearchWindow.Search`
`createSearch()`
Creates a search specification based on the current configuration of this window's input components.
`ActionForwarder`
`getActionForwarder()`
Returns the action forwarder used by the components in this GUI.
`JComboBox<TableColumn>`
`getColumnSelector()`
Returns the component used for selecting columns to search.
`JComponent`
`getControlBox()`
Returns a container into which control buttons may be put.
`JTextField`
`getTextField()`
Returns the text component into which the user enters search terms.
`void`
`searchCompleted(boolean success)`
Should be called when a search is completed.
`void`
`setColumn(TableColumn tcol)`
Programmatically configures the column to be searched by this window.

### Methods inherited from class uk.ac.starlink.topcat.AuxDialog

`addHelp, getHelpMenu, getToolBar, getWindowMenu, placeProgressBar`

### Methods inherited from class javax.swing.JDialog

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

### Methods inherited from class java.awt.Dialog

`addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack`

### Methods inherited from class java.awt.Window

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

### Methods inherited from class java.awt.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 java.awt.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, remove, 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 java.lang.Object

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

## Constructor Details

### ColumnSearchWindow

public ColumnSearchWindow(String title, Window owner, String colselLabel, ComboBoxModel<TableColumn> colSelectorModel)
Constructor. Does not pack components.

Parameters:
  `title` - title of dialogue window
  `owner` - window that owns this dialogue
  `colselLabel` - label for selector of the column to use
  `colSelectorModel` - model for selector of the column to use

## Method Details

### getActionForwarder

public ActionForwarder getActionForwarder()
Returns the action forwarder used by the components in this GUI.

Returns:
  action forwarder

### getControlBox

public JComponent getControlBox()
Returns a container into which control buttons may be put.

Returns:
  control box

### getTextField

public JTextField getTextField()
Returns the text component into which the user enters search terms.

Returns:
  search field

### getColumnSelector

public JComboBox<TableColumn> getColumnSelector()
Returns the component used for selecting columns to search.

Returns:
  column selector

### searchCompleted

public void searchCompleted(boolean success)
Should be called when a search is completed. Must be called from the Event Dispatch Thread.

At present, the behaviour is to dispose this dialogue if the search was successful, unless the GUI has been configured otherwise.

Parameters:
  `success` - true iff the search was successful (terms found)

### setColumn

public void setColumn(TableColumn tcol)
Programmatically configures the column to be searched by this window.

Parameters:
  `tcol` - column

### createSearch

public ColumnSearchWindow.Search createSearch()
Creates a search specification based on the current configuration of this window's input components.

Returns:
  search object if the GUI is configured to provide one, null if it is not