Author: pwang
Date: 2012-03-02 14:40:50 -0800 (Fri, 02 Mar 2012)
New Revision: 28422

Modified:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
Log:
Validate title before accept

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-03-02 21:32:35 UTC (rev 28421)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-03-02 22:40:50 UTC (rev 28422)
@@ -209,7 +209,7 @@
                SaveSessionTaskFactory saveSessionTaskFactory = new 
SaveSessionTaskFactory( sessionWriterManagerServiceRef, 
cySessionManagerServiceRef, recentlyOpenedTrackerServiceRef, cyEventHelperRef);
                SaveSessionAsTaskFactory saveSessionAsTaskFactory = new 
SaveSessionAsTaskFactory( sessionWriterManagerServiceRef, 
cySessionManagerServiceRef, recentlyOpenedTrackerServiceRef, cyEventHelperRef);
                ProxySettingsTaskFactory proxySettingsTaskFactory = new 
ProxySettingsTaskFactory(cyPropertyServiceRef, streamUtilRef);
-               EditNetworkTitleTaskFactory editNetworkTitleTaskFactory = new 
EditNetworkTitleTaskFactory(undoSupportServiceRef);
+               EditNetworkTitleTaskFactory editNetworkTitleTaskFactory = new 
EditNetworkTitleTaskFactory(undoSupportServiceRef, cyNetworkManagerServiceRef);
                CreateNetworkViewTaskFactory createNetworkViewTaskFactory = new 
CreateNetworkViewTaskFactory(undoSupportServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkViewManagerServiceRef,cyLayoutsServiceRef,cyEventHelperRef);
                ExportNetworkImageTaskFactory exportNetworkImageTaskFactory = 
new 
ExportNetworkImageTaskFactory(viewWriterManagerServiceRef,cyApplicationManagerServiceRef);
                ExportNetworkViewTaskFactory exportNetworkViewTaskFactory = new 
ExportNetworkViewTaskFactory(networkViewWriterManagerServiceRef);

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
   2012-03-02 21:32:35 UTC (rev 28421)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
   2012-03-02 22:40:50 UTC (rev 28422)
@@ -31,17 +31,22 @@
 
 
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.task.AbstractNetworkTask;
 import org.cytoscape.work.ProvidesTitle;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
 import org.cytoscape.work.undo.UndoSupport;
+import java.util.Iterator;
+import org.cytoscape.work.TunableValidator;
 
 
-public class EditNetworkTitleTask extends AbstractNetworkTask {
+public class EditNetworkTitleTask extends AbstractNetworkTask implements 
TunableValidator {
        private final UndoSupport undoSupport;
+       private final CyNetworkManager cyNetworkManagerServiceRef;
 
+       
        @ProvidesTitle
        public String getTitle() {
                return "Rename Network";
@@ -50,12 +55,53 @@
        @Tunable(description = "New title")
        public String title;
 
-       public EditNetworkTitleTask(final UndoSupport undoSupport, final 
CyNetwork net) {
+       public EditNetworkTitleTask(final UndoSupport undoSupport, final 
CyNetwork net, CyNetworkManager cyNetworkManagerServiceRef) {
                super(net);
                this.undoSupport = undoSupport;
-               title = network.getRow(network).get(CyTableEntry.NAME, 
String.class);
+               this.cyNetworkManagerServiceRef = cyNetworkManagerServiceRef;
+               title = network.getRow(network).get(CyTableEntry.NAME, 
String.class);           
        }
 
+       @Override
+       public ValidationState getValidationState(final Appendable errMsg) {
+               title = title.trim();
+               
+               // Check if the network tile already existed
+               boolean titleAlreayExisted = false;
+               Iterator<CyNetwork> it = 
this.cyNetworkManagerServiceRef.getNetworkSet().iterator();
+
+               while (it.hasNext()){
+                       CyNetwork curNetwork = it.next();
+
+                       // Exclude current network (itself)
+                       if (curNetwork == network){
+                               continue;
+                       }
+
+                       String curTitle = 
curNetwork.getRow(curNetwork).get(CyTableEntry.NAME, String.class);
+
+                       if (title.equalsIgnoreCase(curTitle)){
+                               titleAlreayExisted = true;
+                               break;
+                       }
+               }
+               
+               if (titleAlreayExisted){
+                       // Inform user duplicated network title!
+                       try {
+                               errMsg.append("Duplicated network title!");     
+                       }
+                       catch (Exception e){
+                               System.out.println("Warning: Duplicated network 
title!");
+                       }
+                       return ValidationState.INVALID;                 
+               }
+
+               
+               return ValidationState.OK;              
+       }
+       
+       
        public void run(TaskMonitor e) {
                e.setProgress(0.0);
                final String oldTitle = 
network.getRow(network).get(CyTableEntry.NAME, String.class);

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
    2012-03-02 21:32:35 UTC (rev 28421)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
    2012-03-02 22:40:50 UTC (rev 28422)
@@ -30,6 +30,7 @@
 package org.cytoscape.task.internal.title;
 
 
+import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.task.AbstractNetworkTaskFactory;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.undo.UndoSupport;
@@ -37,12 +38,14 @@
 
 public class EditNetworkTitleTaskFactory extends AbstractNetworkTaskFactory {
        private final UndoSupport undoSupport;
+       private final CyNetworkManager cyNetworkManagerServiceRef;
 
-       public EditNetworkTitleTaskFactory(final UndoSupport undoSupport) {
+       public EditNetworkTitleTaskFactory(final UndoSupport undoSupport, 
CyNetworkManager cyNetworkManagerServiceRef) {
                this.undoSupport = undoSupport;
+               this.cyNetworkManagerServiceRef = cyNetworkManagerServiceRef;
        }
 
        public TaskIterator createTaskIterator() {
-               return new TaskIterator(new EditNetworkTitleTask(undoSupport, 
network));
+               return new TaskIterator(new EditNetworkTitleTask(undoSupport, 
network, this.cyNetworkManagerServiceRef));
        } 
 }

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