de.caff.maze
Class MazeCanvas

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 de.caff.maze.MazeCanvas
All Implemented Interfaces:
MazeFinishedListener, ProgressShower, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, javax.accessibility.Accessible

public class MazeCanvas
extends javax.swing.JPanel
implements ProgressShower, java.awt.print.Printable, MazeFinishedListener

A canvas for maze display (including progress display if creation takes too long).

See Also:
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String MESSAGE_CREATION_EXCEPTION
          Basic resource key for message when displaying dialog with exception during creation.
static java.lang.String RESOURCE_BUTTON_ABORT
          Basic resource key for abort button.
static java.lang.String TITLE_CREATION_EXCEPTION
          Basic resource key for title when displaying dialog with exception during creation.
 
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.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MazeCanvas(AbstractBasicMaze maze, MazePaintProperties drawProperties, MazePrintProperties printProperties)
          Create a maze canvas.
 
Method Summary
 void end()
          End the maze creation.
 void finished(Maze maze, java.lang.Throwable exception)
          Called if the maze creation is finished.
 AbstractBasicMaze getMaze()
          Get the maze which is displayed.
 void paintToGraphics(java.awt.Graphics2D g2, java.awt.Dimension size, MazePaintPropertiesProvider propertiesProvider)
          Paint to a graphics context.
 int print(java.awt.Graphics graphics, java.awt.print.PageFormat pageFormat, int pageIndex)
          Print the maze to the given print graphics.
 void redraw()
          Repaint the background buffer.
 boolean setProgress(int value)
          Display a progress value.
 void start(java.lang.String note, int maxValue)
          Called during maze creation when the creation starts.
 
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, 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, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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

RESOURCE_BUTTON_ABORT

public static final java.lang.String RESOURCE_BUTTON_ABORT
Basic resource key for abort button.

See Also:
Constant Field Values

MESSAGE_CREATION_EXCEPTION

public static final java.lang.String MESSAGE_CREATION_EXCEPTION
Basic resource key for message when displaying dialog with exception during creation.

See Also:
Constant Field Values

TITLE_CREATION_EXCEPTION

public static final java.lang.String TITLE_CREATION_EXCEPTION
Basic resource key for title when displaying dialog with exception during creation.

See Also:
Constant Field Values
Constructor Detail

MazeCanvas

public MazeCanvas(AbstractBasicMaze maze,
                  MazePaintProperties drawProperties,
                  MazePrintProperties printProperties)
Create a maze canvas.

Parameters:
maze - the maze to display
drawProperties - maze paint properties for drawing
printProperties - maze paint properties for printing
Method Detail

getMaze

public AbstractBasicMaze getMaze()
Get the maze which is displayed.

Returns:
the maze

start

public void start(java.lang.String note,
                  int maxValue)
Called during maze creation when the creation starts. This method waits a given amount of time and than displays a progress indicator instead of the maze.

Specified by:
start in interface ProgressShower
Parameters:
note - note to display with the progress indicator
maxValue - maximum value for progress

setProgress

public boolean setProgress(int value)
Display a progress value.

Specified by:
setProgress in interface ProgressShower
Parameters:
value - progress value
Returns:
true if the user requested an abort, otherwise false

end

public void end()
End the maze creation. This hides the progress indicator if necessary.

Specified by:
end in interface ProgressShower

print

public int print(java.awt.Graphics graphics,
                 java.awt.print.PageFormat pageFormat,
                 int pageIndex)
          throws java.awt.print.PrinterException
Print the maze to the given print graphics.

Specified by:
print in interface java.awt.print.Printable
Throws:
java.awt.print.PrinterException - on printer errors
Parameters:
graphics - print graphics
pageFormat - page format description
pageIndex - page index
Returns:
either Printable.PAGE_EXISTS if the page was successfully rendered or Printable.NO_SUCH_PAGE if the page index is invalid

redraw

public void redraw()
Repaint the background buffer.


finished

public void finished(Maze maze,
                     java.lang.Throwable exception)
Called if the maze creation is finished.

Specified by:
finished in interface MazeFinishedListener
Parameters:
maze - maze which creation is finished
exception - if not null this exception occured during maze creation

paintToGraphics

public void paintToGraphics(java.awt.Graphics2D g2,
                            java.awt.Dimension size,
                            MazePaintPropertiesProvider propertiesProvider)
Paint to a graphics context.

Parameters:
g2 - graphics context
size - assume size of target
propertiesProvider - paint properties