JHotDraw 7.0.9

org.jhotdraw.app.action
Class AbstractSaveBeforeAction

java.lang.Object
  extended by javax.swing.AbstractAction
      extended by org.jhotdraw.app.action.AbstractProjectAction
          extended by org.jhotdraw.app.action.AbstractSaveBeforeAction
All Implemented Interfaces:
java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.swing.Action
Direct Known Subclasses:
ClearAction, CloseAction, LoadAction, LoadRecentAction

public abstract class AbstractSaveBeforeAction
extends AbstractProjectAction

Base class for actions that can only be safely performed when the project has no unsaved changes.

If the project has no unsaved changes, method doIt is invoked immediately. If unsaved changes are present, a dialog is shown asking whether the user wants to discard the changes, cancel or save the changes before doing it. If the user chooses to discard the chanegs, toIt is invoked immediately. If the user chooses to cancel, the action is aborted. If the user chooses to save the changes, the project is saved, and doIt is only invoked after the project was successfully saved.

Version:
2.0 2006-06-15 Reworked.
1.2 2006-05-19 Make filename acceptable by ExtensionFileFilter.
1.1 2006-05-03 Localized messages.
1.0 27. September 2005 Created.
Author:
Werner Randelshofer
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.AbstractAction
changeSupport, enabled
 
Fields inherited from interface javax.swing.Action
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SHORT_DESCRIPTION, SMALL_ICON
 
Constructor Summary
AbstractSaveBeforeAction(Application app)
          Creates a new instance.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
           
protected abstract  void doIt(Project p)
           
protected  void fileSaved(Project p, java.io.File file, java.lang.Object value)
           
protected  void saveChanges(Project p)
           
protected  void saveToFile(Project p, java.io.File file)
           
 
Methods inherited from class org.jhotdraw.app.action.AbstractProjectAction
getApplication, getCurrentProject, getPropertyName, installProjectListeners, isEnabled, setEnabled, setPropertyName, uninstallProjectListeners, updateEnabled, updateProject, updateProperty
 
Methods inherited from class javax.swing.AbstractAction
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, putValue, removePropertyChangeListener
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSaveBeforeAction

public AbstractSaveBeforeAction(Application app)
Creates a new instance.

Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)

saveChanges

protected void saveChanges(Project p)

saveToFile

protected void saveToFile(Project p,
                          java.io.File file)

fileSaved

protected void fileSaved(Project p,
                         java.io.File file,
                         java.lang.Object value)

doIt

protected abstract void doIt(Project p)

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