Package uk.ac.starlink.topcat

# Class SyntheticColumnQueryWindow

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.QueryWindow
uk.ac.starlink.topcat.SyntheticColumnQueryWindow

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

public abstract class SyntheticColumnQueryWindow extends QueryWindow
A dialogue window which queries the user for the characteristics of a new column and then appends it to the table.

See Also:
  - Serialized Form

## Nested Class Summary

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

`JFrame.AccessibleJFrame`

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

`Frame.AccessibleAWTFrame`

## 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 uk.ac.starlink.topcat.QueryWindow

`blankBorder`

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

`accessibleContext, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class java.awt.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 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`

## Method Summary

Modifier and Type
Method
Description
`static SyntheticColumnQueryWindow`
`editColumnDialog(TopcatModel tcModel, int icol, Component parent, Consumer<Boolean> onChange)`
Constructs a query window which will edit an existing column in the model.
`String`
`getColumnName()`
Returns the string that the user has entered in the Name field.
`String`
`getDescription()`
Returns the string that the user has entered in the Description field.
`String`
`getExpression()`
Returns the string that the user has entered in the Expression field.
`Class<?>`
`getExpressionType()`
Returns the class that the user has selected for the expression.
`int`
`getIndex()`
Sets the index at which the new column should be inserted.
`String`
`getUCD()`
Returns the string that the user has chosen for the UCD field.
`String`
`getUnit()`
Returns the string that the user has entered in the Units field.
`protected SyntheticColumn`
`makeColumn()`
Constructs and returns the new synthetic column specified by the state of this window.
`static SyntheticColumnQueryWindow`
`newColumnDialog(TopcatModel tcModel, int insertIndex, Component parent)`
Constructs a query window which on completion will add a new column.
`static SyntheticColumnQueryWindow`
`replaceColumnDialog(TopcatModel tcModel, uk.ac.starlink.table.gui.StarTableColumn baseCol, Component parent)`
Constructs a query window which on completion will replace an existing column.
`void`
`setColumnName(String name)`
Sets the contents of the name field.
`void`
`setDescription(String desc)`
Sets the value entered into the description field.
`void`
`setExpression(String expr)`
Sets the contents of the expression field.
`void`
`setExpressionType(Class<?> clazz)`
Sets the class that the expression result will be converted to.
`void`
`setUCD(String ucd)`
Sets the string in the UCD selector.
`void`
`setUnit(String units)`
Sets the value entered into the units field.

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

`getAuxControlPanel, getStack, invokeCancel, invokeOK, perform, setVisible`

### Methods inherited from class uk.ac.starlink.topcat.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 javax.swing.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 java.awt.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 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, 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 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, 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`

### Methods inherited from interface java.awt.MenuContainer

`getFont, postEvent`

## Method Details

### getColumnName

public String getColumnName()
Returns the string that the user has entered in the Name field.

Returns:
  name

### setColumnName

public void setColumnName(String name)
Sets the contents of the name field.

Parameters:
  `name` - new contents of the name field

### getUnit

public String getUnit()
Returns the string that the user has entered in the Units field.

Returns:
  units

### setUnit

public void setUnit(String units)
Sets the value entered into the units field.

Parameters:
  `units` - unit string

### getDescription

public String getDescription()
Returns the string that the user has entered in the Description field.

Returns:
  description

### setDescription

public void setDescription(String desc)
Sets the value entered into the description field.

Parameters:
  `desc` - description string

### getExpression

public String getExpression()
Returns the string that the user has entered in the Expression field.

Returns:
  expression

### setExpression

public void setExpression(String expr)
Sets the contents of the expression field.

Parameters:
  `expr` - new contents of the expression field

### getUCD

public String getUCD()
Returns the string that the user has chosen for the UCD field.

Returns:
  UCD identifier

### setUCD

public void setUCD(String ucd)
Sets the string in the UCD selector.

Parameters:
  `ucd` - UCD string

### setExpressionType

public void setExpressionType(Class<?> clazz)
Sets the class that the expression result will be converted to. If null, automatic class resolution should be used.

Parameters:
  `clazz` - forced expression type, or null

### getExpressionType

public Class<?> getExpressionType()
Returns the class that the user has selected for the expression. If null, automatic class resolution should be used.

Returns:
  forced expression type, or null

### getIndex

public int getIndex()
Sets the index at which the new column should be inserted.

Returns:
  index

### makeColumn

protected SyntheticColumn makeColumn()
Constructs and returns the new synthetic column specified by the state of this window. If it constitutes an erroneous specification, null is returned (and the user is notified).

Returns:
  new synthetic column as specified, or `null`

### newColumnDialog

public static SyntheticColumnQueryWindow newColumnDialog(TopcatModel tcModel, int insertIndex, Component parent)
Constructs a query window which on completion will add a new column.

Parameters:
  `tcModel` - model containing the table data
  `insertIndex` - the default position for the new column
  `parent` - the parent window for this dialogue (used for window positioning)
Returns:
  a window ready for user interaction

### editColumnDialog

public static SyntheticColumnQueryWindow editColumnDialog(TopcatModel tcModel, int icol, Component parent, Consumer<Boolean> onChange)
Constructs a query window which will edit an existing column in the model.

Parameters:
  `tcModel` - topcat model
  `icol` - model index of column to edit
  `parent` - parent window, used for positioning
  `onChange` - callback to be run on the EDT; the boolean parameter will be true only if the expression defining a (synthetic) column has changed
Returns:
  window ready for user interaction

### replaceColumnDialog

public static SyntheticColumnQueryWindow replaceColumnDialog(TopcatModel tcModel, uk.ac.starlink.table.gui.StarTableColumn baseCol, Component parent)
Constructs a query window which on completion will replace an existing column. This means that when (if) the user hits OK, the column it's based on will be hidden, and the new one will be added in the same place, with the same name. The old (hidden) one will be given a new 'retirement' name.

Parameters:
  `tcModel` - topcat model
  `baseCol` - column to be replaced
  `parent` - parent window, used for positioning
Returns:
  a window ready for user interaction