CH.ifa.draw.application
Class DrawApplication

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by CH.ifa.draw.application.DrawApplication
All Implemented Interfaces:
DrawingEditor, PaletteListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
MDI_DrawApplication, NetApp, NothingApp, PertApplication, SplitPaneDrawApplication

public class DrawApplication
extends javax.swing.JFrame
implements DrawingEditor, PaletteListener

DrawApplication defines a standard presentation for standalone drawing editors. The presentation is customized in subclasses. The application is started as follows:

 public static void main(String[] args) {
     MayDrawApp window = new MyDrawApp();
     window.open();
 }
 

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int ALIGNMENT_MENU
          The index of the alignment menu in the menu bar.
static int ATTRIBUTES_MENU
          The index of the attributes menu in the menu bar.
static int EDIT_MENU
          The index of the edit menu in the menu bar.
static int FILE_MENU
          The index of the file menu in the menu bar.
static java.lang.String IMAGES
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DrawApplication()
          Constructs a drawing window with a default title.
DrawApplication(java.lang.String title)
          Constructs a drawing window with the given title.
 
Method Summary
protected  void addListeners()
          Registers the listeners for this window
protected  javax.swing.JMenu createAlignmentMenu()
          Creates the alignment menu.
protected  DrawApplication createApplication()
          Factory method which can be overriden by subclasses to create an instance of their type.
protected  javax.swing.JMenu createArrowMenu()
          Creates the arrows menu.
protected  javax.swing.JMenu createAttributesMenu()
          Creates the attributes menu and its submenus.
protected  javax.swing.JMenu createColorMenu(java.lang.String title, java.lang.String attribute)
          Creates the color menu.
protected  javax.swing.JComponent createContents(StandardDrawingView view)
          Creates the contents component of the application frame.
protected  javax.swing.JMenu createDebugMenu()
          Creates the debug menu.
protected  Drawing createDrawing()
          Creates the drawing used in this application.
protected  StandardDrawingView createDrawingView()
          Creates the drawing view used in this application.
protected  javax.swing.JMenu createEditMenu()
          Creates the edit menu.
protected  javax.swing.JMenu createFileMenu()
          Creates the file menu.
protected  javax.swing.JMenu createFontMenu()
          Creates the fonts menus.
protected  javax.swing.JMenu createFontSizeMenu()
          Creates the font size menu.
protected  javax.swing.JMenu createFontStyleMenu()
          Creates the font style menu with entries (Plain, Italic, Bold).
 javax.swing.JMenu createLookAndFeelMenu()
          Create a menu which allows the user to select a different look and feel at runtime.
protected  void createMenus(javax.swing.JMenuBar mb)
          Creates the standard menus.
protected  javax.swing.JFileChooser createOpenFileChooser()
          Create a file chooser for the open file dialog.
protected  javax.swing.JFileChooser createSaveFileChooser()
          Create a file chooser for the save file dialog.
protected  Tool createSelectionTool()
          Creates the selection tool used in this editor.
protected  javax.swing.JTextField createStatusLine()
          Creates the status line.
 StorageFormatManager createStorageFormatManager()
          Factory method to create a StorageFormatManager for supported storage formats.
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.JToolBar createToolPalette()
          Creates the tool palette.
protected  void createTools(javax.swing.JToolBar palette)
          Creates the tools.
protected  java.awt.Dimension defaultSize()
          Gets the default size of the window.
protected  void destroy()
          Handles additional clean up operations.
 Drawing drawing()
          Gets the current drawing.
 void exit()
          Exits the application.
 java.lang.String getApplicationName()
          Return the name of the application build from this skeleton application
protected  java.lang.String getDrawingTitle()
          Return the title of the currently selected drawing
protected  java.awt.Dimension getDrawingViewSize()
          Override to define the dimensions of the drawing view.
 StorageFormatManager getStorageFormatManager()
          Return the StorageFormatManager for this application.The StorageFormatManager is used when storing and restoring Drawing from the file system.
protected  void initDrawing()
           
protected  void loadDrawing(StorageFormat restoreFormat, java.lang.String file)
          Load a Drawing from a file
 void newView()
          Open a new view for this application containing a view of the drawing of the currently activated window.
 void newWindow()
          Open a new window for this application containing an new (empty) drawing.
 void open()
          Opens the window and initializes its contents.
 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 print()
          Prints the drawing.
 void promptNew()
          Resets the drawing to a new empty drawing.
 void promptOpen()
          Shows a file dialog and opens a drawing.
 void promptSaveAs()
          Shows a file dialog and saves drawing.
protected  void saveDrawing(StorageFormat storeFormat, java.lang.String file)
          Save a Drawing in a file
 void selectionChanged(DrawingView view)
          Handles a change of the current selection.
 void setApplicationName(java.lang.String applicationName)
          Set the name of the application build from this skeleton application
 void setDrawing(Drawing drawing)
          Sets the drawing to be edited.
protected  void setDrawingTitle(java.lang.String drawingTitle)
          Set the title of the currently selected drawing
 void showStatus(java.lang.String string)
          Shows a status message.
 Tool tool()
          Gets the current tool.
 void toolDone()
          Sets the default tool of the editor.
 DrawingView view()
          Gets the current drawing view.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, 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.MenuContainer
getFont, postEvent
 

Field Detail

IMAGES

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

FILE_MENU

public static final int FILE_MENU
The index of the file menu in the menu bar.

See Also:
Constant Field Values

EDIT_MENU

public static final int EDIT_MENU
The index of the edit menu in the menu bar.

See Also:
Constant Field Values

ALIGNMENT_MENU

public static final int ALIGNMENT_MENU
The index of the alignment menu in the menu bar.

See Also:
Constant Field Values

ATTRIBUTES_MENU

public static final int ATTRIBUTES_MENU
The index of the attributes menu in the menu bar.

See Also:
Constant Field Values
Constructor Detail

DrawApplication

public DrawApplication()
Constructs a drawing window with a default title.


DrawApplication

public DrawApplication(java.lang.String title)
Constructs a drawing window with the given title.

Method Detail

createApplication

protected DrawApplication createApplication()
Factory method which can be overriden by subclasses to create an instance of their type.

Returns:
newly created application

newView

public void newView()
Open a new view for this application containing a view of the drawing of the currently activated window.


newWindow

public void newWindow()
Open a new window for this application containing an new (empty) drawing.


open

public void open()
Opens the window and initializes its contents. Clients usually only call but don't override it.


addListeners

protected void addListeners()
Registers the listeners for this window


initDrawing

protected void initDrawing()

createMenus

protected void createMenus(javax.swing.JMenuBar mb)
Creates the standard menus. Clients override this method to add additional menus.


createFileMenu

protected javax.swing.JMenu createFileMenu()
Creates the file menu. Clients override this method to add additional menu items.


createEditMenu

protected javax.swing.JMenu createEditMenu()
Creates the edit menu. Clients override this method to add additional menu items.


createAlignmentMenu

protected javax.swing.JMenu createAlignmentMenu()
Creates the alignment menu. Clients override this method to add additional menu items.


createDebugMenu

protected javax.swing.JMenu createDebugMenu()
Creates the debug menu. Clients override this method to add additional menu items.


createAttributesMenu

protected javax.swing.JMenu createAttributesMenu()
Creates the attributes menu and its submenus. Clients override this method to add additional menu items.


createColorMenu

protected javax.swing.JMenu createColorMenu(java.lang.String title,
                                            java.lang.String attribute)
Creates the color menu.


createArrowMenu

protected javax.swing.JMenu createArrowMenu()
Creates the arrows menu.


createFontMenu

protected javax.swing.JMenu createFontMenu()
Creates the fonts menus. It installs all available fonts supported by the toolkit implementation.


createFontStyleMenu

protected javax.swing.JMenu createFontStyleMenu()
Creates the font style menu with entries (Plain, Italic, Bold).


createFontSizeMenu

protected javax.swing.JMenu createFontSizeMenu()
Creates the font size menu.


createLookAndFeelMenu

public javax.swing.JMenu createLookAndFeelMenu()
Create a menu which allows the user to select a different look and feel at runtime.


createToolPalette

protected javax.swing.JToolBar createToolPalette()
Creates the tool palette.


createTools

protected void createTools(javax.swing.JToolBar 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


createDrawingView

protected StandardDrawingView 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.


getDrawingViewSize

protected java.awt.Dimension getDrawingViewSize()
Override to define the dimensions of the drawing view.


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.


createContents

protected javax.swing.JComponent createContents(StandardDrawingView view)
Creates the contents component of the application frame. By default the DrawingView is returned in a JScrollPane.


createStorageFormatManager

public StorageFormatManager createStorageFormatManager()
Factory method to create a StorageFormatManager for supported storage formats. Different applications might want to use different storage formats and can return their own format manager by overriding this method.


getStorageFormatManager

public StorageFormatManager getStorageFormatManager()
Return the StorageFormatManager for this application.The StorageFormatManager is used when storing and restoring Drawing from the file system.


setDrawing

public void setDrawing(Drawing drawing)
Sets the drawing to be edited.


defaultSize

protected java.awt.Dimension defaultSize()
Gets the default size of the window.


createStatusLine

protected javax.swing.JTextField createStatusLine()
Creates the status line.


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.

Specified by:
drawing in interface DrawingEditor
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

toolDone

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

Specified by:
toolDone in interface DrawingEditor
See Also:
DrawingEditor

selectionChanged

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

Specified by:
selectionChanged in interface DrawingEditor
See Also:
DrawingEditor

showStatus

public void showStatus(java.lang.String string)
Shows a status message.

Specified by:
showStatus in interface DrawingEditor
See Also:
DrawingEditor

exit

public void exit()
Exits the application. You should never override this method


destroy

protected void destroy()
Handles additional clean up operations. Override to destroy or release drawing editor resources.


promptNew

public void promptNew()
Resets the drawing to a new empty drawing.


promptOpen

public void promptOpen()
Shows a file dialog and opens a drawing.


promptSaveAs

public void promptSaveAs()
Shows a file dialog and saves drawing.


createOpenFileChooser

protected javax.swing.JFileChooser createOpenFileChooser()
Create a file chooser for the open file dialog. Subclasses may override this method in order to customize the open file dialog.


createSaveFileChooser

protected javax.swing.JFileChooser createSaveFileChooser()
Create a file chooser for the save file dialog. Subclasses may override this method in order to customize the save file dialog.


print

public void print()
Prints the drawing.


saveDrawing

protected void saveDrawing(StorageFormat storeFormat,
                           java.lang.String file)
Save a Drawing in a file


loadDrawing

protected void loadDrawing(StorageFormat restoreFormat,
                           java.lang.String file)
Load a Drawing from a file


setDrawingTitle

protected void setDrawingTitle(java.lang.String drawingTitle)
Set the title of the currently selected drawing


getDrawingTitle

protected java.lang.String getDrawingTitle()
Return the title of the currently selected drawing


setApplicationName

public void setApplicationName(java.lang.String applicationName)
Set the name of the application build from this skeleton application


getApplicationName

public java.lang.String getApplicationName()
Return the name of the application build from this skeleton application