Author: jm
Date: 2012-06-20 11:16:07 -0700 (Wed, 20 Jun 2012)
New Revision: 29643
Modified:
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableUtil.java
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/DefaultTablesNetwork.java
Log:
Fixes #1111: Node/edge attributes only get deleted from subnetworks if the
corresponding nodes/edges are deleted in the root network
Modified:
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableUtil.java
===================================================================
---
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableUtil.java
2012-06-20 17:27:32 UTC (rev 29642)
+++
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableUtil.java
2012-06-20 18:16:07 UTC (rev 29643)
@@ -61,7 +61,9 @@
List<CyNode> ret = new ArrayList<CyNode>();
Collection<CyRow> rows =
net.getDefaultNodeTable().getMatchingRows(columnName, state);
for (CyRow row : rows) {
- ret.add(net.getNode(row.get(CyTable.SUID, Long.class)));
+ CyNode node = net.getNode(row.get(CyTable.SUID,
Long.class));
+ if (node != null)
+ ret.add(node);
}
return ret;
}
@@ -84,7 +86,9 @@
List<CyEdge> ret = new ArrayList<CyEdge>();
Collection<CyRow> rows =
net.getDefaultEdgeTable().getMatchingRows(columnName, state);
for (CyRow row : rows) {
- ret.add(net.getEdge(row.get(CyTable.SUID, Long.class)));
+ CyEdge edge = net.getEdge(row.get(CyTable.SUID,
Long.class));
+ if (edge != null)
+ ret.add(edge);
}
return ret;
}
Modified:
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
===================================================================
---
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
2012-06-20 17:27:32 UTC (rev 29642)
+++
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyRootNetworkImpl.java
2012-06-20 18:16:07 UTC (rev 29643)
@@ -180,8 +180,12 @@
@Override
public synchronized boolean removeNodes(final Collection<CyNode> nodes)
{
- for ( CySubNetwork sub : subNetworks )
+ for ( CySubNetwork sub : subNetworks ) {
sub.removeNodes(nodes);
+ if (nodes != null && sub instanceof CySubNetworkImpl)
+ ((CySubNetworkImpl) sub).removeRows(nodes,
CyNode.class);
+ }
+
return removeNodesInternal(nodes);
}
@@ -200,8 +204,11 @@
@Override
public synchronized boolean removeEdges(final Collection<CyEdge> edges)
{
- for ( CySubNetwork sub : subNetworks )
+ for ( CySubNetwork sub : subNetworks ) {
sub.removeEdges(edges);
+ if (edges != null && sub instanceof CySubNetworkImpl)
+ ((CySubNetworkImpl) sub).removeRows(edges,
CyEdge.class);
+ }
return removeEdgesInternal(edges);
}
Modified:
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/DefaultTablesNetwork.java
===================================================================
---
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/DefaultTablesNetwork.java
2012-06-20 17:27:32 UTC (rev 29642)
+++
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/DefaultTablesNetwork.java
2012-06-20 18:16:07 UTC (rev 29643)
@@ -171,27 +171,7 @@
return InitialTableSize.SMALL;
}
- @Override
- protected boolean removeNodesInternal(Collection<CyNode> nodes) {
- boolean result = super.removeNodesInternal(nodes);
- if (!result)
- return false;
-
- removeRows(nodes, CyNode.class);
- return result;
- }
-
- @Override
- protected boolean removeEdgesInternal(Collection<CyEdge> edges) {
- boolean result = super.removeEdgesInternal(edges);
- if (!result)
- return false;
-
- removeRows(edges, CyEdge.class);
- return result;
- }
-
- private <T extends CyIdentifiable> void removeRows(Collection<T> items,
Class<? extends T> type) {
+ protected <T extends CyIdentifiable> void removeRows(Collection<T>
items, Class<? extends T> type) {
Collection<Long> primaryKeys = new ArrayList<Long>();
for (T item : items) {
primaryKeys.add(item.getSUID());
--
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.