Author: clopes
Date: 2012-06-12 09:07:18 -0700 (Tue, 12 Jun 2012)
New Revision: 29532

Modified:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/CySessionWriter.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryImpl.java
   
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryTest.java
   
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskTest.java
Log:
Fixes #1103 (SessionAboutToBeSavedEvent is fired twice): 
SaveSessionTaskFactoryImpl does not call CySessionManager.getCurrentSession() 
anymore.

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/CySessionWriter.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/CySessionWriter.java
      2012-06-12 14:57:22 UTC (rev 29531)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/CySessionWriter.java
      2012-06-12 16:07:18 UTC (rev 29532)
@@ -3,7 +3,6 @@
 
 import org.cytoscape.session.CySession;
 import org.cytoscape.io.CyFileFilter;
-import org.cytoscape.io.write.CySessionWriterFactory;
 import org.cytoscape.io.write.CySessionWriterManager;
 import org.cytoscape.io.write.CyWriter;
 import org.cytoscape.work.TaskMonitor;

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
      2012-06-12 14:57:22 UTC (rev 29531)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
      2012-06-12 16:07:18 UTC (rev 29532)
@@ -34,6 +34,7 @@
 import org.cytoscape.io.util.RecentlyOpenedTracker;
 import org.cytoscape.io.write.CySessionWriterManager;
 import org.cytoscape.session.CySession;
+import org.cytoscape.session.CySessionManager;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 
@@ -41,42 +42,41 @@
 
        private final CySessionWriterManager writerMgr;
        private final RecentlyOpenedTracker tracker;
-       
-       private final CySession session;
-       private final String fileName;
+       private final CySessionManager sessionMgr;
 
        /**
         * setAcceleratorCombo(KeyEvent.VK_S, ActionEvent.CTRL_MASK);
         */
        public SaveSessionTask(final CySessionWriterManager writerMgr,
-                       final CySession session, final String fileName, final 
RecentlyOpenedTracker tracker) {
+                                                  final CySessionManager 
sessionMgr,
+                                                  final RecentlyOpenedTracker 
tracker) {
                super();
 
                if (writerMgr == null)
                        throw new NullPointerException("CySessionWriterManager 
is null.");
-               if (fileName == null)
-                       throw new NullPointerException("Session file name is 
null.");
-               if (session == null)
-                       throw new NullPointerException("CySession is null.");
+               if (sessionMgr == null)
+                       throw new NullPointerException("CySessionManager is 
null.");
                
                this.writerMgr = writerMgr;
+               this.sessionMgr = sessionMgr;
                this.tracker = tracker;
-               this.session = session;
-               this.fileName = fileName;
        }
 
        @Override
        public void run(TaskMonitor taskMonitor) throws Exception {
-               taskMonitor.setProgress(0.0);
+               taskMonitor.setProgress(0.05);
+
+               final CySession session = sessionMgr.getCurrentSession();
+               final String fileName = sessionMgr.getCurrentSessionFileName();
                
                File file = new File(fileName);
                insertTasksAfterCurrentTask(new CySessionWriter(writerMgr, 
session, file));
                
                // Add this session file URL as the most recent file.
-               if ( !file.getName().endsWith(".cys"))
+               if (!file.getName().endsWith(".cys"))
                        file = new File(file.getPath() + ".cys");
+               
                tracker.add(file.toURI().toURL());
-               
                taskMonitor.setProgress(1.0);
        }
 }
\ No newline at end of file

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryImpl.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryImpl.java
   2012-06-12 14:57:22 UTC (rev 29531)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryImpl.java
   2012-06-12 16:07:18 UTC (rev 29532)
@@ -32,7 +32,6 @@
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.io.util.RecentlyOpenedTracker;
 import org.cytoscape.io.write.CySessionWriterManager;
-import org.cytoscape.session.CySession;
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.task.write.SaveSessionTaskFactory;
 import org.cytoscape.work.AbstractTaskFactory;
@@ -54,10 +53,6 @@
        }
 
        public TaskIterator createTaskIterator() {
-               final CySession session = sessionMgr.getCurrentSession();
-               if (session == null)
-                       throw new NullPointerException("Could not find current 
session.");
-               
                // Check session file name is set or not.
                final String sessionFileName = 
sessionMgr.getCurrentSessionFileName();          
                
@@ -65,6 +60,6 @@
                if (sessionFileName == null)
                        return new TaskIterator(new 
SaveSessionAsTask(writerMgr, sessionMgr, tracker, cyEventHelper));
                else
-                       return new TaskIterator(new SaveSessionTask(writerMgr, 
session, sessionFileName, tracker));
+                       return new TaskIterator(new SaveSessionTask(writerMgr, 
sessionMgr, tracker));
        }
 }

Modified: 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryTest.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryTest.java
   2012-06-12 14:57:22 UTC (rev 29531)
+++ 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskFactoryTest.java
   2012-06-12 16:07:18 UTC (rev 29532)
@@ -1,27 +1,29 @@
 package org.cytoscape.task.internal.session;
 
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
 
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.io.util.RecentlyOpenedTracker;
 import org.cytoscape.io.write.CySessionWriterManager;
+import org.cytoscape.session.CySession;
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.work.TaskIterator;
-import org.junit.Test;
 
+
 public class SaveSessionTaskFactoryTest {
 
-       @Test(expected=NullPointerException.class)
        public void testRun() throws Exception {
-
-               CySessionManager mgr = mock(CySessionManager.class);;
                CySessionWriterManager wmgr = 
mock(CySessionWriterManager.class);
                RecentlyOpenedTracker tracker = 
mock(RecentlyOpenedTracker.class);
                CyEventHelper cyEventHelper = mock(CyEventHelper.class);
 
+               CySession session = new CySession.Builder().build();
                
-               SaveSessionTaskFactoryImpl factory = new 
SaveSessionTaskFactoryImpl(wmgr,mgr,tracker, cyEventHelper);
+               CySessionManager mgr = mock(CySessionManager.class);
+               when(mgr.getCurrentSession()).thenReturn(session);
                
+               SaveSessionTaskFactoryImpl factory = new 
SaveSessionTaskFactoryImpl(wmgr, mgr, tracker, cyEventHelper);
+               
                TaskIterator ti = factory.createTaskIterator();
 //             assertNotNull(ti);
 //             

Modified: 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskTest.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskTest.java
  2012-06-12 14:57:22 UTC (rev 29531)
+++ 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/SaveSessionTaskTest.java
  2012-06-12 16:07:18 UTC (rev 29532)
@@ -3,6 +3,7 @@
 import org.cytoscape.io.util.RecentlyOpenedTracker;
 import org.cytoscape.io.write.CySessionWriterManager;
 import org.cytoscape.session.CySession;
+import org.cytoscape.session.CySessionManager;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.TaskMonitor;
 import org.junit.Before;
@@ -14,22 +15,19 @@
 public class SaveSessionTaskTest {
        
        @Mock private TaskMonitor tm;
-
-       private CySession session;
-       private String fileNameString = "testFile";
+       @Mock private CySessionManager mgr;
        @Mock private CySessionWriterManager writerMgr;
        @Mock private RecentlyOpenedTracker tracker;
+       private CySession session;
        
-       
        @Before
        public void initMocks() {
                MockitoAnnotations.initMocks(this);
        }
 
-
        @Test(expected=NullPointerException.class)
        public void testSaveSessionTask() throws Exception {
-               final SaveSessionTask t = new SaveSessionTask(writerMgr, 
session, fileNameString, tracker);
+               final SaveSessionTask t = new SaveSessionTask(writerMgr, mgr, 
tracker);
                t.setTaskIterator(new TaskIterator(t));
                
                t.run(tm);

-- 
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