JHotDraw 7.0.9

org.jhotdraw.app
Class AbstractProject

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.app.AbstractProject
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Project
Direct Known Subclasses:
DrawProject, NetProject, ODGProject, PertProject, SVGProject, TeddyProject

public abstract class AbstractProject
extends javax.swing.JPanel
implements Project

AbstractProject.

Version:
1.1.1 2006-04-11 Fixed project file preferences.
1.1 2006-02-16 Support for preferences added.
1.0 January 3, 2006 Created.
Author:
Werner Randelshofer
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
protected  java.util.concurrent.Executor executor
          The executor used to perform background tasks for the Project in a controlled manner.
protected  java.io.File file
          The project file.
protected  javax.swing.JFileChooser openChooser
          The file chooser used for opening the project.
protected  javax.swing.JFileChooser saveChooser
          The file chooser used for saving the project.
 
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
AbstractProject()
          Creates a new instance.
 
Method Summary
protected  javax.swing.JFileChooser createOpenChooser()
           
protected  javax.swing.JFileChooser createSaveChooser()
           
 void dispose()
          Gets rid of all the resources of the project.
 void execute(java.lang.Runnable worker)
          Executes the specified runnable on the worker thread of the project.
 javax.swing.Action getAction(java.lang.String id)
          Returns the action with the specified id.
 Application getApplication()
          Gets the application to which this project belongs.
 javax.swing.JComponent getComponent()
          Returns the visual component of the project.
 java.io.File getFile()
          Returns the project file.
 int getMultipleOpenId()
          Returns the multiple open id.
 javax.swing.JFileChooser getOpenChooser()
          Gets the open file chooser for the project.
 javax.swing.JFileChooser getSaveChooser()
          Gets the save file chooser for the project.
 boolean hasUnsavedChanges()
          Returns true, if the project has unsaved changes.
 void init()
          Initializes the project.
 boolean isShowing()
          This is used by Application to keep track if a project is showing.
 void markChangesAsSaved()
          Marks all changes as saved.
 void putAction(java.lang.String id, javax.swing.Action action)
          Puts an action with the specified id.
 void setApplication(Application newValue)
          Sets the application of the project.
 void setFile(java.io.File newValue)
          Sets the project file.
protected  void setHasUnsavedChanges(boolean newValue)
           
 void setMultipleOpenId(int newValue)
          Sets the multiple open id.
 void setShowing(boolean newValue)
          This is used by Application to keep track if a project is showing.
 
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, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, setBackground, 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, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, 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, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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 org.jhotdraw.app.Project
addPropertyChangeListener, clear, isEnabled, read, removePropertyChangeListener, setEnabled, write
 

Field Detail

saveChooser

protected javax.swing.JFileChooser saveChooser
The file chooser used for saving the project. Has a null value, if the file chooser has not been used yet.


openChooser

protected javax.swing.JFileChooser openChooser
The file chooser used for opening the project. Has a null value, if the file chooser has not been used yet.


file

protected java.io.File file
The project file. Has a null value, if the project has not been loaded from a file or has not been saved yet.


executor

protected java.util.concurrent.Executor executor
The executor used to perform background tasks for the Project in a controlled manner. This executor ensures that all background tasks are executed sequentually.

Constructor Detail

AbstractProject

public AbstractProject()
Creates a new instance.

Method Detail

init

public void init()
Description copied from interface: Project
Initializes the project. This is invoked right before the application shows the project. A project must not consume many resources before method init() is called. This is crucial for the responsivenes of an application.

After a project has been initialized using init(), either method clear() must be called or method read, in order to fully initialize a Project.

Specified by:
init in interface Project

setApplication

public void setApplication(Application newValue)
Description copied from interface: Project
Sets the application of the project. By convention, this is only invoked by Application.addProject() and Application.removeProject(). This is a bound property.

Specified by:
setApplication in interface Project

getApplication

public Application getApplication()
Description copied from interface: Project
Gets the application to which this project belongs.

Specified by:
getApplication in interface Project

getComponent

public javax.swing.JComponent getComponent()
Description copied from interface: Project
Returns the visual component of the project.

Specified by:
getComponent in interface Project

getFile

public java.io.File getFile()
Description copied from interface: Project
Returns the project file.

Specified by:
getFile in interface Project

setFile

public void setFile(java.io.File newValue)
Description copied from interface: Project
Sets the project file. This is a bound property.

Specified by:
setFile in interface Project

getOpenChooser

public javax.swing.JFileChooser getOpenChooser()
Gets the open file chooser for the project.

Specified by:
getOpenChooser in interface Project

createOpenChooser

protected javax.swing.JFileChooser createOpenChooser()

getSaveChooser

public javax.swing.JFileChooser getSaveChooser()
Gets the save file chooser for the project.

Specified by:
getSaveChooser in interface Project

createSaveChooser

protected javax.swing.JFileChooser createSaveChooser()

hasUnsavedChanges

public boolean hasUnsavedChanges()
Returns true, if the project has unsaved changes. This is a bound property.

Specified by:
hasUnsavedChanges in interface Project

setHasUnsavedChanges

protected void setHasUnsavedChanges(boolean newValue)

dispose

public void dispose()
Gets rid of all the resources of the project. No other methods should be invoked on the project afterwards.

Specified by:
dispose in interface Project

getAction

public javax.swing.Action getAction(java.lang.String id)
Returns the action with the specified id.

Specified by:
getAction in interface Project

putAction

public void putAction(java.lang.String id,
                      javax.swing.Action action)
Puts an action with the specified id.

Specified by:
putAction in interface Project

execute

public void execute(java.lang.Runnable worker)
Executes the specified runnable on the worker thread of the project. Execution is perfomred sequentially in the same sequence as the runnables have been passed to this method.

Specified by:
execute in interface Project

setMultipleOpenId

public void setMultipleOpenId(int newValue)
Description copied from interface: Project
Sets the multiple open id. The id is used to help distinguish multiply opened projects. The id should be displayed in the title of the project.

Specified by:
setMultipleOpenId in interface Project

getMultipleOpenId

public int getMultipleOpenId()
Description copied from interface: Project
Returns the multiple open id. If a project is open only once this should be 1.

Specified by:
getMultipleOpenId in interface Project

setShowing

public void setShowing(boolean newValue)
Description copied from interface: Project
This is used by Application to keep track if a project is showing.

Specified by:
setShowing in interface Project

isShowing

public boolean isShowing()
Description copied from interface: Project
This is used by Application to keep track if a project is showing.

Specified by:
isShowing in interface Project
Overrides:
isShowing in class java.awt.Component

markChangesAsSaved

public void markChangesAsSaved()
Description copied from interface: Project
Marks all changes as saved. This changes the state of hasUnsavedChanges to false.

Specified by:
markChangesAsSaved in interface Project

Copyright 1996-2007 (c) JHotDraw.org.
Some rights reserved.