org.jhotdraw.applet
Class DrawApplet

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Panel
              extended byjava.applet.Applet
                  extended byjavax.swing.JApplet
                      extended byorg.jhotdraw.applet.DrawApplet
All Implemented Interfaces:
javax.accessibility.Accessible, DrawingEditor, FigureSelectionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, PaletteListener, javax.swing.RootPaneContainer, java.io.Serializable, VersionRequester
Direct Known Subclasses:
JavaDrawApplet, NothingApplet, PertApplet

public class DrawApplet
extends javax.swing.JApplet
implements DrawingEditor, PaletteListener, VersionRequester

DrawApplication defines a standard presentation for a drawing editor that is run as an applet. The presentation is customized in subclasses.

Supported applet parameters:
DRAWINGS: a blank separated list of drawing names that is shown in the drawings choice.

Version:
<$CURRENT_VERSION$>
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String IMAGES
           
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
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
DrawApplet()
           
 
Method Summary
 void addViewChangeListener(ViewChangeListener vsl)
           
protected  void createAttributeChoices(javax.swing.JPanel panel)
          Creates the attribute choices.
protected  javax.swing.JPanel createAttributesPanel()
          Creates the attributes panel.
protected  javax.swing.JPanel createButtonPanel()
          Creates the buttons panel.
protected  void createButtons(javax.swing.JPanel panel)
          Creates the buttons shown in the buttons panel.
protected  javax.swing.JComboBox createColorChoice(FigureAttributeConstant attribute)
          Creates the color choice for the given attribute.
protected  Drawing createDrawing()
          Creates the drawing used in this application.
protected  DrawingView createDrawingView()
          Creates the drawing view used in this application.
protected  javax.swing.JComboBox createFontChoice()
          Creates the font choice.
protected  Iconkit createIconkit()
           
protected  Tool createSelectionTool()
          Creates the selection tool used in this editor.
protected  ToolButton createToolButton(java.lang.String iconName, java.lang.String toolName, Tool tool)
          Creates a tool button with the given image, tool, and text
protected  javax.swing.JPanel createToolPalette()
          Creates the tools palette.
protected  void createTools(javax.swing.JPanel palette)
          Creates the tools.
 Drawing drawing()
          Gets the current drawing.
 void figureSelectionChanged(DrawingView view)
          Handles a change of the current selection.
 java.lang.String[] getRequiredVersions()
          Subclasses should override this method to specify to which versions of JHotDraw they are compatible.
 UndoManager getUndoManager()
           
protected  VersionControlStrategy getVersionControlStrategy()
           
 void init()
          Initializes the applet and creates its contents.
protected  void loadDrawing(java.lang.String param)
           
 void paletteUserOver(PaletteButton button, boolean inside)
          Handles when the mouse enters or leaves a palette button.
 void paletteUserSelected(PaletteButton button)
          Handles a user selection in the palette.
 void removeViewChangeListener(ViewChangeListener vsl)
           
protected  void setBufferedDisplayUpdate()
           
protected  void setSimpleDisplayUpdate()
           
protected  void setUndoManager(UndoManager newUndoManager)
           
protected  void showHelp()
          Shows a help page for the applet.
 Tool tool()
          Gets the current tool.
 void toolDone()
          Sets the default tool of the editor.
 DrawingView view()
          Gets the current drawing view.
 DrawingView[] views()
           
 void viewSelectionChanged(DrawingView oldView, DrawingView newView)
           
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, 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 org.jhotdraw.framework.DrawingEditor
showStatus
 

Field Detail

IMAGES

public static final java.lang.String IMAGES
See Also:
Constant Field Values
Constructor Detail

DrawApplet

public DrawApplet()
Method Detail

init

public void init()
Initializes the applet and creates its contents.


addViewChangeListener

public void addViewChangeListener(ViewChangeListener vsl)
Specified by:
addViewChangeListener in interface DrawingEditor

removeViewChangeListener

public void removeViewChangeListener(ViewChangeListener vsl)
Specified by:
removeViewChangeListener in interface DrawingEditor

createIconkit

protected Iconkit createIconkit()

createAttributesPanel

protected javax.swing.JPanel createAttributesPanel()
Creates the attributes panel.


createAttributeChoices

protected void createAttributeChoices(javax.swing.JPanel panel)
Creates the attribute choices. Override to add additional choices.


createColorChoice

protected javax.swing.JComboBox createColorChoice(FigureAttributeConstant attribute)
Creates the color choice for the given attribute.


createFontChoice

protected javax.swing.JComboBox createFontChoice()
Creates the font choice. The choice is filled with all the fonts supported by the toolkit.


createButtonPanel

protected javax.swing.JPanel createButtonPanel()
Creates the buttons panel.


createButtons

protected void createButtons(javax.swing.JPanel panel)
Creates the buttons shown in the buttons panel. Override to add additional buttons.

Parameters:
panel - the buttons panel.

createToolPalette

protected javax.swing.JPanel createToolPalette()
Creates the tools palette.


createTools

protected void createTools(javax.swing.JPanel palette)
Creates the tools. By default only the selection tool is added. Override this method to add additional tools. Call the inherited method to include the selection tool.

Parameters:
palette - the palette where the tools are added.

createSelectionTool

protected Tool createSelectionTool()
Creates the selection tool used in this editor. Override to use a custom selection tool.


createToolButton

protected ToolButton createToolButton(java.lang.String iconName,
                                      java.lang.String toolName,
                                      Tool tool)
Creates a tool button with the given image, tool, and text


createDrawing

protected Drawing createDrawing()
Creates the drawing used in this application. You need to override this method to use a Drawing subclass in your application. By default a standard Drawing is returned.


createDrawingView

protected DrawingView createDrawingView()
Creates the drawing view used in this application. You need to override this method to use a DrawingView subclass in your application. By default a standard DrawingView is returned.


paletteUserSelected

public void paletteUserSelected(PaletteButton button)
Handles a user selection in the palette.

Specified by:
paletteUserSelected in interface PaletteListener
See Also:
PaletteListener

paletteUserOver

public void paletteUserOver(PaletteButton button,
                            boolean inside)
Handles when the mouse enters or leaves a palette button.

Specified by:
paletteUserOver in interface PaletteListener
See Also:
PaletteListener

drawing

public Drawing drawing()
Gets the current drawing.

See Also:
DrawingEditor

tool

public Tool tool()
Gets the current tool.

Specified by:
tool in interface DrawingEditor
See Also:
DrawingEditor

view

public DrawingView view()
Gets the current drawing view.

Specified by:
view in interface DrawingEditor
See Also:
DrawingEditor

views

public DrawingView[] views()
Specified by:
views in interface DrawingEditor

toolDone

public void toolDone()
Sets the default tool of the editor.

Specified by:
toolDone in interface DrawingEditor
See Also:
DrawingEditor

figureSelectionChanged

public void figureSelectionChanged(DrawingView view)
Handles a change of the current selection. Updates all menu items that are selection sensitive.

Specified by:
figureSelectionChanged in interface DrawingEditor
See Also:
DrawingEditor

viewSelectionChanged

public void viewSelectionChanged(DrawingView oldView,
                                 DrawingView newView)

loadDrawing

protected void loadDrawing(java.lang.String param)

setSimpleDisplayUpdate

protected void setSimpleDisplayUpdate()

setBufferedDisplayUpdate

protected void setBufferedDisplayUpdate()

showHelp

protected void showHelp()
Shows a help page for the applet. The URL of the help page is derived as follows: codeBase+appletClassname+Help.html"


setUndoManager

protected void setUndoManager(UndoManager newUndoManager)

getUndoManager

public UndoManager getUndoManager()
Specified by:
getUndoManager in interface DrawingEditor

getVersionControlStrategy

protected VersionControlStrategy getVersionControlStrategy()

getRequiredVersions

public java.lang.String[] getRequiredVersions()
Subclasses should override this method to specify to which versions of JHotDraw they are compatible. A string array is returned so it is possible to specify several version numbers of JHotDraw to which the application is compatible with.

Specified by:
getRequiredVersions in interface VersionRequester
Returns:
all versions number of JHotDraw the application is compatible with.