Author: pwang
Date: 2012-06-07 13:59:19 -0700 (Thu, 07 Jun 2012)
New Revision: 29500

Modified:
   
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
Log:
Fixed bug#1080

Modified: 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
    2012-06-07 19:23:12 UTC (rev 29499)
+++ 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
    2012-06-07 20:59:19 UTC (rev 29500)
@@ -56,6 +56,7 @@
 import org.cytoscape.view.vizmap.events.VisualStyleSetEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import java.util.Iterator;
 
 /**
  *
@@ -208,6 +209,12 @@
                        return;
                }
                
+               if (hasDuplicatedTitle(vs)){
+                       String newTitle = getSuggestedTitle(vs.getTitle());
+                       //Update the title
+                       vs.setTitle(newTitle);
+               }
+               
                this.visualStyles.add(vs);
                logger.info("New visual Style registered to VMM: " + 
vs.getTitle());
                logger.info("Total Number of VS in VMM = " + 
visualStyles.size());
@@ -217,6 +224,55 @@
                cyEventHelper.fireEvent(new VisualStyleAddedEvent(this, vs));
        }
 
+       private String getSuggestedTitle(String title){
+               int i=0;                
+               String suggesteTitle = title;
+               
+               while (true){
+                       suggesteTitle = title + "_"+(new Integer(i).toString());
+                       
+                       boolean duplicated = false;
+                       
+                       Iterator<VisualStyle> it = 
this.getAllVisualStyles().iterator();
+                       while(it.hasNext()){
+                               VisualStyle exist_vs = it.next();
+                               if 
(exist_vs.getTitle().equalsIgnoreCase(suggesteTitle)){
+                                       duplicated = true;
+                                       break;
+                               }
+                       }
+
+                       if (duplicated){
+                               i++;
+                               continue;
+                       }
+                       
+                       break;
+               }
+               
+               return suggesteTitle;
+       }
+       
+       
+       private boolean hasDuplicatedTitle(VisualStyle vs){
+       
+               if (this.getAllVisualStyles().size() == 0){
+                       return false;
+               }
+               Iterator<VisualStyle> it = this.getAllVisualStyles().iterator();
+               while(it.hasNext()){
+                       VisualStyle exist_vs = it.next();
+                       if (exist_vs.getTitle() == null || vs.getTitle() == 
null){
+                               continue;
+                       }
+                       if 
(exist_vs.getTitle().equalsIgnoreCase(vs.getTitle())){
+                               return true;
+                       }
+               }
+               
+               return false;
+       }
+       
        /**
         * {@inheritDoc}
         */

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