Author: clopes
Date: 2012-05-14 09:28:42 -0700 (Mon, 14 May 2012)
New Revision: 29258

Modified:
   cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/GraphProxy.as
   
cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/data/InteractionVO.as
Log:
Fixes bug #2712: Merged edges' data not updated after a new edge data field is 
added

Modified: 
cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/GraphProxy.as
===================================================================
--- cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/GraphProxy.as    
2012-05-14 16:02:22 UTC (rev 29257)
+++ cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/GraphProxy.as    
2012-05-14 16:28:42 UTC (rev 29258)
@@ -454,6 +454,14 @@
                     for each (var ds:DataSprite in items) {
                         ds.data[field.name] = field.defaultValue;
                     }
+                    
+                    if (group === Groups.EDGES) {
+                        // Update the merged edges' data
+                        for (var key:String in _interactions) {
+                            var inter:InteractionVO = _interactions[key];
+                            inter.update(edgesSchema, true, field.name);
+                        }
+                    }
                 } else {
                     throw new CWError("Cannot add data field '"+name+"': data 
field name already existis",
                                       ErrorCodes.INVALID_DATA_CONVERSION);

Modified: 
cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/data/InteractionVO.as
===================================================================
--- 
cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/data/InteractionVO.as
    2012-05-14 16:02:22 UTC (rev 29257)
+++ 
cytoscapeweb/trunk/cytoscapeweb/src/org/cytoscapeweb/model/data/InteractionVO.as
    2012-05-14 16:28:42 UTC (rev 29258)
@@ -117,7 +117,7 @@
             return (_node1 == node1 && _node2 == node2) || (_node1 == node2 && 
_node2 == node1);
         }
         
-        public function update(edgesSchema:DataSchema, 
updateData:Boolean=true):void {
+        public function update(edgesSchema:DataSchema, 
updateData:Boolean=true, dataFieldName:String=null):void {
             // Merged edge data:
             if (updateData) recreateDataFields(edgesSchema);
             
@@ -163,23 +163,25 @@
                 // Merged edge data:
                 if (updateData) {
                     for each (var df:DataField in edgesSchema.fields) {
-                        if (isMergeable(df)) {
-                            var mv:* = mergedEdge.data[df.name];
-                            var v:* = e.data[df.name];
-                            
-                            switch (df.type) {
-                                case DataUtil.INT:
-                                case DataUtil.NUMBER:
-                                    mv += (isNaN(v) ? 0 : v);
-                                    break;
-                                case DataUtil.BOOLEAN:
-                                    mv |= v;
-                                    break;
-                                default:
-                                    mv.push(v !== undefined ? v : null);
+                        if (dataFieldName == null || df.name == dataFieldName) 
{
+                            if (isMergeable(df)) {
+                                var mv:* = mergedEdge.data[df.name];
+                                var v:* = e.data[df.name];
+                                
+                                switch (df.type) {
+                                    case DataUtil.INT:
+                                    case DataUtil.NUMBER:
+                                        mv += (isNaN(v) ? 0 : v);
+                                        break;
+                                    case DataUtil.BOOLEAN:
+                                        mv |= v;
+                                        break;
+                                    default:
+                                        mv.push(v !== undefined ? v : null);
+                                }
+                                
+                                _mergedEdge.data[df.name] = mv;
                             }
-                            
-                            _mergedEdge.data[df.name] = mv;
                         }
                     }
                 }

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