Author: jm
Date: 2012-01-25 11:54:59 -0800 (Wed, 25 Jan 2012)
New Revision: 28107

Modified:
   
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/undo/UndoSupport.java
   core3/impl/trunk/session-impl/pom.xml
   
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CyActivator.java
   
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
   
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/UndoSupportImpl.java
Log:
Fixes #620: Undo stack now gets cleared when current session is discarded

Modified: 
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/undo/UndoSupport.java
===================================================================
--- 
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/undo/UndoSupport.java 
    2012-01-25 19:48:22 UTC (rev 28106)
+++ 
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/undo/UndoSupport.java 
    2012-01-25 19:54:59 UTC (rev 28107)
@@ -40,4 +40,9 @@
         * @param edit The edit to be added to the Cytoscape undo stack.
         */
        void postEdit(AbstractCyEdit edit);
+       
+       /**
+        * Clears the undo stack.
+        */
+       void reset();
 }

Modified: core3/impl/trunk/session-impl/pom.xml
===================================================================
--- core3/impl/trunk/session-impl/pom.xml       2012-01-25 19:48:22 UTC (rev 
28106)
+++ core3/impl/trunk/session-impl/pom.xml       2012-01-25 19:54:59 UTC (rev 
28107)
@@ -86,6 +86,10 @@
                </dependency>
                <dependency>
                        <groupId>org.cytoscape</groupId>
+                       <artifactId>work-api</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
                        <artifactId>session-api</artifactId>
                        <scope>test</scope>
                        <type>test-jar</type>

Modified: 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CyActivator.java
 2012-01-25 19:48:22 UTC (rev 28106)
+++ 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CyActivator.java
 2012-01-25 19:54:59 UTC (rev 28107)
@@ -14,6 +14,7 @@
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.work.undo.UndoSupport;
 import org.osgi.framework.BundleContext;
 
 
@@ -33,9 +34,9 @@
                CyNetworkTableManager cyNetworkTableManagerServiceRef = 
getService(bc,CyNetworkTableManager.class);
                CyRootNetworkManager cyRootNetworkManagerServiceRef = 
getService(bc,CyRootNetworkManager.class);
                CyServiceRegistrar cyServiceRegistrarServiceRef = 
getService(bc,CyServiceRegistrar.class);
-               
+               UndoSupport undo = getService(bc,UndoSupport.class);
                CyNetworkNamingImpl cyNetworkNaming = new 
CyNetworkNamingImpl(cyNetworkManagerServiceRef);
-               CySessionManagerImpl cySessionManager = new 
CySessionManagerImpl(cyEventHelperServiceRef,cyNetworkManagerServiceRef,cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,visualMappingManagerServiceRef,cyNetworkViewManagerServiceRef,cyRootNetworkManagerServiceRef,cyServiceRegistrarServiceRef);
+               CySessionManagerImpl cySessionManager = new 
CySessionManagerImpl(cyEventHelperServiceRef,cyNetworkManagerServiceRef,cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,visualMappingManagerServiceRef,cyNetworkViewManagerServiceRef,cyRootNetworkManagerServiceRef,cyServiceRegistrarServiceRef,
 undo);
                
                registerService(bc,cyNetworkNaming,CyNetworkNaming.class, new 
Properties());
                registerService(bc,cySessionManager,CySessionManager.class, new 
Properties());

Modified: 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
===================================================================
--- 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
        2012-01-25 19:48:22 UTC (rev 28106)
+++ 
core3/impl/trunk/session-impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
        2012-01-25 19:54:59 UTC (rev 28107)
@@ -71,6 +71,7 @@
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
+import org.cytoscape.work.undo.UndoSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -92,6 +93,7 @@
        private final CyNetworkViewManager nvMgr;
        private final CyRootNetworkManager rootNetMgr;
        private final CyServiceRegistrar registrar;
+       private final UndoSupport undo;
 
        private final Set<CyProperty<?>> sessionProperties;
 
@@ -104,7 +106,8 @@
                                                                final 
VisualMappingManager vmMgr,
                                                                final 
CyNetworkViewManager nvMgr,
                                                                final 
CyRootNetworkManager rootNetMgr,
-                                                               final 
CyServiceRegistrar registrar) {
+                                                               final 
CyServiceRegistrar registrar,
+                                                               final 
UndoSupport undo) {
                this.cyEventHelper = cyEventHelper;
                this.netMgr = netMgr;
                this.tblMgr = tblMgr;
@@ -114,6 +117,7 @@
                this.rootNetMgr = rootNetMgr;
                this.registrar = registrar;
                this.sessionProperties = new HashSet<CyProperty<?>>();
+               this.undo = undo;
        }
 
        @Override
@@ -436,5 +440,8 @@
                                registrar.unregisterAllServices(cyProps);
                        }
                }
+               
+               // Clear undo stack
+               undo.reset();
        }
 }

Modified: 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/UndoSupportImpl.java
===================================================================
--- 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/UndoSupportImpl.java
        2012-01-25 19:48:22 UTC (rev 28106)
+++ 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/UndoSupportImpl.java
        2012-01-25 19:54:59 UTC (rev 28107)
@@ -40,7 +40,6 @@
 import javax.swing.undo.UndoableEditSupport;
 import javax.swing.undo.AbstractUndoableEdit;
 
-import org.cytoscape.work.undo.UndoSupport;
 import org.cytoscape.work.undo.AbstractCyEdit;
 import org.cytoscape.work.swing.undo.SwingUndoSupport;
 
@@ -83,6 +82,11 @@
                if ( edit != null )
                        m_undoSupport.postEdit( new SwingEditWrapper(edit) );   
        }
+       
+       @Override
+       public void reset() {
+               m_undoManager.discardAllEdits();
+       }
 
        /**
         * Creates a Swing UndoableEdit by wrapping a Cytoscape AbstractCyEdit.

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to