Author: kono
Date: 2012-02-28 14:18:48 -0800 (Tue, 28 Feb 2012)
New Revision: 28388

Added:
   
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTask.java
   
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTaskFactory.java
Modified:
   
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
Log:
refs #700 Image saving timing had been fixed.  Saving task will be called after 
local library update.

Modified: 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
      2012-02-28 21:51:05 UTC (rev 28387)
+++ 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
      2012-02-28 22:18:48 UTC (rev 28388)
@@ -250,24 +250,13 @@
         */
        @Override
        public void handleEvent(final SessionAboutToBeSavedEvent e) {
-               // Create Task
-               final PersistImageTaskFactory factory = new 
PersistImageTaskFactory(imageHomeDirectory, this);
+               final SaveGraphicsToSessionTaskFactory factory = new 
SaveGraphicsToSessionTaskFactory(imageHomeDirectory, this, e);
+
                try {
                        taskManager.execute(factory);
                } catch (Exception ex) {
                        logger.error("Could not save images to .", ex);
                }
-               // Add it to the apps list
-               final List<File> fileList = new ArrayList<File>();
-               final String[] fileArray = imageHomeDirectory.list();
-               for(final String file: fileArray)
-                       fileList.add(new File(imageHomeDirectory, file));
-
-               try {
-                       e.addAppFiles(APP_NAME, fileList);
-               } catch (Exception ex) {
-                       logger.error("Error adding " + SESSION_IMAGE_DIR_NAME + 
" file to be saved in the session.", ex);
-               }
        }
 
        @Override

Added: 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTask.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTask.java
                              (rev 0)
+++ 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTask.java
      2012-02-28 22:18:48 UTC (rev 28388)
@@ -0,0 +1,39 @@
+package org.cytoscape.ding.customgraphicsmgr.internal;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.cytoscape.session.events.SessionAboutToBeSavedEvent;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskMonitor;
+
+public class SaveGraphicsToSessionTask implements Task {
+       
+       private static final String APP_NAME = 
"org.cytoscape.ding.customgraphicsmgr";
+       
+       private final File imageHomeDirectory;
+       private final SessionAboutToBeSavedEvent e;
+       
+       SaveGraphicsToSessionTask(final File imageHomeDirectory, final 
SessionAboutToBeSavedEvent e) {
+               this.imageHomeDirectory = imageHomeDirectory;
+               this.e = e;
+       }
+
+       @Override
+       public void run(TaskMonitor taskMonitor) throws Exception {
+               // Add it to the apps list
+               final List<File> fileList = new ArrayList<File>();
+               final String[] fileArray = imageHomeDirectory.list();
+               for (final String file : fileArray)
+                       fileList.add(new File(imageHomeDirectory, file));
+
+               e.addAppFiles(APP_NAME, fileList);
+       }
+
+       @Override
+       public void cancel() {
+               // TODO Auto-generated method stub
+       }
+
+}

Added: 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTaskFactory.java
                               (rev 0)
+++ 
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/SaveGraphicsToSessionTaskFactory.java
       2012-02-28 22:18:48 UTC (rev 28388)
@@ -0,0 +1,29 @@
+package org.cytoscape.ding.customgraphicsmgr.internal;
+
+import java.io.File;
+
+import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
+import org.cytoscape.session.events.SessionAboutToBeSavedEvent;
+import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.TaskIterator;
+
+public class SaveGraphicsToSessionTaskFactory implements TaskFactory {
+
+       private final File location;
+       private final CustomGraphicsManager manager;
+
+       private final SessionAboutToBeSavedEvent e;
+
+       SaveGraphicsToSessionTaskFactory(final File location, final 
CustomGraphicsManager manager,
+                       final SessionAboutToBeSavedEvent e) {
+               this.manager = manager;
+               this.location = location;
+               this.e = e;
+       }
+
+       @Override
+       public TaskIterator createTaskIterator() {
+               return new TaskIterator(new PersistImageTask(location, 
manager), new SaveGraphicsToSessionTask(location, e));
+       }
+
+}

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