inpro.gui
Class Canvas

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
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:
CursorCanvas

public abstract class Canvas
extends javax.swing.JPanel
implements java.awt.event.ActionListener, edu.cmu.sphinx.instrumentation.Resetable

a canvas that contains @see{Tile}s which can be selected, moved around, placed, etc. tiles within the canvas live in a logical coordinate system, which is mapped to screen pixels using the final SCALE variable. the canvas has a size of RELATIVE_WIDTH * RELATIVE_HEIGHT a tile in a canvas can be selected and this tile can then be moved around

See Also:
Tile, Serialized Form

Nested Class Summary
 
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
protected  Tile activeTile
           
(package private)  Point clickOffset
           
protected  Tile draggingTile
           
 boolean labelsVisible
           
protected static int RELATIVE_HEIGHT
          height of the canvas
protected static int RELATIVE_WIDTH
          width of the canvas
static int SCALE
          scales the logical coordinate system of the canvas to pixel coordinates
private  boolean showTiles
           
protected  java.util.List<Tile> 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
Canvas()
           
Canvas(java.awt.Dimension preferredSize)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
          do tile actions for actions performed on buttons
protected abstract  java.util.List<Tile> createTiles()
           
 java.util.List<Tile> getTiles()
           
 java.util.List<Tile> getTilesAt(java.awt.Point p)
          unlike tileSelect, this returns the tiles at a point regardless of their selection/dragging/placement state
 void paint(java.awt.Graphics g)
           
 void paintTiles(java.awt.Graphics g)
           
 void paintTopTiles(java.awt.Graphics g)
           
 void reset()
           
 void setLabels(java.util.List<java.lang.String> labels)
           
protected  void setPositions(java.util.List<Point> positions)
           
 void showTiles(boolean show)
           
protected  void superPaint(java.awt.Graphics g)
           
 void tileMove(int x, int y)
           
 void tileMove(Point p)
           
 void tileMoveRel(double x, double y)
           
 void tileRelease(int x, int y)
           
 void tileReleaseRel(double x, double y)
           
 boolean tileSelect(int x, int y)
           
 boolean tileSelectRel(double x, double y)
           
 void tileUnselect()
           
static int translateBlockToPixel(double t)
          translate coordinates given in blocks into coordinates given in pixels
static double translatePixelToBlock(int t)
           
 
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

RELATIVE_WIDTH

protected static final int RELATIVE_WIDTH
width of the canvas

See Also:
Constant Field Values

RELATIVE_HEIGHT

protected static final int RELATIVE_HEIGHT
height of the canvas

See Also:
Constant Field Values

SCALE

public static final int SCALE
scales the logical coordinate system of the canvas to pixel coordinates

See Also:
Constant Field Values

tiles

protected java.util.List<Tile> tiles

draggingTile

protected Tile draggingTile

activeTile

protected Tile activeTile

clickOffset

Point clickOffset

showTiles

private boolean showTiles

labelsVisible

public boolean labelsVisible
Constructor Detail

Canvas

public Canvas()

Canvas

public Canvas(java.awt.Dimension preferredSize)
Method Detail

createTiles

protected abstract java.util.List<Tile> createTiles()

showTiles

public void showTiles(boolean show)

getTiles

public java.util.List<Tile> getTiles()

setPositions

protected void setPositions(java.util.List<Point> positions)

reset

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

setLabels

public void setLabels(java.util.List<java.lang.String> labels)

paintTiles

public void paintTiles(java.awt.Graphics g)

paintTopTiles

public void paintTopTiles(java.awt.Graphics g)

superPaint

protected void superPaint(java.awt.Graphics g)

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class javax.swing.JComponent

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
do tile actions for actions performed on buttons

Specified by:
actionPerformed in interface java.awt.event.ActionListener

getTilesAt

public java.util.List<Tile> getTilesAt(java.awt.Point p)
unlike tileSelect, this returns the tiles at a point regardless of their selection/dragging/placement state

Parameters:
p -
Returns:
a list of tiles (possibly empty but never null) at point t

tileSelectRel

public boolean tileSelectRel(double x,
                             double y)

tileSelect

public boolean tileSelect(int x,
                          int y)

tileUnselect

public void tileUnselect()

tileReleaseRel

public void tileReleaseRel(double x,
                           double y)

tileRelease

public void tileRelease(int x,
                        int y)

tileMoveRel

public void tileMoveRel(double x,
                        double y)

tileMove

public void tileMove(int x,
                     int y)

tileMove

public void tileMove(Point p)

translateBlockToPixel

public static int translateBlockToPixel(double t)
translate coordinates given in blocks into coordinates given in pixels

Parameters:
t - coordinate in block-domain
Returns:
coordinate in pixel-domain

translatePixelToBlock

public static double translatePixelToBlock(int t)