edu.wisc.ssec.mcidasv.chooser
Class FrameChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ucar.unidata.ui.ChooserPanel
                      extended by edu.wisc.ssec.mcidasv.chooser.FrameChooser
All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible

public abstract class FrameChooser
extends ChooserPanel

Version:
$Revision$
Author:
Unidata IDV Development Team
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
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
private  JRadioButton curRB
          Refresh current frame radio button
static String DATA_NAME_KEY
           
private  boolean doLoop
          Keep track of when are are doing a frame loop
static String FRAME_NUMBERS_KEY
          Public keys for frame numbers, request, and data name.
private  ChooserList framesList
          frames list
protected  boolean ignoreStateChangedEvents
          flag for ignoring combobox changes
private  JRadioButton loopRB
          Frame loop radio button
static String NEW_SELECTION
          Property for new data selection
static String REQUEST_HOST
           
static String REQUEST_KEY
           
static String REQUEST_PORT
           
protected static int STATE_CONNECTED
          Have connected
protected  Object WIDGET_MUTEX
          Used to synchronize access to widgets (eg: disabling, setting state, etc).
 
Fields inherited from class ucar.unidata.ui.ChooserPanel
cancelButton, CMD_LOAD, contents, GRID_INSETS, GRID_SPACING, GRID_SPACING_H, GRID_SPACING_V, haveData, helpPath, loadButton, MAP_COLOR, simpleMode, statusLabel
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
 
Constructor Summary
FrameChooser()
          Create me.
 
Method Summary
 void actionPerformed(ActionEvent ae)
          Handle the event
protected  void clearFramesList()
          Clear all times in the times list.
 void doUpdate()
          Update the selector.
protected  void enableWidgets()
          Enable or disable the GUI widgets based on what has been selected.
protected  boolean getDoCurrentFrame()
          Did the user select current frame?
protected  boolean getDoFrameLoop()
          Do we do a frame loop or refresh current frame
protected  boolean getGoodToGo()
          Are we all set to load data.
 ChooserList getTimesList()
          Create (if needed) and return the list that shows frames.
protected  int getTimesListSize()
          Get the size of the times list
 void handleUpdate()
          Handle when the user presses the update button
 void handleUpdateFromThread()
          Handle when the user presses the update button
protected  boolean haveAnyTimes()
          Are there any times in the times list.
protected  boolean haveASeries()
          Are there more than one times in the times list.
protected  boolean haveFrameSelected()
          Are there any frames selected.
protected  JPanel makeFramesPanel()
          Create the current frame / frame loop selector
protected abstract  void readFrames()
          Do what needs to be done to read in the times.
protected  void setDoFrameLoop(boolean yesorno)
          Set whether we do a frame loop or refresh current frame
protected  void updateStatus()
          Disable/enable any components that depend on the server.
 
Methods inherited from class ucar.unidata.ui.ChooserPanel
addPropertyChangeListener, canDoUpdate, clearWaitCursor, doCancel, doClose, doHelp, doLoad, doLoadInThread, doMakeContents, firePropertyChange, getButtonLabels, getContents, getDefaultButtons, getDefaultButtons, getHaveData, getLoadCommandName, getLoadToolTip, getMessageTemplate, getSimpleMode, getStatusComponent, getStatusLabel, getStatusLabelBackground, getStatusLabelForeground, getUpdateToolTip, logException, padLabel, registerStatusComp, revalidate, setHaveData, setHelpPath, setMessageTemplate, setStatus, setStatus, showNormalCursor, showNormalCursor, showWaitCursor, showWaitCursor
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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 java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NEW_SELECTION

public static String NEW_SELECTION
Property for new data selection


STATE_CONNECTED

protected static final int STATE_CONNECTED
Have connected

See Also:
Constant Field Values

ignoreStateChangedEvents

protected boolean ignoreStateChangedEvents
flag for ignoring combobox changes


FRAME_NUMBERS_KEY

public static final String FRAME_NUMBERS_KEY
Public keys for frame numbers, request, and data name.

See Also:
Constant Field Values

DATA_NAME_KEY

public static final String DATA_NAME_KEY
See Also:
Constant Field Values

REQUEST_HOST

public static final String REQUEST_HOST
See Also:
Constant Field Values

REQUEST_PORT

public static final String REQUEST_PORT
See Also:
Constant Field Values

REQUEST_KEY

public static final String REQUEST_KEY
See Also:
Constant Field Values

WIDGET_MUTEX

protected Object WIDGET_MUTEX
Used to synchronize access to widgets (eg: disabling, setting state, etc).


framesList

private ChooserList framesList
frames list


doLoop

private boolean doLoop
Keep track of when are are doing a frame loop


loopRB

private JRadioButton loopRB
Frame loop radio button


curRB

private JRadioButton curRB
Refresh current frame radio button

Constructor Detail

FrameChooser

public FrameChooser()
Create me.

Method Detail

handleUpdate

public void handleUpdate()
                  throws Exception
Handle when the user presses the update button

Throws:
Exception - _more_

handleUpdateFromThread

public void handleUpdateFromThread()
Handle when the user presses the update button


doUpdate

public final void doUpdate()
Update the selector. Call handleUpdate in a thread

Overrides:
doUpdate in class ChooserPanel

actionPerformed

public void actionPerformed(ActionEvent ae)
Handle the event

Specified by:
actionPerformed in interface ActionListener
Overrides:
actionPerformed in class ChooserPanel
Parameters:
ae - The event

updateStatus

protected void updateStatus()
Disable/enable any components that depend on the server. Try to update the status labelwith what we know here.

Overrides:
updateStatus in class ChooserPanel

haveAnyTimes

protected boolean haveAnyTimes()
Are there any times in the times list.

Returns:
Do we have any times at all.

haveASeries

protected boolean haveASeries()
Are there more than one times in the times list.

Returns:
Do we have a series.

getTimesList

public ChooserList getTimesList()
Create (if needed) and return the list that shows frames.

Returns:
The frames list.

getTimesListSize

protected int getTimesListSize()
Get the size of the times list

Returns:
the times list size

clearFramesList

protected void clearFramesList()
Clear all times in the times list.


readFrames

protected abstract void readFrames()
Do what needs to be done to read in the times. Subclasses need to implement this.


getGoodToGo

protected boolean getGoodToGo()
Are we all set to load data.

Returns:
All set to load.

makeFramesPanel

protected JPanel makeFramesPanel()
Create the current frame / frame loop selector

Returns:
the image list panel

haveFrameSelected

protected boolean haveFrameSelected()
Are there any frames selected.

Returns:
Any frames selected.

getDoFrameLoop

protected boolean getDoFrameLoop()
Do we do a frame loop or refresh current frame

Returns:
Do we do frame loop

setDoFrameLoop

protected void setDoFrameLoop(boolean yesorno)
Set whether we do a frame loop or refresh current frame

Parameters:
yesorno - true to do frame loop

getDoCurrentFrame

protected boolean getDoCurrentFrame()
Did the user select current frame?

Returns:
Should we load current frame

enableWidgets

protected void enableWidgets()
Enable or disable the GUI widgets based on what has been selected.