Author: bobtarling
Date: 2010-12-04 09:19:43-0800
New Revision: 18875

Modified:
   trunk/src/argouml-app/src/org/argouml/kernel/DefaultUndoManager.java
   trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java

Log:
Make the undo manager project specific

Modified: trunk/src/argouml-app/src/org/argouml/kernel/DefaultUndoManager.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/DefaultUndoManager.java?view=diff&pathrev=18875&r1=18874&r2=18875
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/DefaultUndoManager.java        
(original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/DefaultUndoManager.java        
2010-12-04 09:19:43-0800
@@ -75,6 +75,11 @@
     private boolean newInteraction = true;
     
     /**
+     * The project to which this undo manager relates
+     */
+    private final Project project;
+    
+    /**
      * A description of the user interaction taking place.
      * Often this is the label of an Action.
      */
@@ -83,21 +88,30 @@
     private UndoStack undoStack = new UndoStack();
     private RedoStack redoStack = new RedoStack();
     
+    /**
+     * @deprecated in 0.32 alpha by Bob Tarling use DefaultUndoManager(Project)
+     */
+    @Deprecated
     private static final UndoManager INSTANCE = new DefaultUndoManager();
 
+    /**
+     * @deprecated in 0.32 alpha by Bob Tarling use DefaultUndoManager(Project)
+     */
+   @Deprecated
     private DefaultUndoManager() {
         super();
+        project = null;
+    }
+    
+    DefaultUndoManager(Project project) {
+        super();
+        this.project = project;
     }
     
     /**
-     * Get the UndoManager singleton instance.
-     * 
-     * @deprecated The DefaultUndoManager is only temporarily a singleton until
-     *             changes are made to GEF at which point there will be one 
undo
-     *             manager per ArgoUML project and this method will disappear.
-     * @return the singleton undo manager
+     * @deprecated in 0.32 alpha by Bob Tarling use DefaultUndoManager(Project)
      */
-    @Deprecated
+   @Deprecated
     public static UndoManager getInstance() {
         return INSTANCE;
     }

Modified: trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java?view=diff&pathrev=18875&r1=18874&r2=18875
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java       
(original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java       
2010-12-04 09:19:43-0800
@@ -167,7 +167,7 @@
 
     // TODO: Change this to use an UndoManager instance per project when
     // GEF has been enhanced.
-    private UndoManager undoManager = DefaultUndoManager.getInstance();
+    private UndoManager undoManager = new DefaultUndoManager(this);
 
     private boolean dirty = false;

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2687847

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to