Author: clopes
Date: 2012-04-11 15:05:19 -0700 (Wed, 11 Apr 2012)
New Revision: 28798
Added:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTask.java
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTaskFactory.java
Modified:
core3/api/trunk/presentation-api/src/main/java/org/cytoscape/view/presentation/property/BasicVisualLexicon.java
core3/api/trunk/presentation-api/src/test/java/org/cytoscape/view/presentation/BasicVisualLexiconTest.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
core3/impl/trunk/editor-impl/pom.xml
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTask.java
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTaskFactory.java
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CyActivator.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
Log:
Some changes that prevents network pointers that represent group-networks from
being handled as regular nested networks:
- Adds NODE_NESTED_NETWORK_IMAGE_VISIBLE visual property.
- AddNestedNetworkTask sets the new visual property to the target node as a
bypass.
- XGMML parser does the same when recreating nested networks from 2.x sessions.
- AddNestedNetworkTaskFactory is disabled if the target node already has an
unregistered network pointer, so it does not change a pointer set by Groups.
- DNodeView only displays the standard nested network image if the node has the
new visual property as a bypass and its value is TRUE.
- Adds new task that deletes network pointers--enabled only if the network
pointer is registered, so it does not delete group-networks.
Modified:
core3/api/trunk/presentation-api/src/main/java/org/cytoscape/view/presentation/property/BasicVisualLexicon.java
===================================================================
---
core3/api/trunk/presentation-api/src/main/java/org/cytoscape/view/presentation/property/BasicVisualLexicon.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/api/trunk/presentation-api/src/main/java/org/cytoscape/view/presentation/property/BasicVisualLexicon.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -108,6 +108,9 @@
public static final VisualProperty<Boolean> NODE_SELECTED = new
BooleanVisualProperty(false, "NODE_SELECTED",
"Node Selected", true, CyNode.class);
+
+ public static final VisualProperty<Boolean>
NODE_NESTED_NETWORK_IMAGE_VISIBLE = new BooleanVisualProperty(false,
+ "NODE_NESTED_NETWORK_IMAGE_VISIBLE", "Nested Network
Image Visible", CyNode.class);
// ///// Edge VP ///////
public static final VisualProperty<Paint> EDGE_PAINT = new
PaintVisualProperty(Color.gray, PAINT_RANGE,
@@ -275,78 +278,67 @@
addVisualProperty(NETWORK_SCALE_FACTOR, NETWORK);
addVisualProperty(NETWORK_TITLE, NETWORK);
addVisualProperty(NETWORK_BACKGROUND_PAINT, NETWORK);
- addVisualProperty(NETWORK_WIDTH, NETWORK_SIZE);
- addVisualProperty(NETWORK_HEIGHT, NETWORK_SIZE);
addVisualProperty(NETWORK_CENTER_X_LOCATION, NETWORK);
addVisualProperty(NETWORK_CENTER_Y_LOCATION, NETWORK);
-
+ addVisualProperty(NETWORK_CENTER_Z_LOCATION, NETWORK);
+
+ // Level 2: Network-related VP
+ addVisualProperty(NETWORK_WIDTH, NETWORK_SIZE);
+ addVisualProperty(NETWORK_HEIGHT, NETWORK_SIZE);
+ addVisualProperty(NETWORK_DEPTH, NETWORK_SIZE);
+
// Level 2: Children of node VP
addVisualProperty(NODE_PAINT, NODE);
addVisualProperty(NODE_SIZE, NODE);
+ addVisualProperty(NODE_SHAPE, NODE);
addVisualProperty(NODE_VISIBLE, NODE);
addVisualProperty(NODE_SELECTED, NODE);
-
- // Level 2: Children of edge VP
- addVisualProperty(EDGE_PAINT, EDGE);
- addVisualProperty(EDGE_VISIBLE, EDGE);
- addVisualProperty(EDGE_SELECTED, EDGE);
- addVisualProperty(EDGE_WIDTH, EDGE);
- addVisualProperty(EDGE_LABEL, EDGE);
-
- // Level 3 - 4: Node-related VP
+ addVisualProperty(NODE_NESTED_NETWORK_IMAGE_VISIBLE, NODE);
addVisualProperty(NODE_X_LOCATION, NODE);
addVisualProperty(NODE_Y_LOCATION, NODE);
- addVisualProperty(NODE_LABEL, NODE);
-
- addVisualProperty(NODE_FILL_COLOR, NODE_PAINT);
- addVisualProperty(NODE_LABEL_COLOR, NODE_PAINT);
- addVisualProperty(NODE_WIDTH, NODE_SIZE);
- addVisualProperty(NODE_HEIGHT, NODE_SIZE);
-
- // Level 3: Edge-related VP
- addVisualProperty(EDGE_LABEL_COLOR, EDGE_PAINT);
-
addVisualProperty(NODE_Z_LOCATION, NODE);
- addVisualProperty(NODE_DEPTH, NODE_SIZE);
-
- addVisualProperty(NETWORK_CENTER_Z_LOCATION, NETWORK);
- addVisualProperty(NETWORK_DEPTH, NETWORK_SIZE);
-
- addVisualProperty(NODE_SHAPE, NODE);
-
- addVisualProperty(NODE_SELECTED_PAINT, NODE_PAINT);
+ addVisualProperty(NODE_LABEL, NODE);
addVisualProperty(NODE_BORDER_WIDTH, NODE);
addVisualProperty(NODE_BORDER_LINE_TYPE, NODE);
addVisualProperty(NODE_TRANSPARENCY, NODE);
addVisualProperty(NODE_BORDER_TRANSPARENCY, NODE);
-
- addVisualProperty(NODE_BORDER_PAINT, NODE_PAINT);
- addVisualProperty(NODE_TOOLTIP, NODE);
- addVisualProperty(NODE_LABEL_FONT_SIZE, NODE_SIZE);
-
addVisualProperty(NODE_LABEL_FONT_FACE, NODE);
addVisualProperty(NODE_LABEL_TRANSPARENCY, NODE);
+ addVisualProperty(NODE_TOOLTIP, NODE);
+ // Level 2: Children of edge VP
+ addVisualProperty(EDGE_PAINT, EDGE);
+ addVisualProperty(EDGE_VISIBLE, EDGE);
+ addVisualProperty(EDGE_SELECTED, EDGE);
+ addVisualProperty(EDGE_WIDTH, EDGE);
+ addVisualProperty(EDGE_LABEL, EDGE);
addVisualProperty(EDGE_LINE_TYPE, EDGE);
-
addVisualProperty(EDGE_TOOLTIP, EDGE);
-
addVisualProperty(EDGE_LABEL_FONT_FACE, EDGE);
addVisualProperty(EDGE_LABEL_FONT_SIZE, EDGE);
addVisualProperty(EDGE_LABEL_TRANSPARENCY, EDGE);
+ addVisualProperty(EDGE_TRANSPARENCY, EDGE);
+ addVisualProperty(EDGE_SOURCE_ARROW_SHAPE, EDGE);
+ addVisualProperty(EDGE_TARGET_ARROW_SHAPE, EDGE);
+ addVisualProperty(EDGE_BEND, EDGE);
+ // Level 3 - 4: Node-related VP
+ addVisualProperty(NODE_FILL_COLOR, NODE_PAINT);
+ addVisualProperty(NODE_SELECTED_PAINT, NODE_PAINT);
+ addVisualProperty(NODE_BORDER_PAINT, NODE_PAINT);
+ addVisualProperty(NODE_LABEL_COLOR, NODE_PAINT);
+ addVisualProperty(NODE_LABEL_FONT_SIZE, NODE_SIZE);
+ addVisualProperty(NODE_WIDTH, NODE_SIZE);
+ addVisualProperty(NODE_HEIGHT, NODE_SIZE);
+ addVisualProperty(NODE_DEPTH, NODE_SIZE);
+
+ // Level 3: Edge-related VP
+ addVisualProperty(EDGE_LABEL_COLOR, EDGE_PAINT);
addVisualProperty(EDGE_SELECTED_PAINT, EDGE_PAINT);
addVisualProperty(EDGE_UNSELECTED_PAINT, EDGE_PAINT);
addVisualProperty(EDGE_STROKE_SELECTED_PAINT,
EDGE_SELECTED_PAINT);
addVisualProperty(EDGE_STROKE_UNSELECTED_PAINT,
EDGE_UNSELECTED_PAINT);
- addVisualProperty(EDGE_TRANSPARENCY, EDGE);
-
- addVisualProperty(EDGE_SOURCE_ARROW_SHAPE, EDGE);
- addVisualProperty(EDGE_TARGET_ARROW_SHAPE, EDGE);
-
- addVisualProperty(EDGE_BEND, EDGE);
-
createLookupMap();
}
@@ -422,8 +414,6 @@
addIdentifierMapping(CyEdge.class, "edgeTargetArrowShape",
EDGE_TARGET_ARROW_SHAPE);
addIdentifierMapping(CyEdge.class, "edgeBend", EDGE_BEND);
-
- // TODO add more mappings!
}
@Override
Modified:
core3/api/trunk/presentation-api/src/test/java/org/cytoscape/view/presentation/BasicVisualLexiconTest.java
===================================================================
---
core3/api/trunk/presentation-api/src/test/java/org/cytoscape/view/presentation/BasicVisualLexiconTest.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/api/trunk/presentation-api/src/test/java/org/cytoscape/view/presentation/BasicVisualLexiconTest.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -46,7 +46,7 @@
@Test
public void test2DLexicon() throws Exception {
- assertEquals(57, richLex.getAllVisualProperties().size());
+ assertEquals(58, richLex.getAllVisualProperties().size());
}
@Test
@@ -71,7 +71,7 @@
assertEquals(richLex.getAllDescendants(BasicVisualLexicon.NODE_PAINT).size(),
nodePaintChild.size());
Collection<VisualProperty<?>> nodeChildren =
richLex.getAllDescendants(BasicVisualLexicon.NODE);
- assertEquals(24, nodeChildren.size());
+ assertEquals(25, nodeChildren.size());
Collection<VisualProperty<?>> edgeChildren =
richLex.getAllDescendants(BasicVisualLexicon.EDGE);
assertEquals(19, edgeChildren.size());
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -1033,11 +1033,16 @@
TexturePaint getNestedNetworkTexturePaint() {
synchronized (graphView.m_lock) {
++nestedNetworkPaintingDepth;
+
try {
- if (nestedNetworkPaintingDepth > 1 ||
getModel().getNetworkPointer() == null
- || !nestedNetworkVisible)
+ if (nestedNetworkPaintingDepth > 1 ||
getModel().getNetworkPointer() == null || !nestedNetworkVisible)
return null;
+ final Boolean netImgVisible =
getVisualProperty(BasicVisualLexicon.NODE_NESTED_NETWORK_IMAGE_VISIBLE);
+
+ if (!Boolean.TRUE.equals(netImgVisible))
+ return null;
+
final double IMAGE_WIDTH = getWidth() *
NESTED_IMAGE_SCALE_FACTOR;
final double IMAGE_HEIGHT = getHeight() *
NESTED_IMAGE_SCALE_FACTOR;
Modified: core3/impl/trunk/editor-impl/pom.xml
===================================================================
--- core3/impl/trunk/editor-impl/pom.xml 2012-04-11 20:17:39 UTC (rev
28797)
+++ core3/impl/trunk/editor-impl/pom.xml 2012-04-11 22:05:19 UTC (rev
28798)
@@ -104,6 +104,10 @@
<artifactId>core-task-api</artifactId>
</dependency>
<dependency>
+ <groupId>org.cytoscape</groupId>
+ <artifactId>vizmap-gui-api</artifactId>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Modified:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTask.java
===================================================================
---
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTask.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTask.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -1,26 +1,28 @@
package org.cytoscape.editor.internal;
-
import java.util.ArrayList;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.model.CyNode;
import org.cytoscape.task.AbstractNodeViewTask;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.View;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
import org.cytoscape.work.ProvidesTitle;
import org.cytoscape.work.TaskMonitor;
import org.cytoscape.work.Tunable;
import org.cytoscape.work.util.ListSingleSelection;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AddNestedNetworkTask extends AbstractNodeViewTask {
+ private final SelectedVisualStyleManager svsmMgr;
+
private static final Logger logger =
LoggerFactory.getLogger(AddNestedNetworkTask.class);
@Tunable(description="Network")
@@ -31,16 +33,27 @@
return "Choose Network for Node";
}
- public AddNestedNetworkTask(View<CyNode> nv, CyNetworkView view,
CyNetworkManager mgr) {
+ public AddNestedNetworkTask(final View<CyNode> nv,
+ final
CyNetworkView view,
+ final
CyNetworkManager mgr,
+ final
SelectedVisualStyleManager svsmMgr) {
super(nv,view);
+ this.svsmMgr = svsmMgr;
+
nestedNetwork = new ListSingleSelection<CyNetwork>(new
ArrayList<CyNetwork>(mgr.getNetworkSet()));
+ final CyNetwork netPointer =
nodeView.getModel().getNetworkPointer();
+
+ if (netPointer != null)
+ nestedNetwork.setSelectedValue(netPointer);
}
@Override
public void run(TaskMonitor tm) throws Exception {
-
- CyNode n = nodeView.getModel();
- n.setNetworkPointer( nestedNetwork.getSelectedValue() );
+ final CyNode n = nodeView.getModel();
+ n.setNetworkPointer(nestedNetwork.getSelectedValue());
+
+
nodeView.setLockedValue(BasicVisualLexicon.NODE_NESTED_NETWORK_IMAGE_VISIBLE,
Boolean.TRUE);
+ svsmMgr.getCurrentVisualStyle().apply(netView);
netView.updateView();
}
}
Modified:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTaskFactory.java
===================================================================
---
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTaskFactory.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNestedNetworkTaskFactory.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -1,23 +1,39 @@
package org.cytoscape.editor.internal;
+import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyNode;
import org.cytoscape.task.AbstractNodeViewTaskFactory;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
import org.cytoscape.work.TaskIterator;
public class AddNestedNetworkTaskFactory extends AbstractNodeViewTaskFactory {
final CyNetworkManager netMgr;
-
- public AddNestedNetworkTaskFactory(CyNetworkManager netMgr) {
+ final SelectedVisualStyleManager svsmMgr;
+
+ public AddNestedNetworkTaskFactory(final CyNetworkManager netMgr, final
SelectedVisualStyleManager svsmMgr) {
this.netMgr = netMgr;
+ this.svsmMgr = svsmMgr;
}
-
+
@Override
- public TaskIterator createTaskIterator(View<CyNode> nodeView,
- CyNetworkView networkView) {
- return new TaskIterator(new AddNestedNetworkTask(nodeView,
networkView, netMgr));
- }
+ public TaskIterator createTaskIterator(View<CyNode> nodeView,
CyNetworkView networkView) {
+ return new TaskIterator(new AddNestedNetworkTask(nodeView,
networkView, netMgr, svsmMgr));
+ }
+ @Override
+ public boolean isReady(View<CyNode> nodeView, CyNetworkView
networkView) {
+ if (!super.isReady(nodeView, networkView))
+ return false;
+
+ // Check if the network is registered.
+ // Nodes with unregistered network pointers should be ignored
because they are probably being used as something
+ // else other than regular nested networks (e.g. groups).
+ final CyNode node = nodeView.getModel();
+ final CyNetwork netPointer = node.getNetworkPointer();
+
+ return netPointer == null ||
netMgr.networkExists(netPointer.getSUID());
+ }
}
Modified:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CyActivator.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CyActivator.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -1,71 +1,63 @@
-
-
package org.cytoscape.editor.internal;
-import org.cytoscape.application.swing.CySwingApplication;
+import java.util.Properties;
+
import org.cytoscape.event.CyEventHelper;
-import org.cytoscape.task.creation.NewEmptyNetworkViewFactory;
import org.cytoscape.model.CyNetworkManager;
-import org.cytoscape.model.subnetwork.CyRootNetworkManager;
-
-import org.cytoscape.editor.internal.SIFInterpreterTaskFactory;
-
-import org.cytoscape.application.swing.CytoPanelComponent;
-import
org.cytoscape.application.swing.events.CytoPanelComponentSelectedListener;
+import org.cytoscape.service.util.AbstractCyActivator;
import org.cytoscape.task.NetworkViewLocationTaskFactory;
import org.cytoscape.task.NetworkViewTaskFactory;
import org.cytoscape.task.NodeViewTaskFactory;
import org.cytoscape.view.vizmap.VisualMappingManager;
-import org.cytoscape.application.events.SetCurrentNetworkViewListener;
-
-
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
import org.osgi.framework.BundleContext;
-import org.cytoscape.service.util.AbstractCyActivator;
-import java.util.Properties;
-import javax.swing.ImageIcon;
-
-
-
public class CyActivator extends AbstractCyActivator {
+
public CyActivator() {
super();
}
-
public void start(BundleContext bc) {
-
CyNetworkManager cyNetworkManagerServiceRef =
getService(bc,CyNetworkManager.class);
CyEventHelper cyEventHelperServiceRef =
getService(bc,CyEventHelper.class);
VisualMappingManager vmm =
getService(bc,VisualMappingManager.class);
+ SelectedVisualStyleManager selectedVisualStyleManagerServiceRef
= getService(bc,SelectedVisualStyleManager.class);
-
SIFInterpreterTaskFactory sifInterpreterTaskFactory = new
SIFInterpreterTaskFactory();
NetworkViewLocationTaskFactory networkViewLocationTaskFactory =
new AddNodeTaskFactory(cyEventHelperServiceRef, vmm);
- NodeViewTaskFactory addNestedNetworkTaskFactory = new
AddNestedNetworkTaskFactory(cyNetworkManagerServiceRef);
+ NodeViewTaskFactory addNestedNetworkTaskFactory = new
AddNestedNetworkTaskFactory(cyNetworkManagerServiceRef,
selectedVisualStyleManagerServiceRef);
+ NodeViewTaskFactory deleteNestedNetworkTaskFactory = new
DeleteNestedNetworkTaskFactory(cyNetworkManagerServiceRef,
selectedVisualStyleManagerServiceRef);
Properties sifInterpreterTaskFactoryProps = new Properties();
-
sifInterpreterTaskFactoryProps.setProperty("enableFor","networkAndView");
+ sifInterpreterTaskFactoryProps.setProperty("enableFor",
"networkAndView");
// Setting preferredAction to OPEN registers this service for
double clicks on
// the network canvas, something we don't want right now for
this task!
//sifInterpreterTaskFactoryProps.setProperty("preferredAction","OPEN");
-
sifInterpreterTaskFactoryProps.setProperty("preferredMenu","Tools");
-
sifInterpreterTaskFactoryProps.setProperty("menuGravity","5.0f");
- sifInterpreterTaskFactoryProps.setProperty("title","SIF
Interpreter");
-
registerService(bc,sifInterpreterTaskFactory,NetworkViewTaskFactory.class,
sifInterpreterTaskFactoryProps);
+ sifInterpreterTaskFactoryProps.setProperty("preferredMenu",
"Tools");
+ sifInterpreterTaskFactoryProps.setProperty("menuGravity",
"5.0f");
+ sifInterpreterTaskFactoryProps.setProperty("title", "SIF
Interpreter");
+ registerService(bc, sifInterpreterTaskFactory,
NetworkViewTaskFactory.class, sifInterpreterTaskFactoryProps);
Properties networkViewLocationTaskFactoryProps = new
Properties();
-
networkViewLocationTaskFactoryProps.setProperty("preferredAction","NEW");
- networkViewLocationTaskFactoryProps.setProperty("title","Add
Node");
-
registerService(bc,networkViewLocationTaskFactory,NetworkViewLocationTaskFactory.class,
networkViewLocationTaskFactoryProps);
-
- Properties nodeViewTaskFactoryProps = new Properties();
- nodeViewTaskFactoryProps.setProperty("preferredAction","NEW");
- nodeViewTaskFactoryProps.setProperty("title","Add Nested
Network");
-
registerService(bc,addNestedNetworkTaskFactory,NodeViewTaskFactory.class,
nodeViewTaskFactoryProps);
+
networkViewLocationTaskFactoryProps.setProperty("preferredAction", "NEW");
+ networkViewLocationTaskFactoryProps.setProperty("title", "Add
Node");
+ registerService(bc, networkViewLocationTaskFactory,
NetworkViewLocationTaskFactory.class,
+ networkViewLocationTaskFactoryProps);
+
+ Properties addNestedNetworkProps = new Properties();
+ addNestedNetworkProps.setProperty("preferredAction", "NEW");
+ addNestedNetworkProps.setProperty("preferredMenu", "Nested
Network");
+ addNestedNetworkProps.setProperty("title", "Add Nested
Network");
+ registerService(bc, addNestedNetworkTaskFactory,
NodeViewTaskFactory.class, addNestedNetworkProps);
+
+ Properties deleteNestedNetworkProps = new Properties();
+ deleteNestedNetworkProps.setProperty("preferredAction", "NEW");
+ deleteNestedNetworkProps.setProperty("preferredMenu", "Nested
Network");
+ deleteNestedNetworkProps.setProperty("title", "Delete Nested
Network");
+ registerService(bc, deleteNestedNetworkTaskFactory,
NodeViewTaskFactory.class, deleteNestedNetworkProps);
}
}
-
Added:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTask.java
===================================================================
---
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTask.java
(rev 0)
+++
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTask.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -0,0 +1,39 @@
+package org.cytoscape.editor.internal;
+
+
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.task.AbstractNodeViewTask;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
+import org.cytoscape.work.TaskMonitor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class DeleteNestedNetworkTask extends AbstractNodeViewTask {
+
+ private final SelectedVisualStyleManager svsmMgr;
+
+ private static final Logger logger =
LoggerFactory.getLogger(DeleteNestedNetworkTask.class);
+
+ public DeleteNestedNetworkTask(final View<CyNode> nv,
+ final
CyNetworkView view,
+ final
CyNetworkManager mgr,
+ final
SelectedVisualStyleManager svsmMgr) {
+ super(nv,view);
+ this.svsmMgr = svsmMgr;
+ }
+
+ @Override
+ public void run(TaskMonitor tm) throws Exception {
+ final CyNode n = nodeView.getModel();
+ n.setNetworkPointer(null);
+
+
nodeView.clearValueLock(BasicVisualLexicon.NODE_NESTED_NETWORK_IMAGE_VISIBLE);
+ svsmMgr.getCurrentVisualStyle().apply(netView);
+ netView.updateView();
+ }
+}
Added:
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTaskFactory.java
===================================================================
---
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTaskFactory.java
(rev 0)
+++
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/DeleteNestedNetworkTaskFactory.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -0,0 +1,39 @@
+package org.cytoscape.editor.internal;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.task.AbstractNodeViewTaskFactory;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
+import org.cytoscape.work.TaskIterator;
+
+public class DeleteNestedNetworkTaskFactory extends
AbstractNodeViewTaskFactory {
+ final CyNetworkManager netMgr;
+ final SelectedVisualStyleManager svsmMgr;
+
+ public DeleteNestedNetworkTaskFactory(final CyNetworkManager netMgr,
final SelectedVisualStyleManager svsmMgr) {
+ this.netMgr = netMgr;
+ this.svsmMgr = svsmMgr;
+ }
+
+ @Override
+ public TaskIterator createTaskIterator(View<CyNode> nodeView,
CyNetworkView networkView) {
+ return new TaskIterator(new DeleteNestedNetworkTask(nodeView,
networkView, netMgr, svsmMgr));
+ }
+
+ @Override
+ public boolean isReady(View<CyNode> nodeView, CyNetworkView
networkView) {
+ if (!super.isReady(nodeView, networkView))
+ return false;
+
+ // Check if there is a network pointer and if it is registered.
+ // Nodes with unregistered network pointers should be ignored
because they are probably being used as something
+ // else other than regular nested networks (e.g. groups).
+ final CyNode node = nodeView.getModel();
+ final CyNetwork netPointer = node.getNetworkPointer();
+
+ return netPointer != null &&
netMgr.networkExists(netPointer.getSUID());
+ }
+}
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
2012-04-11 20:17:39 UTC (rev 28797)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNodeAttribute.java
2012-04-11 22:05:19 UTC (rev 28798)
@@ -29,6 +29,7 @@
import org.cytoscape.io.internal.read.xgmml.ParseState;
import org.cytoscape.model.CyNode;
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -62,6 +63,9 @@
final String netId =
atts.getValue("value");
final CyNode node =
manager.getCurrentNode();
manager.getCache().addNetworkPointer(node, netId);
+ // Also add this visual property, so
the network pointer is displayed as a regular nested network.
+ manager.addGraphicsAttribute(node,
+
BasicVisualLexicon.NODE_NESTED_NETWORK_IMAGE_VISIBLE.getIdString(), "true");
}
}
--
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.