shady.common.ui
Class ControlsDisplay

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 shady.common.ui.Display
                      extended by shady.common.ui.ControlsDisplay
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
SimControlsDisplay

public class ControlsDisplay
extends Display

Shady controls.

TBD more doc

Copyright (C) 2006 Marsette A. Vona, III

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Author:
Marsette (Marty) A. Vona, III
See Also:
Serialized Form

Nested Class Summary
protected  class ControlsDisplay.FrameFileFilter
          A filter for frame files.
 
Nested classes/interfaces inherited from class shady.common.ui.Display
Display.AngleField, Display.BarrelAngleField, Display.BarrelField, Display.BooleanField, Display.CharField, Display.CountField, Display.CurrentField, Display.DecimalField, Display.EnergyField, Display.FaultField, Display.Field, Display.GripperField, Display.PointField, Display.StringField, Display.TimeField, Display.TorqueField, Display.VoltageField
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private static java.lang.String cvsid
          CVS id.
static double DEFAULT_FPS
          Default update frames per second.
static java.io.File DEFAULT_FRAME_DIR
          Default directory for saving frames.
static java.lang.String DEFAULT_FRAME_FORMAT
          Default file save format.
static double DEFAULT_FRAME_FPS
          Default framerate for saving frames in frames/sec.
static java.lang.String DEFAULT_FRAME_PREFIX
          Default frame filename prefix to use when saving frames.
static int DEFAULT_NEXT_FRAME_NUMBER
          Default frame number to use when saving frames.
static int DEFAULT_NUM_FRAME_DIGITS
          Default number of digits to use for the frame number in frame filenames.
protected  javax.swing.JButton estopButton
          The emergency stop button.
(package private)  javax.swing.JFileChooser frameChooser
          Save Frame file chooser, lazily consed.
protected  vona.time.SuperClock frameClock
          The clock we use to save frames.
protected  java.io.File frameDir
          Most recent save directory or DEFAULT_FRAME_DIR.
protected  java.lang.String frameFormat
          Most recent save format or DEFAULT_FRAME_FORMAT.
protected  double frameFPS
          The frame save rate, default DEFAULT_FRAME_FPS.
protected  java.lang.String framePrefix
          The frame filename prefix, default DEFAULT_FRAME_PREFIX.
protected  vona.time.PeriodicThread frameThread
          The thread we use to save frames.
protected  int nextFrameNumber
          The next frame filename counter, default DEFAULT_NEXT_FRAME_NUMBER.
protected  int numFrameDigits
          The frame filename counter width, default DEFAULT_NUM_FRAME_DIGITS.
protected  javax.swing.JButton saveFrameButton
          The Save Frame button.
protected  javax.swing.JButton saveFramesButton
          The Save Frames button.
protected  boolean savingFrames
          Whether we're currently saving frames.
 
Fields inherited from class shady.common.ui.Display
DEFAULT_BORDER_PAD, DEFAULT_WIDTH, fields, fps, paused, shady, shadyUI, UNITS_WIDTH
 
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
ControlsDisplay(UI ui, ShadyCommonAPI shady)
          Create a new ControlsDisplay.
 
Method Summary
protected  void addExtraControlsLeft()
          Hook to add extra controls to the left of the estop button.
protected  void addExtraControlsRight()
          Hook to add extra controls to the right of the estop button.
protected  void estop()
          Actually perform estop.
protected  double getDefaultFPS()
          Get the default frames per sec.
protected  void postFrameSave()
          Hook called after a frame is saved.
protected  void preFrameSave()
          Hook called before a frame is saved.
 void setDefaultFrameFormat(java.lang.String format)
          Set the default frame format.
 void startSavingFrames()
          Same as startSavingFrames(File, String, String, int, int, double) but uses last settings.
 void startSavingFrames(java.io.File dir, java.lang.String format, java.lang.String prefix, int numFrameDigits, int nextFrameNumber, double frameFPS)
          Start saving frame iff not currently savingFrames.
 void stopSavingFrames()
          Stop saving frame iff currently savingFrames.
 
Methods inherited from class shady.common.ui.Display
getFPS, getUpdateInterval, isPaused, lockHeight, lockMinimumSize, lockPreferredSize, pause, setBorder, setBorder, setBorder, setFPS, unPause, unPause, update
 
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, 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 java.awt.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, 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, 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

cvsid

private static final java.lang.String cvsid

CVS id.

See Also:
Constant Field Values

DEFAULT_FPS

public static final double DEFAULT_FPS

Default update frames per second.

See Also:
Constant Field Values

DEFAULT_FRAME_DIR

public static final java.io.File DEFAULT_FRAME_DIR

Default directory for saving frames.


DEFAULT_FRAME_FORMAT

public static final java.lang.String DEFAULT_FRAME_FORMAT

Default file save format.

See Also:
Constant Field Values

DEFAULT_FRAME_PREFIX

public static final java.lang.String DEFAULT_FRAME_PREFIX

Default frame filename prefix to use when saving frames.

See Also:
Constant Field Values

DEFAULT_NEXT_FRAME_NUMBER

public static final int DEFAULT_NEXT_FRAME_NUMBER

Default frame number to use when saving frames.

See Also:
Constant Field Values

DEFAULT_NUM_FRAME_DIGITS

public static final int DEFAULT_NUM_FRAME_DIGITS

Default number of digits to use for the frame number in frame filenames.

See Also:
Constant Field Values

DEFAULT_FRAME_FPS

public static final double DEFAULT_FRAME_FPS

Default framerate for saving frames in frames/sec.

See Also:
Constant Field Values

estopButton

protected final javax.swing.JButton estopButton

The emergency stop button.

Calls estop().


frameChooser

javax.swing.JFileChooser frameChooser

Save Frame file chooser, lazily consed.


saveFrameButton

protected final javax.swing.JButton saveFrameButton

The Save Frame button.


saveFramesButton

protected final javax.swing.JButton saveFramesButton

The Save Frames button.


savingFrames

protected boolean savingFrames

Whether we're currently saving frames.


frameDir

protected java.io.File frameDir

Most recent save directory or DEFAULT_FRAME_DIR.


frameFormat

protected java.lang.String frameFormat

Most recent save format or DEFAULT_FRAME_FORMAT.


frameThread

protected vona.time.PeriodicThread frameThread

The thread we use to save frames.

.


frameClock

protected vona.time.SuperClock frameClock

The clock we use to save frames.

.


framePrefix

protected java.lang.String framePrefix

The frame filename prefix, default DEFAULT_FRAME_PREFIX.


numFrameDigits

protected int numFrameDigits

The frame filename counter width, default DEFAULT_NUM_FRAME_DIGITS.


nextFrameNumber

protected int nextFrameNumber

The next frame filename counter, default DEFAULT_NEXT_FRAME_NUMBER.


frameFPS

protected double frameFPS

The frame save rate, default DEFAULT_FRAME_FPS.

Constructor Detail

ControlsDisplay

public ControlsDisplay(UI ui,
                       ShadyCommonAPI shady)

Create a new ControlsDisplay.

Parameters:
ui - the UI that contains this Display
shady - the Shady we control
Method Detail

getDefaultFPS

protected double getDefaultFPS()

Get the default frames per sec.

Overrides:
getDefaultFPS in class Display
Returns:
Display.DEFAULT_FPS

addExtraControlsLeft

protected void addExtraControlsLeft()

Hook to add extra controls to the left of the estop button.


addExtraControlsRight

protected void addExtraControlsRight()

Hook to add extra controls to the right of the estop button.


estop

protected void estop()

Actually perform estop.


setDefaultFrameFormat

public void setDefaultFrameFormat(java.lang.String format)

Set the default frame format.

Parameters:
format - the frame format

startSavingFrames

public void startSavingFrames(java.io.File dir,
                              java.lang.String format,
                              java.lang.String prefix,
                              int numFrameDigits,
                              int nextFrameNumber,
                              double frameFPS)

Start saving frame iff not currently savingFrames.

Parameters:
dir - the directory to which to save frames, null to use last value
format - the frame format
numFrameDigits - the number of digits to use for the frame number in the frame filenames, leq 0 to use last value
nextFrameNumber - the first frame number to use, negative to use last value
frameFPS - the framerate in frames/sec, NaN or leq 0.0 to use last valuez

startSavingFrames

public void startSavingFrames()

Same as startSavingFrames(File, String, String, int, int, double) but uses last settings.


preFrameSave

protected void preFrameSave()

Hook called before a frame is saved.


postFrameSave

protected void postFrameSave()

Hook called after a frame is saved.


stopSavingFrames

public void stopSavingFrames()

Stop saving frame iff currently savingFrames.