inpro.gui
Class CursorCanvas

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 inpro.gui.Canvas
                      extended by inpro.gui.CursorCanvas
All Implemented Interfaces:
edu.cmu.sphinx.instrumentation.Resetable, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
GreifArmGUI

public abstract class CursorCanvas
extends Canvas

PentoCursorCanvas, extends Canvas with a hand cursor implementation a cursor is placed on the board and can be controlled via mouse-like operations: the cursor can be pressed, released or the state can be toggled and it can be moved around, either immediately or following a path from the current position operations are also available using relative block units actions with the cursor will trigger the corresponding operations of PentoCanvas to reflect the changes of the hand cursor on the pentomino board also, this class will trigger repaint() when appropriate subclasses may want to hide the cursor by setting cursorVisible to false

Author:
timo
See Also:
Serialized Form

Nested Class Summary
private  class CursorCanvas.MoveThread
           
 
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
 int buttonClickDelay
           
protected  java.awt.Image cursorFree
           
protected  java.awt.Image cursorGrab
           
 Point cursorPosition
           
 boolean cursorVisible
           
 boolean grabbing
           
protected  Point imageCenter
           
protected  double MOVE_SPEED
           
private  CursorCanvas.MoveThread moveThread
           
 
Fields inherited from class inpro.gui.Canvas
activeTile, clickOffset, draggingTile, labelsVisible, RELATIVE_HEIGHT, RELATIVE_WIDTH, SCALE, tiles
 
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
CursorCanvas()
           
CursorCanvas(boolean cursorVisible)
           
 
Method Summary
protected  void addButton(java.lang.String label, java.lang.String command, int num)
           
private  void cursorMoved()
           
 void cursorMoveSlowlyTo(int x, int y)
           
 void cursorMoveSlowlyTo(java.awt.Point p)
           
 void cursorMoveSlowlyToAndWait(int x, int y)
           
 void cursorMoveSlowlyToRel(double x, double y)
           
 void cursorMoveTo(int x, int y)
           
 void cursorMoveTo(Point cursorPosition)
           
 void cursorMoveToRel(double x, double y)
           
 void cursorPress()
           
 void cursorPressAt(int x, int y)
           
 void cursorPressAtRel(double x, double y)
           
 void cursorRelease()
           
 void cursorReleaseAt(int x, int y)
           
 void cursorReleaseAtRel(double x, double y)
           
 void cursorToggle()
           
 void cursorToggleAt(int x, int y)
           
 void cursorToggleAtRel(double x, double y)
           
 void paint(java.awt.Graphics g)
           
 void paintCursor(java.awt.Graphics g)
           
 void reset()
           
 boolean tileSelect(int x, int y)
           
 
Methods inherited from class inpro.gui.Canvas
actionPerformed, createTiles, getTiles, getTilesAt, paintTiles, paintTopTiles, setLabels, setPositions, showTiles, superPaint, tileMove, tileMove, tileMoveRel, tileRelease, tileReleaseRel, tileSelectRel, tileUnselect, translateBlockToPixel, translatePixelToBlock
 
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, 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

cursorGrab

protected java.awt.Image cursorGrab

cursorFree

protected java.awt.Image cursorFree

grabbing

public boolean grabbing

cursorPosition

public Point cursorPosition

imageCenter

protected Point imageCenter

cursorVisible

public boolean cursorVisible

buttonClickDelay

public int buttonClickDelay

MOVE_SPEED

protected double MOVE_SPEED

moveThread

private CursorCanvas.MoveThread moveThread
Constructor Detail

CursorCanvas

public CursorCanvas()

CursorCanvas

public CursorCanvas(boolean cursorVisible)
Method Detail

reset

public void reset()
Specified by:
reset in interface edu.cmu.sphinx.instrumentation.Resetable
Overrides:
reset in class Canvas

paintCursor

public void paintCursor(java.awt.Graphics g)

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class Canvas

cursorToggle

public void cursorToggle()

cursorToggleAtRel

public void cursorToggleAtRel(double x,
                              double y)

cursorToggleAt

public void cursorToggleAt(int x,
                           int y)

cursorPress

public void cursorPress()

cursorPressAtRel

public void cursorPressAtRel(double x,
                             double y)

cursorPressAt

public void cursorPressAt(int x,
                          int y)

cursorRelease

public void cursorRelease()

cursorReleaseAtRel

public void cursorReleaseAtRel(double x,
                               double y)

cursorReleaseAt

public void cursorReleaseAt(int x,
                            int y)

cursorMoved

private void cursorMoved()

cursorMoveToRel

public void cursorMoveToRel(double x,
                            double y)

cursorMoveTo

public void cursorMoveTo(int x,
                         int y)

cursorMoveTo

public void cursorMoveTo(Point cursorPosition)

cursorMoveSlowlyToRel

public void cursorMoveSlowlyToRel(double x,
                                  double y)

cursorMoveSlowlyTo

public void cursorMoveSlowlyTo(java.awt.Point p)

cursorMoveSlowlyTo

public void cursorMoveSlowlyTo(int x,
                               int y)

cursorMoveSlowlyToAndWait

public void cursorMoveSlowlyToAndWait(int x,
                                      int y)

tileSelect

public boolean tileSelect(int x,
                          int y)
Overrides:
tileSelect in class Canvas

addButton

protected void addButton(java.lang.String label,
                         java.lang.String command,
                         int num)