etomica.graphics
Class DisplayCanvas

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 etomica.graphics.DisplayCanvas
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
DisplayBoxCanvas1D, DisplayBoxCanvas2D, DisplayBoxCanvasG3DSys, DisplayPolytopeCanvas2D, DisplayPolytopeCanvasG3DSys

public abstract class DisplayCanvas
extends JPanel

Superclass for classes that display information from simulation by painting to a canvas. Defines methods useful for dealing with mouse and key events targeted at the display. Much of the class is involved with defining event handling methods to permit display to be moved or resized; in the future these functions will be handled instead using awt component functions.

See Also:
DisplayBox.Canvas, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Controller controller
           
protected  DisplayBox displayBox
           
static int DRAW_BOUNDARY_ALL
           
static int DRAW_BOUNDARY_MAX
           
static int DRAW_BOUNDARY_NONE
           
static int DRAW_BOUNDARY_OUTLINE
           
static int DRAW_BOUNDARY_SHELL
           
protected  Image offScreen
           
protected  Graphics osg
           
protected  Pixel pixel
           
 
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
DisplayCanvas(Controller controller)
          Construct a DisplayCanvas using the given controller (which may be null).
 
Method Summary
protected  void createOffScreen(int w, int h)
           
protected abstract  void doPaint(Graphics g)
           
protected  void ensureOffScreen()
           
 int getDrawBoundary()
           
 Pixel getPixelUnit()
          Returns unit for conversion between simulation units and display pixels.
 float getPrevX()
           
 float getPrevY()
           
 float getShiftX()
           
 float getShiftY()
           
 boolean getWriteScale()
           
 float getXRot()
           
 float getYRot()
           
 float getZoom()
           
 boolean isMovable()
           
 boolean isResizable()
           
 void paint(Graphics g)
           
 void repaint()
           
 void reshape(int width, int height)
          Same as setSize, but included to implement DisplayCanvasInterface, which has this for compatibility with OpenGL.
 void setDrawBoundary(int b)
           
 void setMovable(boolean b)
           
 void setPixelUnit(Pixel pixel)
          Sets unit for conversion between simulation units and display pixels.
 void setPrevX(float x)
           
 void setPrevY(float y)
           
 void setResizable(boolean b)
           
 void setShiftX(float x)
           
 void setShiftY(float y)
           
 void setWriteScale(boolean s)
           
 void setXRot(float x)
           
 void setYRot(float y)
           
 void setZoom(float z)
           
 void startRotate(float x, float y)
           
 void stopRotate()
           
 
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, 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

DRAW_BOUNDARY_NONE

public static final int DRAW_BOUNDARY_NONE
See Also:
Constant Field Values

DRAW_BOUNDARY_OUTLINE

public static final int DRAW_BOUNDARY_OUTLINE
See Also:
Constant Field Values

DRAW_BOUNDARY_SHELL

public static final int DRAW_BOUNDARY_SHELL
See Also:
Constant Field Values

DRAW_BOUNDARY_ALL

public static final int DRAW_BOUNDARY_ALL
See Also:
Constant Field Values

DRAW_BOUNDARY_MAX

public static final int DRAW_BOUNDARY_MAX
See Also:
Constant Field Values

offScreen

protected Image offScreen

osg

protected Graphics osg

displayBox

protected DisplayBox displayBox

pixel

protected Pixel pixel

controller

protected final Controller controller
Constructor Detail

DisplayCanvas

public DisplayCanvas(Controller controller)
Construct a DisplayCanvas using the given controller (which may be null). If a controller is given, the DisplayCanvas will suppress paint events from the system that occur while the controller is active.

Method Detail

ensureOffScreen

protected void ensureOffScreen()

createOffScreen

protected void createOffScreen(int w,
                               int h)

doPaint

protected abstract void doPaint(Graphics g)

paint

public void paint(Graphics g)
Overrides:
paint in class JComponent

repaint

public void repaint()
Overrides:
repaint in class Component

reshape

public void reshape(int width,
                    int height)
Same as setSize, but included to implement DisplayCanvasInterface, which has this for compatibility with OpenGL.


setMovable

public void setMovable(boolean b)

isMovable

public boolean isMovable()

setResizable

public void setResizable(boolean b)

isResizable

public boolean isResizable()

setWriteScale

public void setWriteScale(boolean s)

getWriteScale

public boolean getWriteScale()

setDrawBoundary

public void setDrawBoundary(int b)

getDrawBoundary

public int getDrawBoundary()

setShiftX

public void setShiftX(float x)

setShiftY

public void setShiftY(float y)

setPrevX

public void setPrevX(float x)

setPrevY

public void setPrevY(float y)

setXRot

public void setXRot(float x)

setYRot

public void setYRot(float y)

setZoom

public void setZoom(float z)

getShiftX

public float getShiftX()

getShiftY

public float getShiftY()

getPrevX

public float getPrevX()

getPrevY

public float getPrevY()

getXRot

public float getXRot()

getYRot

public float getYRot()

getZoom

public float getZoom()

startRotate

public void startRotate(float x,
                        float y)

stopRotate

public void stopRotate()

getPixelUnit

public Pixel getPixelUnit()
Returns unit for conversion between simulation units and display pixels.


setPixelUnit

public void setPixelUnit(Pixel pixel)
Sets unit for conversion between simulation units and display pixels.