jAER project on SourceForge

ch.unizh.ini.jaer.projects.opticalflow.graphics
Class MotionViewer

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 ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer
All Implemented Interfaces:
java.awt.dnd.DropTargetListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class MotionViewer
extends javax.swing.JFrame
implements java.beans.PropertyChangeListener, java.awt.dnd.DropTargetListener

Shows retina live and allows for controlling view and recording and playing back events.

Author:
tobi
See Also:
Serialized Form

Nested Class Summary
 class MotionViewer.Player
          this class handles file input of AEs to control the number of events/sample or period of time in the sample, etc.
 class MotionViewer.ToggleLoggingAction
          this action toggles logging, possibily for all viewers depending on switch
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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 java.lang.String HELP_URL_JAVADOC
           
static java.lang.String HELP_URL_USER_GUIDE
           
 MotionViewer.Player player
           
 ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.ViewLoop viewLoop
           
 
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
MotionViewer(Chip2D chip)
          construct new instance and then set classname of device to show in it
 
Method Summary
 void doSingleStep()
           
 void dragEnter(java.awt.dnd.DropTargetDragEvent dtde)
           
 void dragExit(java.awt.dnd.DropTargetEvent dte)
           
 void dragOver(java.awt.dnd.DropTargetDragEvent dtde)
           
 void drop(java.awt.dnd.DropTargetDropEvent dtde)
           
 void dropActionChanged(java.awt.dnd.DropTargetDragEvent dtde)
           
 Chip2D getChip()
           
 javax.swing.JMenu getChipMenu()
           
 javax.swing.JMenu getFileMenu()
           
 int getFrameRate()
           
 javax.swing.JToggleButton getLoggingButton()
          this toggle button is used in CaviarViewer to assign an action to start and stop logging for (possibly) all viewers
 javax.swing.JMenuItem getLoggingMenuItem()
          used in CaviarViewer to control sync'ed logging
 MotionViewer.Player getPlayer()
           
 ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.PlayMode getPlayMode()
           
 boolean isLoggingPlaybackImmediatelyEnabled()
           
 boolean isPaused()
           
 boolean isSingleStep()
           
 void openLoggingFolderWindow()
           
 void propertyChange(java.beans.PropertyChangeEvent evt)
          messages come back here from e.g.
 void setChip(Chip2D chip)
           
 void setDoSingleStepEnabled(boolean yes)
           
 void setFrameRate(int renderDesiredFrameRateHz)
           
 void setLoggingButton(javax.swing.JToggleButton b)
           
 void setLoggingMenuItem(javax.swing.JMenuItem loggingMenuItem)
           
 void setLoggingPlaybackImmediatelyEnabled(boolean loggingPlaybackImmediatelyEnabled)
           
 void setPaused(boolean paused)
          sets paused.
 void setPlayMode(ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.PlayMode playMode)
          sets mode, LIVE, PLAYBACK, WAITING, etc
 void setTitleAccordingToState()
          this sets window title according to actual state
 void singleStepDone()
           
 java.io.File startLogging()
           
 void stopLogging()
           
 void stopMe()
           
 void toggleLogging()
           
 java.lang.String toString()
           
 
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, getIconImage, 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, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, 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, paint, 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, 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
 

Field Detail

HELP_URL_USER_GUIDE

public static java.lang.String HELP_URL_USER_GUIDE

HELP_URL_JAVADOC

public static java.lang.String HELP_URL_JAVADOC

viewLoop

public ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.ViewLoop viewLoop

player

public MotionViewer.Player player
Constructor Detail

MotionViewer

public MotionViewer(Chip2D chip)
construct new instance and then set classname of device to show in it

Method Detail

setTitleAccordingToState

public void setTitleAccordingToState()
this sets window title according to actual state


stopMe

public void stopMe()

doSingleStep

public void doSingleStep()

setDoSingleStepEnabled

public void setDoSingleStepEnabled(boolean yes)

isSingleStep

public boolean isSingleStep()

singleStepDone

public void singleStepDone()

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
messages come back here from e.g. programmatic state changes, like a new aePlayer file posiiton. This methods sets the GUI components to a consistent state, using a flag to tell the slider that it has not been set by a user mouse action

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

toggleLogging

public void toggleLogging()

openLoggingFolderWindow

public void openLoggingFolderWindow()

startLogging

public java.io.File startLogging()

stopLogging

public void stopLogging()

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

getFrameRate

public int getFrameRate()

setFrameRate

public void setFrameRate(int renderDesiredFrameRateHz)

isPaused

public boolean isPaused()

setPaused

public void setPaused(boolean paused)
sets paused. If viewing is synchronized, then all viwewers will be paused.

Parameters:
paused - true to pause

dragEnter

public void dragEnter(java.awt.dnd.DropTargetDragEvent dtde)
Specified by:
dragEnter in interface java.awt.dnd.DropTargetListener

dragExit

public void dragExit(java.awt.dnd.DropTargetEvent dte)
Specified by:
dragExit in interface java.awt.dnd.DropTargetListener

dragOver

public void dragOver(java.awt.dnd.DropTargetDragEvent dtde)
Specified by:
dragOver in interface java.awt.dnd.DropTargetListener

drop

public void drop(java.awt.dnd.DropTargetDropEvent dtde)
Specified by:
drop in interface java.awt.dnd.DropTargetListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DropTargetDragEvent dtde)
Specified by:
dropActionChanged in interface java.awt.dnd.DropTargetListener

isLoggingPlaybackImmediatelyEnabled

public boolean isLoggingPlaybackImmediatelyEnabled()

setLoggingPlaybackImmediatelyEnabled

public void setLoggingPlaybackImmediatelyEnabled(boolean loggingPlaybackImmediatelyEnabled)

getChip

public Chip2D getChip()
Returns:
the chip we are displaying

setChip

public void setChip(Chip2D chip)

getFileMenu

public javax.swing.JMenu getFileMenu()

getLoggingMenuItem

public javax.swing.JMenuItem getLoggingMenuItem()
used in CaviarViewer to control sync'ed logging


setLoggingMenuItem

public void setLoggingMenuItem(javax.swing.JMenuItem loggingMenuItem)

getLoggingButton

public javax.swing.JToggleButton getLoggingButton()
this toggle button is used in CaviarViewer to assign an action to start and stop logging for (possibly) all viewers


setLoggingButton

public void setLoggingButton(javax.swing.JToggleButton b)

getPlayer

public MotionViewer.Player getPlayer()
Returns:
the local player, unless we are part of a synchronized playback gruop

getPlayMode

public ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.PlayMode getPlayMode()

setPlayMode

public void setPlayMode(ch.unizh.ini.jaer.projects.opticalflow.graphics.MotionViewer.PlayMode playMode)
sets mode, LIVE, PLAYBACK, WAITING, etc


getChipMenu

public javax.swing.JMenu getChipMenu()

jAER project on SourceForge