Class Capture

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--Capture
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, StatusOut, javax.swing.WindowConstants

public class Capture
extends javax.swing.JFrame
implements java.awt.event.ActionListener, java.awt.event.ItemListener, StatusOut

This is the GUI for a program that will be used to perform motion capture. This class handles high level control of the program, as well as the GUI elements.

See Also:
Serialized Form

Inner Class Summary
(package private)  class Capture.CloseHandler
          Handles closing down system.
 
Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
private  javax.swing.JRadioButton anglesButton
           
private  javax.swing.JButton autoconfigButton
           
private  javax.swing.JPanel buttonPanel
           
private  javax.swing.JButton calibrateButton
           
private  javax.swing.JToggleButton captureButton
           
private  CalibrateDialog cdialog
           
private  javax.swing.JMenuItem exitItem
           
private  javax.swing.JFileChooser fileChooser
           
private  javax.swing.JMenu fileMenu
           
private  Flock flock
           
private  javax.swing.JPanel flockPanel
           
private  javax.swing.JTextField flockSizeText
          This field is used to auto-config<\em> the size of the flock.
private  javax.swing.JButton flyButton
           
private  javax.swing.JButton groupButton
           
(package private)  boolean guiTest
           
(package private)  int HEIGHT
           
private  javax.swing.JMenuBar mb
           
private  javax.swing.JPanel messagePanel
           
private  javax.swing.JButton playButton
           
private  javax.swing.JButton pointButton
           
private  javax.swing.JRadioButton quaternionButton
           
private  javax.swing.JButton saveButton
           
(package private)  javax.swing.JScrollPane scrollPane
           
private  javax.swing.JButton sleepButton
           
private  javax.swing.JTextArea statusText
           
(package private)  int WIDTH
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, defaultCloseOperation, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
base, CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, frameSerializedDataVersion, HAND_CURSOR, icon, ICONIFIED, mbManagement, menuBar, MOVE_CURSOR, N_RESIZE_CURSOR, nameCounter, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, ownedWindows, resizable, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, serialVersionUID, state, SW_RESIZE_CURSOR, TEXT_CURSOR, title, W_RESIZE_CURSOR, WAIT_CURSOR, weakThis
 
Fields inherited from class java.awt.Window
active, dbg, focusMgr, inputContext, inputContextLock, OPENED, ownedWindowList, warningString, windowListener, windowSerializedDataVersion
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
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, PROPERTIES, SOMEBITS
 
Constructor Summary
Capture(java.lang.String[] args)
          Create new Capture and initilizes it.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Responds to the menu items and buttons.
 void appendStatus(java.lang.String msg)
          Adds another line to the status window
 void itemStateChanged(java.awt.event.ItemEvent e)
          Handles events for the capture button.
static void main(java.lang.String[] args)
          Main method.
private  void scrollStatusText()
          Make the scroll pane always show the bottom of the text area
 void sendStatus(java.lang.String msg)
          Thread safe method for writing to the statusText We use the invokeLater method so that this will be a thread safe call ie.
private  void setUpGUI()
          Sets up the GUI for this program.
private  void shutdown()
          Cleanly shuts down the applicaion.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, createRootPaneException, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
, addNotify, addToFrameList, constructComponentName, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, initIDs, isResizable, postProcessKeyEvent, readObject, remove, removeFromFrameList, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle, writeObject
 
Methods inherited from class java.awt.Window
addOwnedWindow, addWindowListener, adjustListeningChildren, applyResourceBundle, applyResourceBundle, connectOwnedWindow, dispatchEventImpl, dispose, eventEnabled, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isActive, isShowing, nextFocus, ownedInit, pack, postEvent, postWindowEvent, preProcessKeyEvent, processEvent, removeOwnedWindow, removeWindowListener, resetGC, setCursor, setFocusOwner, setWarningString, show, toBack, toFront, transferFocus
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventToSelf, doLayout, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, numListening, paint, paintComponents, paintHeavyweightComponents, postsOldMouseEvents, preferredSize, print, printComponents, printHeavyweightComponents, processContainerEvent, proxyEnableEvents, proxyRequestFocus, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

guiTest

boolean guiTest

HEIGHT

final int HEIGHT

WIDTH

final int WIDTH

mb

private javax.swing.JMenuBar mb

fileMenu

private javax.swing.JMenu fileMenu

exitItem

private javax.swing.JMenuItem exitItem

flockPanel

private javax.swing.JPanel flockPanel

flockSizeText

private javax.swing.JTextField flockSizeText
This field is used to auto-config<\em> the size of the flock.

flyButton

private javax.swing.JButton flyButton

sleepButton

private javax.swing.JButton sleepButton

autoconfigButton

private javax.swing.JButton autoconfigButton

groupButton

private javax.swing.JButton groupButton

calibrateButton

private javax.swing.JButton calibrateButton

quaternionButton

private javax.swing.JRadioButton quaternionButton

anglesButton

private javax.swing.JRadioButton anglesButton

buttonPanel

private javax.swing.JPanel buttonPanel

pointButton

private javax.swing.JButton pointButton

captureButton

private javax.swing.JToggleButton captureButton

saveButton

private javax.swing.JButton saveButton

playButton

private javax.swing.JButton playButton

fileChooser

private javax.swing.JFileChooser fileChooser

cdialog

private CalibrateDialog cdialog

scrollPane

javax.swing.JScrollPane scrollPane

messagePanel

private javax.swing.JPanel messagePanel

statusText

private javax.swing.JTextArea statusText

flock

private Flock flock
Constructor Detail

Capture

public Capture(java.lang.String[] args)
Create new Capture and initilizes it.
Parameters:
args - command line arguments used when program was invoked.
gui - Used to create the GUI without a backend
Method Detail

main

public static void main(java.lang.String[] args)
Main method. Checks to see if the command line agrument is requesting usage informaition (-h, -help), if it is, display a usage message and exit, otherwise create a new SerialDemo and set it visible.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Responds to the menu items and buttons.
Specified by:
actionPerformed in interface java.awt.event.ActionListener

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Handles events for the capture button.
Specified by:
itemStateChanged in interface java.awt.event.ItemListener

scrollStatusText

private void scrollStatusText()
Make the scroll pane always show the bottom of the text area

sendStatus

public void sendStatus(java.lang.String msg)
Thread safe method for writing to the statusText We use the invokeLater method so that this will be a thread safe call ie. it can be called by a thread other than the event handler thread. when a non-event thread wants to write to the message panel. This area is used as a log of all of the actions of the program. statusText is inside of a JScrollPane.
Specified by:
sendStatus in interface StatusOut
Following copied from interface: StatusOut
Parameters:
msg - is the string to appear.

appendStatus

public void appendStatus(java.lang.String msg)
Adds another line to the status window

shutdown

private void shutdown()
Cleanly shuts down the applicaion.

setUpGUI

private void setUpGUI()
Sets up the GUI for this program.

Buttons in the flock panel: FLY Sleep Autoconfig Group calibrate