CH.ifa.draw.contrib
Class MDI_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
                          extended by CH.ifa.draw.contrib.MDI_DrawApplication
All Implemented Interfaces:
DrawingEditor, PaletteListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.InternalFrameListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
JavaDrawApp

public class MDI_DrawApplication
extends DrawApplication
implements javax.swing.event.InternalFrameListener

Many applications have the ability to deal with multiple internal windows. MDI_DrawApplications provides the basic facilities to make use of MDI in JHotDraw. Its main tasks are to create a content for DrawApplications, which is embedded in internal frames, to maintain a list with all internal frames and to manage the switching between them.

Version:
JHotDraw 5.2 31.08.1999
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
 
Fields inherited from class CH.ifa.draw.application.DrawApplication
ALIGNMENT_MENU, ATTRIBUTES_MENU, EDIT_MENU, FILE_MENU, 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
MDI_DrawApplication()
          Constructs a drawing window with a default title.
MDI_DrawApplication(java.lang.String title)
          Constructs a drawing window with the given title.
 
Method Summary
 void activateFrame(MDI_InternalFrame newFrame)
          Activate an internal frame upon which the selected tools operate.
 void addInternalFrameListener(javax.swing.event.InternalFrameListener newMDIListener)
          Add a new listener to the applications internal frames.
protected  DrawApplication createApplication()
          Factory method which can be overriden by subclasses to create an instance of their type.
protected  javax.swing.JComponent createContents(StandardDrawingView view)
          Creates the contents component of the application frame.
protected  MDI_InternalFrame createInternalFrame()
          Factory method which creates an internal frame.
 javax.swing.JComponent getDesktop()
          Get the component, in which the content is embedded.
protected  java.lang.String getDrawingTitle()
          Get the title for the drawing.
 boolean hasInternalFrames()
           
 void internalFrameActivated(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame gets selected.
 void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame is closed.
 void internalFrameClosing(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called before a internal frame is closed.
 void internalFrameDeactivated(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame gets deactivated.
 void internalFrameDeiconified(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame gets deiconified.
 void internalFrameIconified(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame gets iconified.
 void internalFrameOpened(javax.swing.event.InternalFrameEvent e)
          Notification method from InternalFrameListener, which is called if a internal frame is opend.
 void newView()
          Open a new view for this application containing a view of the drawing of the currently activated window.
 void newWindow()
          Method to create a new internal frame.
 void promptNew()
          Resets the drawing to a new empty drawing.
 void removeInternalFrameListener(javax.swing.event.InternalFrameListener oldMDIListener)
          Remove a InternalFrameListeners from the application.
protected  void setDesktop(javax.swing.JComponent newDesktop)
          Set the component, in which the content is embedded.
protected  void setDrawingTitle(java.lang.String newDrawingTitle)
          Set the title for the drawing.
 
Methods inherited from class CH.ifa.draw.application.DrawApplication
addListeners, createAlignmentMenu, createArrowMenu, createAttributesMenu, createColorMenu, createDebugMenu, createDrawing, createDrawingView, createEditMenu, createFileMenu, createFontMenu, createFontSizeMenu, createFontStyleMenu, createLookAndFeelMenu, createMenus, createOpenFileChooser, createSaveFileChooser, createSelectionTool, createStatusLine, createStorageFormatManager, createToolButton, createToolPalette, createTools, defaultSize, destroy, drawing, exit, getApplicationName, getDrawingViewSize, getStorageFormatManager, initDrawing, loadDrawing, open, paletteUserOver, paletteUserSelected, print, promptOpen, promptSaveAs, saveDrawing, selectionChanged, setApplicationName, setDrawing, showStatus, tool, toolDone, 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, 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, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, transferFocusBackward, 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
 

Constructor Detail

MDI_DrawApplication

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


MDI_DrawApplication

public MDI_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.

Overrides:
createApplication in class DrawApplication
Returns:
newly created application

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.

Overrides:
createContents in class DrawApplication

createInternalFrame

protected MDI_InternalFrame createInternalFrame()
Factory method which creates an internal frame. Subclasses may override this method to provide their own implementations of MDI_InternalFrame


promptNew

public void promptNew()
Resets the drawing to a new empty drawing. If no internal frame exists then open a new internal frame.

Overrides:
promptNew in class DrawApplication

newWindow

public void newWindow()
Method to create a new internal frame. Applications that want to create a new internal drawing view should call this method.

Overrides:
newWindow in class DrawApplication

newView

public void newView()
Description copied from class: DrawApplication
Open a new view for this application containing a view of the drawing of the currently activated window.

Overrides:
newView in class DrawApplication

setDesktop

protected void setDesktop(javax.swing.JComponent newDesktop)
Set the component, in which the content is embedded. This component acts as a desktop for the content.


getDesktop

public javax.swing.JComponent getDesktop()
Get the component, in which the content is embedded. This component acts as a desktop for the content.


addInternalFrameListener

public void addInternalFrameListener(javax.swing.event.InternalFrameListener newMDIListener)
Add a new listener to the applications internal frames. If a new internal frame is created, all currently registered InternalFrameListeners are added.

Parameters:
newMDIListener - listener to be added

removeInternalFrameListener

public void removeInternalFrameListener(javax.swing.event.InternalFrameListener oldMDIListener)
Remove a InternalFrameListeners from the application.

Parameters:
oldMDIListener - listener to be removed

activateFrame

public void activateFrame(MDI_InternalFrame newFrame)
Activate an internal frame upon which the selected tools operate. The currently activated DrawgingView is backed up for later restorage.


internalFrameActivated

public void internalFrameActivated(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame gets selected.

Specified by:
internalFrameActivated in interface javax.swing.event.InternalFrameListener

internalFrameOpened

public void internalFrameOpened(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame is opend.

Specified by:
internalFrameOpened in interface javax.swing.event.InternalFrameListener

internalFrameClosing

public void internalFrameClosing(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called before a internal frame is closed.

Specified by:
internalFrameClosing in interface javax.swing.event.InternalFrameListener

internalFrameClosed

public void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame is closed.

Specified by:
internalFrameClosed in interface javax.swing.event.InternalFrameListener

internalFrameIconified

public void internalFrameIconified(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame gets iconified.

Specified by:
internalFrameIconified in interface javax.swing.event.InternalFrameListener

internalFrameDeiconified

public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame gets deiconified.

Specified by:
internalFrameDeiconified in interface javax.swing.event.InternalFrameListener

internalFrameDeactivated

public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent e)
Notification method from InternalFrameListener, which is called if a internal frame gets deactivated.

Specified by:
internalFrameDeactivated in interface javax.swing.event.InternalFrameListener

setDrawingTitle

protected void setDrawingTitle(java.lang.String newDrawingTitle)
Set the title for the drawing. The title also appears in the internal frame title bar. A name is assigned when a drawing saved or a saved drawing is loaded. The file name is the drawing title. If the drawing has not been saved before then the drawing title is "untitled".

Overrides:
setDrawingTitle in class DrawApplication

getDrawingTitle

protected java.lang.String getDrawingTitle()
Get the title for the drawing.

Overrides:
getDrawingTitle in class DrawApplication

hasInternalFrames

public boolean hasInternalFrames()