uk.ac.starlink.topcat
Class AuxWindow

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by uk.ac.starlink.topcat.AuxWindow
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants
Direct Known Subclasses:
ActivationWindow, CdsUploadMatchWindow, ClassifyWindow, ColumnInfoWindow, ConcatWindow, ControlWindow, DalMultiWindow, DatalinkWindow, GraphicsWindow, HelpWindow, HtmlWindow, ImageWindow, LoadWindow, MatchWindow, MethodWindow, ParameterWindow, QueryWindow, SampWindow, StackPlotWindow, StatsWindow, SubsetWindow, TableLoadDialogWindow, TableViewerWindow

public class AuxWindow
extends JFrame

Provides a common superclass for windows popped up by TOPCAT. This implements some common look and feel elements.

Some window-type utility methods are also provided.

Author:
Mark Taylor (Starlink)
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
 
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.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AuxWindow(String title, Component parent)
          Constructs an AuxWindow.
AuxWindow(TopcatModel tcModel, String viewName, Component parent)
          Constructs an AuxWindow which will watch a given table.
 
Method Summary
protected  void addHelp(String helpID)
          Adds standard actions to this window, in the menu and toolbar.
static void beep()
          It beeps.
 boolean confirm(Object message, String title)
          Obtains simple confirmation from a user.
 Action createImportTableAction(String dataType, uk.ac.starlink.table.TableSource tSrc, String label)
          Constructs and returns an action which allows a user to import a supplied table into TOPCAT as if it had just been loaded.
 Action createSaveTableAction(String dataType, uk.ac.starlink.table.TableSource tSrc)
          Constructs and returns an action which allows a user to save a supplied table to disk.
 JComponent getBodyPanel()
          Returns the panel containing the body of this window.
 JPanel getControlPanel()
          Returns the container which should be used for controls and buttons.
 JMenu getHelpMenu()
          Returns this window's "Help" menu.
 Image getIconImage()
           
 JPanel getMainArea()
          Returns the container which should be used for the main user component(s) in this window.
static Component getSponsorLogos()
          Returns a component containing logos for the various organisations which have sponsored TOPCAT development.
 JToolBar getToolBar()
          Returns this window's toolbar.
 JMenu getWindowMenu()
          Returns this window's "Window" menu.
static Border makeTitledBorder(String title)
          Returns a new border which features a given title.
 void makeVisible()
          Ensures that this window is posted in a visible fashion.
 JProgressBar placeProgressBar()
          Creates a JProgressBar and places it in the the window.
static void positionAfter(Component first, Window second)
          Locates one window 'after' another one - probably a bit lower and to the right.
static void recursiveSetEnabled(Component comp, boolean enabled)
          Recursively calls Component.setEnabled(boolean) on a component and (if it is a container) any of the components it contains.
 void setBusy(boolean busy)
          Makes the window look like it's doing something.
 void setCloseIsExit()
          Irrevocably marks this window as one for which the Close action has the same effect as the Exit action.
 void setMainHeading(String text)
          Sets the in-window text which heads up the main display area.
 void setVisible(boolean isVis)
           
 
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, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, transferFocusBackward, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, 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
 

Constructor Detail

AuxWindow

public AuxWindow(String title,
                 Component parent)
Constructs an AuxWindow.

Parameters:
title - the window basic title
parent - the parent component of the new window - may be used for positioning

AuxWindow

public AuxWindow(TopcatModel tcModel,
                 String viewName,
                 Component parent)
Constructs an AuxWindow which will watch a given table. Its title is modified as necessary if the table's label changes. This constructor is only suitable if the window is going to watch (be a view of) a single TopcatModel throughout its life.

Parameters:
tcModel - the model owned by this window
viewName - name of the type of view provided by this window
parent - parent component, may be used for window positioning
Method Detail

addHelp

protected void addHelp(String helpID)
Adds standard actions to this window, in the menu and toolbar. This method should generally be called by subclasses after they have added any other menus and toolbar buttons specific to their function, since the standard buttons appear as the last ones.

An ID can be supplied to indicate the page which should be shown in the help viewer when context-sensitive help is requested. This may be null if no change in the help page should be made (for instance if there is no help specific to this window).

Parameters:
helpID - the ID of the help item for this window

setBusy

public void setBusy(boolean busy)
Makes the window look like it's doing something. This currently modifies the cursor to be busy/normal.

Parameters:
busy - whether the window should look busy

makeVisible

public void makeVisible()
Ensures that this window is posted in a visible fashion.


setVisible

public void setVisible(boolean isVis)
Overrides:
setVisible in class Window

placeProgressBar

public JProgressBar placeProgressBar()
Creates a JProgressBar and places it in the the window. It will replace any other progress bar which has been placed by an earlier call of this method.

Returns:
the progress bar which has been placed

setCloseIsExit

public void setCloseIsExit()
Irrevocably marks this window as one for which the Close action has the same effect as the Exit action. Any Close invocation buttons are replaced with exit ones, duplicates removed, etc. Should be called before any call to addHelp(java.lang.String).


getToolBar

public JToolBar getToolBar()
Returns this window's toolbar. Any client which adds a group of tools to the toolbar should add a separator after the group.

Returns:
the toolbar

getWindowMenu

public JMenu getWindowMenu()
Returns this window's "Window" menu.

Returns:
the window menu

getHelpMenu

public JMenu getHelpMenu()
Returns this window's "Help" menu.

Returns:
the help menu

setMainHeading

public void setMainHeading(String text)
Sets the in-window text which heads up the main display area.

Parameters:
text - heading text

getMainArea

public JPanel getMainArea()
Returns the container which should be used for the main user component(s) in this window. It will have a BorderLayout.

Returns:
main container

getControlPanel

public JPanel getControlPanel()
Returns the container which should be used for controls and buttons. This will probably be placed below the mainArea.

Returns:
control container

getBodyPanel

public JComponent getBodyPanel()
Returns the panel containing the body of this window. This contains most of the content but not the parts that have to go at the top and bottom like the toolbar and progress bar.

Returns:
body panel

confirm

public boolean confirm(Object message,
                       String title)
Obtains simple confirmation from a user. This is just a convenience method wrapping a JOptionPane invocation.

Parameters:
message - confirmation text for user
title - confirmation window title
Returns:
true iff the user provides positive confirmation

createSaveTableAction

public Action createSaveTableAction(String dataType,
                                    uk.ac.starlink.table.TableSource tSrc)
Constructs and returns an action which allows a user to save a supplied table to disk.

Parameters:
dataType - short textual description of the table content
tSrc - table supplier object

createImportTableAction

public Action createImportTableAction(String dataType,
                                      uk.ac.starlink.table.TableSource tSrc,
                                      String label)
Constructs and returns an action which allows a user to import a supplied table into TOPCAT as if it had just been loaded.

Parameters:
dataType - short textual description of the table content
tSrc - table supplier object
label - TocpatModel identifier label

getIconImage

public Image getIconImage()
Overrides:
getIconImage in class Frame

beep

public static void beep()
It beeps.


makeTitledBorder

public static Border makeTitledBorder(String title)
Returns a new border which features a given title.

Parameters:
title - window title
Returns:
border

positionAfter

public static void positionAfter(Component first,
                                 Window second)
Locates one window 'after' another one - probably a bit lower and to the right. The second window is repositioned relative to the first one.

Parameters:
first - first window, or null
second - second window

recursiveSetEnabled

public static void recursiveSetEnabled(Component comp,
                                       boolean enabled)
Recursively calls Component.setEnabled(boolean) on a component and (if it is a container) any of the components it contains.

Parameters:
comp - top-level component to enable/disable
enabled - whether to enable or disable it

getSponsorLogos

public static Component getSponsorLogos()
Returns a component containing logos for the various organisations which have sponsored TOPCAT development.

Returns:
logo bar


Copyright © 2003-2018 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.