Author: clopes
Date: 2012-11-07 13:44:53 -0800 (Wed, 07 Nov 2012)
New Revision: 30756

Added:
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseAllResultsTask.java
Modified:
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTask.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTaskFactory.java
Log:
Just refactored MCODECloseTask to use tunable instead of Swing's confirmation 
dialog

Copied: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseAllResultsTask.java
 (from rev 30741, 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTask.java)
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseAllResultsTask.java
                          (rev 0)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseAllResultsTask.java
  2012-11-07 21:44:53 UTC (rev 30756)
@@ -0,0 +1,58 @@
+package org.cytoscape.mcode.internal.task;
+
+import java.util.Collection;
+
+import org.cytoscape.application.swing.CySwingApplication;
+import org.cytoscape.application.swing.CytoPanel;
+import org.cytoscape.application.swing.CytoPanelName;
+import org.cytoscape.application.swing.CytoPanelState;
+import org.cytoscape.mcode.internal.util.MCODEUtil;
+import org.cytoscape.mcode.internal.view.MCODEResultsPanel;
+import org.cytoscape.work.ProvidesTitle;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.Tunable;
+
+/**
+ * Closes the result panels.
+ */
+public class MCODECloseAllResultsTask implements Task {
+
+       @Tunable(description = "<html>You are about to close the MCODE app.<br 
/>Do you want to continue?</html>", params="ForceSetDirectly=true")
+       public boolean close = true;
+       
+       private final CySwingApplication swingApplication;
+       private final MCODEUtil mcodeUtil;
+       
+       public MCODECloseAllResultsTask(final CySwingApplication 
swingApplication,
+                                                                       final 
MCODEUtil mcodeUtil) {
+               this.swingApplication = swingApplication;
+               this.mcodeUtil = mcodeUtil;
+       }
+
+       @ProvidesTitle
+       public String getTitle() {
+               return "Close MCODE";
+       }
+
+       @Override
+       public void run(final TaskMonitor taskMonitor) throws Exception {
+               if (close) {
+                       final Collection<MCODEResultsPanel> resultPanels = 
mcodeUtil.getResultPanels();
+                       
+                       for (MCODEResultsPanel panel : resultPanels) {
+                               panel.discard(false);
+                       }
+
+                       CytoPanel cytoPanel = 
swingApplication.getCytoPanel(CytoPanelName.WEST);
+
+                       if (cytoPanel.getCytoPanelComponentCount() == 0)
+                               cytoPanel.setState(CytoPanelState.HIDE);
+               }
+       }
+
+       @Override
+       public void cancel() {
+               // Do nothing
+       }
+}

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTask.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTask.java
    2012-11-07 20:59:13 UTC (rev 30755)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTask.java
    2012-11-07 21:44:53 UTC (rev 30756)
@@ -1,76 +1,39 @@
 package org.cytoscape.mcode.internal.task;
 
-import java.util.Collection;
-
-import javax.swing.JOptionPane;
-
-import org.cytoscape.application.swing.CySwingApplication;
-import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelComponent;
-import org.cytoscape.application.swing.CytoPanelName;
-import org.cytoscape.application.swing.CytoPanelState;
 import org.cytoscape.mcode.internal.util.MCODEUtil;
 import org.cytoscape.mcode.internal.view.MCODEMainPanel;
-import org.cytoscape.mcode.internal.view.MCODEResultsPanel;
 import org.cytoscape.service.util.CyServiceRegistrar;
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskMonitor;
 
 /**
- * Closes the app panels.
+ * Closes the main MCODE panel.
  */
 public class MCODECloseTask implements Task {
 
-       private final CySwingApplication swingApplication;
+       private final MCODECloseAllResultsTask closeAllResultsTask;
        private final CyServiceRegistrar registrar;
        private final MCODEUtil mcodeUtil;
        
-       public MCODECloseTask(final CySwingApplication swingApplication,
+       public MCODECloseTask(final MCODECloseAllResultsTask 
closeAllResultsTask,
                                                  final CyServiceRegistrar 
registrar,
-                                                 final MCODEUtil mcodeUtil) {
-               this.swingApplication = swingApplication;
+                                                 final MCODEUtil mcodeUtil) {
+               this.closeAllResultsTask = closeAllResultsTask;
                this.registrar = registrar;
                this.mcodeUtil = mcodeUtil;
        }
 
        @Override
        public void run(final TaskMonitor taskMonitor) throws Exception {
-               if (mcodeUtil.isOpened()) {
-                       int result = JOptionPane.YES_OPTION;
-                       Collection<MCODEResultsPanel> resultPanels = 
mcodeUtil.getResultPanels();
+               if (closeAllResultsTask == null || closeAllResultsTask.close) {
+                       MCODEMainPanel mainPanel = mcodeUtil.getMainPanel();
 
-                       if (resultPanels.size() > 0) {
-                               String message = "You are about to close the 
MCODE app.\nDo you wish to continue?";
-                               result = 
JOptionPane.showOptionDialog(swingApplication.getJFrame(),
-                                                                               
                          new Object[] { message },
-                                                                               
                          "Close MCODE",
-                                                                               
                          JOptionPane.YES_NO_OPTION,
-                                                                               
                          JOptionPane.QUESTION_MESSAGE,
-                                                                               
                          null,
-                                                                               
                          null,
-                                                                               
                          null);
-                               if (result == JOptionPane.YES_OPTION) {
-                                       for (MCODEResultsPanel panel : 
resultPanels) {
-                                               panel.discard(false);
-                                       }
-
-                                       CytoPanel cytoPanel = 
swingApplication.getCytoPanel(CytoPanelName.WEST);
-
-                                       if 
(cytoPanel.getCytoPanelComponentCount() == 0) {
-                                               
cytoPanel.setState(CytoPanelState.HIDE);
-                                       }
-                               }
+                       if (mainPanel != null) {
+                               registrar.unregisterService(mainPanel, 
CytoPanelComponent.class);
                        }
 
-                       if (result == JOptionPane.YES_OPTION) {
-                               MCODEMainPanel mainPanel = 
mcodeUtil.getMainPanel();
-       
-                               if (mainPanel != null) {
-                                       registrar.unregisterService(mainPanel, 
CytoPanelComponent.class);
-                               }
-       
-                               mcodeUtil.reset();
-                       }
+                       mcodeUtil.reset();
                }
        }
 

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTaskFactory.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTaskFactory.java
     2012-11-07 20:59:13 UTC (rev 30755)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/task/MCODECloseTaskFactory.java
     2012-11-07 21:44:53 UTC (rev 30756)
@@ -1,5 +1,6 @@
 package org.cytoscape.mcode.internal.task;
 
+import java.util.Collection;
 import java.util.Set;
 
 import org.cytoscape.application.swing.CySwingApplication;
@@ -28,7 +29,16 @@
 
        @Override
        public TaskIterator createTaskIterator() {
-               return new TaskIterator(new MCODECloseTask(swingApplication, 
registrar, mcodeUtil));
+               final TaskIterator taskIterator = new TaskIterator();
+               final Collection<MCODEResultsPanel> resultPanels = 
mcodeUtil.getResultPanels();
+               final MCODECloseAllResultsTask closeResultsTask = new 
MCODECloseAllResultsTask(swingApplication, mcodeUtil);
+
+               if (resultPanels.size() > 0)
+                       taskIterator.append(closeResultsTask);
+               
+               taskIterator.append(new MCODECloseTask(closeResultsTask, 
registrar, mcodeUtil));
+               
+               return taskIterator;
        }
 
        @Override

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