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.