org.jhotdraw.samples.svg
Class SVGApplet

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by org.jhotdraw.samples.svg.SVGApplet
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer

public class SVGApplet
extends javax.swing.JApplet

This is the base class for concrete implementations of SVG drawing applets.

The base class loads and saves drawings asynchronously and handles errors. The actual data transmission and the editing of drawings is the responsibility of the subclasses.

FIXME - Applet must offer to save file locally, if uploading to server failed.

FIXME - Applet must save changes locally and reload them, if the user navigated out of the page and back again, without saving the changes.

Version:
1.1 2008-05-22 Added Locale parameter.
1.0.1 2008-03-26 Fixed ClassCastException when attempting to display an error message in method save().
1.0 2006-07-08 Created.
Author:
Werner Randelshofer
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
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
private  SVGDrawingPanel drawingComponent
           
private  long start
           
private  java.lang.String version
          Lazily initialized in method getVersion();
 
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
SVGApplet()
           
 
Method Summary
protected  void close()
          Closes the applet.
protected  Drawing createDrawing()
          Creates the drawing.
protected  SVGDrawingPanel createDrawingComponent()
          Creates the drawing component.
 java.lang.String getAppletInfo()
          Returns information about the applet.
private  Drawing getDrawing()
          Gets the drawing from the drawing panel.
protected  SVGDrawingPanel getDrawingComponent()
           
 java.lang.String getParameter(java.lang.String name)
          Same as Applet.getParameter() but doesn't throw a NullPointerException when used without an Applet context.
 java.lang.String getParameter(java.lang.String name, java.lang.String defaultValue)
          Same as Applet.getParameter() but doesn't throw a NullPointerException when used without an Applet context.
 java.lang.String[][] getParameterInfo()
           
 java.lang.String getVersion()
          Gets the version of the applet.
private static java.lang.String htmlencode(java.lang.String str)
          Escapes all '<', '>' and '&' characters in a string.
 void init()
          Displays a progress indicator and then invokes loadDrawing on a worker thread.
private  void initComponents()
          This method is called from within the init() method to initialize the form.
protected  Drawing loadDrawing(ProgressIndicator progress)
          Loads the drawing.
static void main(java.lang.String[] args)
           
private  void setDrawing(Drawing d)
          Sets the drawing on the drawing panel.
 
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, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, 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, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, 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, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, 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, setMaximumSize, setMinimumSize, setName, setPreferredSize, 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
 

Field Detail

drawingComponent

private SVGDrawingPanel drawingComponent

version

private java.lang.String version
Lazily initialized in method getVersion();


start

private long start
Constructor Detail

SVGApplet

public SVGApplet()
Method Detail

getParameter

public java.lang.String getParameter(java.lang.String name)
Same as Applet.getParameter() but doesn't throw a NullPointerException when used without an Applet context.

Overrides:
getParameter in class java.applet.Applet

getParameter

public java.lang.String getParameter(java.lang.String name,
                                     java.lang.String defaultValue)
Same as Applet.getParameter() but doesn't throw a NullPointerException when used without an Applet context.


init

public final void init()
Displays a progress indicator and then invokes loadDrawing on a worker thread. Displays the drawing panel when finished successfully. Displays an error message when finished unsuccessfully.

Overrides:
init in class java.applet.Applet
See Also:
loadDrawing(org.jhotdraw.samples.svg.gui.ProgressIndicator)

setDrawing

private void setDrawing(Drawing d)
Sets the drawing on the drawing panel.


getDrawing

private Drawing getDrawing()
Gets the drawing from the drawing panel.


getVersion

public java.lang.String getVersion()
Gets the version of the applet.


getAppletInfo

public java.lang.String getAppletInfo()
Returns information about the applet.

Overrides:
getAppletInfo in class java.applet.Applet

createDrawing

protected Drawing createDrawing()
Creates the drawing.


createDrawingComponent

protected SVGDrawingPanel createDrawingComponent()
Creates the drawing component.


getDrawingComponent

protected SVGDrawingPanel getDrawingComponent()

getParameterInfo

public java.lang.String[][] getParameterInfo()
Overrides:
getParameterInfo in class java.applet.Applet

loadDrawing

protected Drawing loadDrawing(ProgressIndicator progress)
                       throws java.io.IOException
Loads the drawing. By convention this method is invoked on a worker thread.

Parameters:
progress - A ProgressIndicator to inform the user about the progress of the operation.
Returns:
The Drawing that was loaded.
Throws:
java.io.IOException

close

protected void close()
Closes the applet. This method can be implemented by invoking getAppletContext().showDocument(...).


htmlencode

private static java.lang.String htmlencode(java.lang.String str)
Escapes all '<', '>' and '&' characters in a string.

Parameters:
str - A String.
Returns:
HTMlEncoded String.

main

public static void main(java.lang.String[] args)

initComponents

private void initComponents()
This method is called from within the init() method to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.