shady.sim.ui
Class SimControlsDisplay

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

public class SimControlsDisplay
extends ControlsDisplay

Shady sim 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
 
Nested classes/interfaces inherited from class shady.common.ui.ControlsDisplay
ControlsDisplay.FrameFileFilter
 
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
static double ACCEL_MAX
          Max accel displayed by slider.
static double ACCEL_MIN
          Min accel displayed by slider.
protected  javax.swing.JLabel accelLabel
          Text display of accel.
protected  javax.swing.JSlider accelSlider
          Slider to manipulate accel.
private static java.lang.String cvsid
          CVS id.
protected  double lastAccel
          The last accel value.
protected  java.text.NumberFormat nf
          Formats an accel.
protected  javax.swing.JToggleButton pauseButton
          The pause button.
static int SLIDER_MAX
          Min slider value.
static int SLIDER_MIN
          Min slider value.
 
Fields inherited from class shady.common.ui.ControlsDisplay
DEFAULT_FPS, DEFAULT_FRAME_DIR, DEFAULT_FRAME_FORMAT, DEFAULT_FRAME_FPS, DEFAULT_FRAME_PREFIX, DEFAULT_NEXT_FRAME_NUMBER, DEFAULT_NUM_FRAME_DIGITS, estopButton, frameClock, frameDir, frameFormat, frameFPS, framePrefix, frameThread, nextFrameNumber, numFrameDigits, saveFrameButton, saveFramesButton, savingFrames
 
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
SimControlsDisplay(UI ui, ShadySimAPI shady)
          Create a new SimControlsDisplay.
 
Method Summary
protected  int accelToSlider(double accel)
          Convert an accel to a slider pos.
protected  void addExtraControlsLeft()
          Hook to add extra controls to the left of the estop button.
protected  double getAccel()
          Get the accel from the sim mechanism.
protected  void pauseShady()
          Pause the sim mechanism.
protected  void postFrameSave()
          Hook called after a frame is saved.
protected  void preFrameSave()
          Hook called before a frame is saved.
 void setAccel(double accel)
          Set the accel to the sim mechanism.
protected  double sliderToAccel(int slider)
          Convert a slider position to an accel.
protected  void unPauseShady()
          Un-pause the sim mechanism.
protected  void update()
          re-set accelLabel text and accelSlider position.
 
Methods inherited from class shady.common.ui.ControlsDisplay
addExtraControlsRight, estop, getDefaultFPS, setDefaultFrameFormat, startSavingFrames, startSavingFrames, stopSavingFrames
 
Methods inherited from class shady.common.ui.Display
getFPS, getUpdateInterval, isPaused, lockHeight, lockMinimumSize, lockPreferredSize, pause, setBorder, setBorder, setBorder, setFPS, unPause, unPause
 
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

SLIDER_MIN

public static final int SLIDER_MIN

Min slider value.

See Also:
Constant Field Values

SLIDER_MAX

public static final int SLIDER_MAX

Min slider value.

See Also:
Constant Field Values

ACCEL_MIN

public static final double ACCEL_MIN

Min accel displayed by slider.

See Also:
Constant Field Values

ACCEL_MAX

public static final double ACCEL_MAX

Max accel displayed by slider.

See Also:
Constant Field Values

lastAccel

protected double lastAccel

The last accel value.


nf

protected java.text.NumberFormat nf

Formats an accel.


accelLabel

protected javax.swing.JLabel accelLabel

Text display of accel.


accelSlider

protected javax.swing.JSlider accelSlider

Slider to manipulate accel.


pauseButton

protected javax.swing.JToggleButton pauseButton

The pause button.

Constructor Detail

SimControlsDisplay

public SimControlsDisplay(UI ui,
                          ShadySimAPI shady)

Create a new SimControlsDisplay.

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

getAccel

protected double getAccel()

Get the accel from the sim mechanism.

Returns:
the accel, or NaN if no mechanism

setAccel

public void setAccel(double accel)

Set the accel to the sim mechanism.

Parameters:
accel - the accel to set

pauseShady

protected void pauseShady()

Pause the sim mechanism.


unPauseShady

protected void unPauseShady()

Un-pause the sim mechanism.


preFrameSave

protected void preFrameSave()

Hook called before a frame is saved.

This impl pauseShady().

Overrides:
preFrameSave in class ControlsDisplay

postFrameSave

protected void postFrameSave()

Hook called after a frame is saved.

This impl unPauseShady().

Overrides:
postFrameSave in class ControlsDisplay

addExtraControlsLeft

protected void addExtraControlsLeft()

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

This impl adds accelLabel and accelSlider.

Overrides:
addExtraControlsLeft in class ControlsDisplay

accelToSlider

protected int accelToSlider(double accel)

Convert an accel to a slider pos.

Parameters:
accel - the accel, will be clamped to [ACCEL_MIN, ACCEL_MAX]
Returns:
the corresponding slider pos in [SLIDER_MIN, SLIDER_MAX]

sliderToAccel

protected double sliderToAccel(int slider)

Convert a slider position to an accel.

Parameters:
slider - the slider pos in [SLIDER_MIN, SLIDER_MAX]
Returns:
the corresponding accel in [ACCEL_MIN, ACCEL_MAX]

update

protected void update()

re-set accelLabel text and accelSlider position.

Overrides:
update in class Display