JHotDraw 6.0b1

org.jhotdraw.standard
Class NullDrawingView

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 org.jhotdraw.standard.NullDrawingView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, DrawingChangeListener, DrawingView

public class NullDrawingView
extends javax.swing.JPanel
implements DrawingView

This DrawingView provides a very basic implementation. It does not perform any functionality apart from keeping track of its state represented by some important fields. It is a Null-value object and is used instead of a null reference to avoid null pointer exception. This concept is known as the Null-value object bug pattern.

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
 
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
protected NullDrawingView(DrawingEditor editor)
           
 
Method Summary
 Figure add(Figure figure)
          Adds a figure to the drawing.
 void addAll(java.util.Collection figures)
          Adds a collection of figures to the drawing.
 void addFigureSelectionListener(FigureSelectionListener fsl)
          Add a listener for selection changes in this DrawingView.
 void addToSelection(Figure figure)
          Adds a figure to the current selection.
 void addToSelectionAll(java.util.Collection figures)
          Adds a Collection of figures to the current selection.
 void addToSelectionAll(FigureEnumeration fe)
          Adds a FigureEnumeration to the current selection.
 void checkDamage()
          Checks whether the drawing has some accumulated damage
 void clearSelection()
          Clears the current selection.
 java.awt.Image createImage(int width, int height)
          Creates an image with the given dimensions
 void draw(java.awt.Graphics g, FigureEnumeration fe)
          Draws the given figures.
 void drawAll(java.awt.Graphics g)
          Draws the contents of the drawing view.
 void drawBackground(java.awt.Graphics g)
          Draws the background.
 void drawDrawing(java.awt.Graphics g)
          Draws the drawing.
 void drawHandles(java.awt.Graphics g)
          Draws the currently active handles.
 Drawing drawing()
          Gets the drawing.
 void drawingInvalidated(DrawingChangeEvent e)
          Sent when an area is invalid
 void drawingRequestUpdate(DrawingChangeEvent e)
          Sent when the drawing wants to be refreshed
 void drawingTitleChanged(DrawingChangeEvent e)
          Sent when the drawing Title has changed
 DrawingEditor editor()
          Gets the editor.
 Handle findHandle(int x, int y)
          Finds a handle at the given coordinates.
 void freezeView()
          Freezes the view by acquiring the drawing lock.
 java.awt.Color getBackground()
          Gets the background color of the DrawingView
 FigureEnumeration getConnectionFigures(Figure inFigure)
          Returns a FigureEnumeration of connection figures
 PointConstrainer getConstrainer()
          Gets the current grid setting.
 Painter getDisplayUpdate()
          Gets the current display update strategy.
 FigureSelection getFigureSelection()
          Gets the current selection as a FigureSelection.
 java.awt.Graphics getGraphics()
          Gets a graphic to draw into
static DrawingView getManagedDrawingView(DrawingEditor editor)
           
 java.awt.Dimension getMinimumSize()
          Gets the minimum dimension of the drawing.
 java.awt.Dimension getPreferredSize()
          Gets the preferred dimension of the drawing..
 java.awt.Dimension getSize()
          Gets the size of the drawing.
 FigureEnumeration insertFigures(FigureEnumeration inFigures, int dx, int dy, boolean bCheck)
          Inserts figures in a drawing at given offset.
 boolean isFigureSelected(Figure checkFigure)
          Test whether a given figure is selected.
 boolean isInteractive()
          Check whether the DrawingView is interactive, i.e.
 java.awt.Point lastClick()
          Gets the position of the last click inside the view.
 void paint(java.awt.Graphics g)
          Paints the drawing view.
 Figure remove(Figure figure)
          Removes a figure from the drawing.
 void removeFigureSelectionListener(FigureSelectionListener fsl)
          Remove a listener for selection changes in this DrawingView.
 void removeFromSelection(Figure figure)
          Removes a figure from the selection.
 void repairDamage()
          Repair the damaged area
 FigureEnumeration selection()
          Gets an enumeration over the currently selected figures.
 int selectionCount()
          Gets the number of selected figures.
 FigureEnumeration selectionZOrdered()
          Gets the currently seleced figures in Z order.
 void setBackground(java.awt.Color c)
          Sets the background color of the DrawingView
 void setConstrainer(PointConstrainer p)
          Sets the current point constrainer.
 void setCursor(Cursor c)
          Sets the cursor of the DrawingView
 void setDisplayUpdate(Painter newUpdateStrategy)
          Sets the current display update strategy.
 void setDrawing(Drawing d)
          Sets and installs another drawing in the view.
 void setEditor(DrawingEditor editor)
          Sets the view's editor.
 void toggleSelection(Figure figure)
          If a figure isn't selected it is added to the selection.
 Tool tool()
          Gets the current tool.
 void unfreezeView()
          Unfreezes the view by releasing the drawing lock.
 
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, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, 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, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, 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
 
Methods inherited from interface java.awt.image.ImageObserver
imageUpdate
 

Constructor Detail

NullDrawingView

protected NullDrawingView(DrawingEditor editor)
Method Detail

setEditor

public void setEditor(DrawingEditor editor)
Sets the view's editor.

Specified by:
setEditor in interface DrawingView

tool

public Tool tool()
Gets the current tool.

Specified by:
tool in interface DrawingView

drawing

public Drawing drawing()
Gets the drawing.

Specified by:
drawing in interface DrawingView

setDrawing

public void setDrawing(Drawing d)
Sets and installs another drawing in the view.

Specified by:
setDrawing in interface DrawingView

editor

public DrawingEditor editor()
Gets the editor.

Specified by:
editor in interface DrawingView

add

public Figure add(Figure figure)
Adds a figure to the drawing.

Specified by:
add in interface DrawingView
Returns:
the added figure.

remove

public Figure remove(Figure figure)
Removes a figure from the drawing.

Specified by:
remove in interface DrawingView
Returns:
the removed figure

addAll

public void addAll(java.util.Collection figures)
Adds a collection of figures to the drawing.

Specified by:
addAll in interface DrawingView

getSize

public java.awt.Dimension getSize()
Gets the size of the drawing.

Specified by:
getSize in interface DrawingView
Overrides:
getSize in class java.awt.Component

getMinimumSize

public java.awt.Dimension getMinimumSize()
Gets the minimum dimension of the drawing.

Specified by:
getMinimumSize in interface DrawingView
Overrides:
getMinimumSize in class javax.swing.JComponent

getPreferredSize

public java.awt.Dimension getPreferredSize()
Gets the preferred dimension of the drawing..

Specified by:
getPreferredSize in interface DrawingView
Overrides:
getPreferredSize in class javax.swing.JComponent

setDisplayUpdate

public void setDisplayUpdate(Painter newUpdateStrategy)
Sets the current display update strategy.

Specified by:
setDisplayUpdate in interface DrawingView
See Also:
Painter

getDisplayUpdate

public Painter getDisplayUpdate()
Gets the current display update strategy.

Specified by:
getDisplayUpdate in interface DrawingView
See Also:
Painter

selection

public FigureEnumeration selection()
Gets an enumeration over the currently selected figures. The selection is a snapshot of the current selection which does not get changed anymore

Specified by:
selection in interface DrawingView
Returns:
an enumeration with the currently selected figures.

selectionZOrdered

public FigureEnumeration selectionZOrdered()
Gets the currently seleced figures in Z order.

Specified by:
selectionZOrdered in interface DrawingView
Returns:
a FigureEnumeration with the selected figures. This enumeration represents a snapshot of the current selection.
See Also:
selection()

selectionCount

public int selectionCount()
Gets the number of selected figures.

Specified by:
selectionCount in interface DrawingView

isFigureSelected

public boolean isFigureSelected(Figure checkFigure)
Test whether a given figure is selected.

Specified by:
isFigureSelected in interface DrawingView

addToSelection

public void addToSelection(Figure figure)
Adds a figure to the current selection.

Specified by:
addToSelection in interface DrawingView

addToSelectionAll

public void addToSelectionAll(java.util.Collection figures)
Adds a Collection of figures to the current selection.

Specified by:
addToSelectionAll in interface DrawingView

addToSelectionAll

public void addToSelectionAll(FigureEnumeration fe)
Adds a FigureEnumeration to the current selection.

Specified by:
addToSelectionAll in interface DrawingView

removeFromSelection

public void removeFromSelection(Figure figure)
Removes a figure from the selection.

Specified by:
removeFromSelection in interface DrawingView

toggleSelection

public void toggleSelection(Figure figure)
If a figure isn't selected it is added to the selection. Otherwise it is removed from the selection.

Specified by:
toggleSelection in interface DrawingView

clearSelection

public void clearSelection()
Clears the current selection.

Specified by:
clearSelection in interface DrawingView

getFigureSelection

public FigureSelection getFigureSelection()
Gets the current selection as a FigureSelection. A FigureSelection can be cut, copied, pasted.

Specified by:
getFigureSelection in interface DrawingView

findHandle

public Handle findHandle(int x,
                         int y)
Finds a handle at the given coordinates.

Specified by:
findHandle in interface DrawingView
Returns:
the hit handle, null if no handle is found.

lastClick

public java.awt.Point lastClick()
Gets the position of the last click inside the view.

Specified by:
lastClick in interface DrawingView

setConstrainer

public void setConstrainer(PointConstrainer p)
Sets the current point constrainer.

Specified by:
setConstrainer in interface DrawingView

getConstrainer

public PointConstrainer getConstrainer()
Gets the current grid setting.

Specified by:
getConstrainer in interface DrawingView

checkDamage

public void checkDamage()
Checks whether the drawing has some accumulated damage

Specified by:
checkDamage in interface DrawingView

repairDamage

public void repairDamage()
Repair the damaged area

Specified by:
repairDamage in interface DrawingView

paint

public void paint(java.awt.Graphics g)
Paints the drawing view. The actual drawing is delegated to the current update strategy.

Specified by:
paint in interface DrawingView
Overrides:
paint in class javax.swing.JComponent
See Also:
Painter

createImage

public java.awt.Image createImage(int width,
                                  int height)
Creates an image with the given dimensions

Specified by:
createImage in interface DrawingView
Overrides:
createImage in class java.awt.Component

getGraphics

public java.awt.Graphics getGraphics()
Gets a graphic to draw into

Specified by:
getGraphics in interface DrawingView
Overrides:
getGraphics in class javax.swing.JComponent

getBackground

public java.awt.Color getBackground()
Gets the background color of the DrawingView

Specified by:
getBackground in interface DrawingView
Overrides:
getBackground in class java.awt.Component

setBackground

public void setBackground(java.awt.Color c)
Sets the background color of the DrawingView

Specified by:
setBackground in interface DrawingView
Overrides:
setBackground in class javax.swing.JComponent

drawAll

public void drawAll(java.awt.Graphics g)
Draws the contents of the drawing view. The view has three layers: background, drawing, handles. The layers are drawn in back to front order.

Specified by:
drawAll in interface DrawingView

draw

public void draw(java.awt.Graphics g,
                 FigureEnumeration fe)
Draws the given figures. The view has three layers: background, drawing, handles. The layers are drawn in back to front order.

Specified by:
draw in interface DrawingView

drawHandles

public void drawHandles(java.awt.Graphics g)
Draws the currently active handles.

Specified by:
drawHandles in interface DrawingView

drawDrawing

public void drawDrawing(java.awt.Graphics g)
Draws the drawing.

Specified by:
drawDrawing in interface DrawingView

drawBackground

public void drawBackground(java.awt.Graphics g)
Draws the background. If a background pattern is set it is used to fill the background. Otherwise the background is filled in the background color.

Specified by:
drawBackground in interface DrawingView

setCursor

public void setCursor(Cursor c)
Sets the cursor of the DrawingView

Specified by:
setCursor in interface DrawingView

freezeView

public void freezeView()
Freezes the view by acquiring the drawing lock.

Specified by:
freezeView in interface DrawingView
See Also:
Drawing.lock()

unfreezeView

public void unfreezeView()
Unfreezes the view by releasing the drawing lock.

Specified by:
unfreezeView in interface DrawingView
See Also:
Drawing.unlock()

addFigureSelectionListener

public void addFigureSelectionListener(FigureSelectionListener fsl)
Add a listener for selection changes in this DrawingView.

Specified by:
addFigureSelectionListener in interface DrawingView
Parameters:
fsl - jhotdraw.framework.FigureSelectionListener

removeFigureSelectionListener

public void removeFigureSelectionListener(FigureSelectionListener fsl)
Remove a listener for selection changes in this DrawingView.

Specified by:
removeFigureSelectionListener in interface DrawingView
Parameters:
fsl - jhotdraw.framework.FigureSelectionListener

getConnectionFigures

public FigureEnumeration getConnectionFigures(Figure inFigure)
Returns a FigureEnumeration of connection figures

Specified by:
getConnectionFigures in interface DrawingView

insertFigures

public FigureEnumeration insertFigures(FigureEnumeration inFigures,
                                       int dx,
                                       int dy,
                                       boolean bCheck)
Inserts figures in a drawing at given offset. Optional check for connection figures

Specified by:
insertFigures in interface DrawingView
Returns:
enumeration which has been added to the drawing. The figures in the enumeration can have changed during adding them (e.g. they could have been decorated).

drawingInvalidated

public void drawingInvalidated(DrawingChangeEvent e)
Description copied from interface: DrawingChangeListener
Sent when an area is invalid

Specified by:
drawingInvalidated in interface DrawingChangeListener

drawingRequestUpdate

public void drawingRequestUpdate(DrawingChangeEvent e)
Description copied from interface: DrawingChangeListener
Sent when the drawing wants to be refreshed

Specified by:
drawingRequestUpdate in interface DrawingChangeListener

drawingTitleChanged

public void drawingTitleChanged(DrawingChangeEvent e)
Description copied from interface: DrawingChangeListener
Sent when the drawing Title has changed

Specified by:
drawingTitleChanged in interface DrawingChangeListener

isInteractive

public boolean isInteractive()
Description copied from interface: DrawingView
Check whether the DrawingView is interactive, i.e. whether it accepts user input and whether it can display a drawing.

Specified by:
isInteractive in interface DrawingView

getManagedDrawingView

public static DrawingView getManagedDrawingView(DrawingEditor editor)

JHotDraw 6.0b1