Author: clopes
Date: 2012-07-25 14:57:46 -0700 (Wed, 25 Jul 2012)
New Revision: 29988

Modified:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeNodeViewTaskFactoryImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeTask.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNodeTask.java
   
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/SIFInterpreterTask.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTaskFactory.java
Log:
Fixes #1304 (Add Edge/Connect selected nodes menu does not apply Visual Style)
Also fixes applying visual style after adding edge/nodes through the SIF 
Interpreter panel.

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-07-25 21:57:46 UTC (rev 29988)
@@ -31,7 +31,6 @@
 import org.cytoscape.session.CyNetworkNaming;
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.session.events.SessionLoadedListener;
-import org.cytoscape.task.DynamicTaskFactoryProvisioner;
 import org.cytoscape.task.NetworkCollectionTaskFactory;
 import org.cytoscape.task.NetworkTaskFactory;
 import org.cytoscape.task.NetworkViewCollectionTaskFactory;
@@ -266,7 +265,7 @@
                CopyValueToEntireColumnTaskFactoryImpl 
copyValueToEntireColumnTaskFactory = new 
CopyValueToEntireColumnTaskFactoryImpl(undoSupportServiceRef);
                DeleteTableTaskFactoryImpl deleteTableTaskFactory = new 
DeleteTableTaskFactoryImpl(cyTableManagerServiceRef);
                ExportVizmapTaskFactoryImpl exportVizmapTaskFactory = new 
ExportVizmapTaskFactoryImpl(vizmapWriterManagerServiceRef,visualMappingManagerServiceRef,
 tunableSetterServiceRef);
-               ConnectSelectedNodesTaskFactoryImpl 
connectSelectedNodesTaskFactory = new 
ConnectSelectedNodesTaskFactoryImpl(undoSupportServiceRef,cyEventHelperRef);
+               ConnectSelectedNodesTaskFactoryImpl 
connectSelectedNodesTaskFactory = new 
ConnectSelectedNodesTaskFactoryImpl(undoSupportServiceRef,cyEventHelperRef,visualMappingManagerServiceRef,cyNetworkViewManagerServiceRef);
                MapGlobalToLocalTableTaskFactoryImpl mapGlobal = new 
MapGlobalToLocalTableTaskFactoryImpl(cyTableManagerServiceRef, 
cyNetworkManagerServiceRef, tunableSetterServiceRef);
                
                DynamicTaskFactoryProvisionerImpl 
dynamicTaskFactoryProvisionerImpl = new 
DynamicTaskFactoryProvisionerImpl(cyApplicationManagerServiceRef);

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
        2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
        2012-07-25 21:57:46 UTC (rev 29988)
@@ -12,6 +12,10 @@
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.undo.UndoSupport;
@@ -23,15 +27,23 @@
        private final UndoSupport undoSupport;
        private final CyNetwork network;
        private final CyEventHelper eventHelper;
+       private final VisualMappingManager vmm;
+       private final CyNetworkViewManager netViewMgr;
 
-       public ConnectSelectedNodesTask(final UndoSupport undoSupport, final 
CyNetwork network,
-                                       final CyEventHelper eventHelper)
-       {
+       public ConnectSelectedNodesTask(final UndoSupport undoSupport,
+                                                                       final 
CyNetwork network,
+                                                                       final 
CyEventHelper eventHelper,
+                                                                       final 
VisualMappingManager vmm,
+                                                                       final 
CyNetworkViewManager netViewMgr) {
                this.undoSupport = undoSupport;
+               
                if (network == null)
                        throw new NullPointerException("Network is null.");
+               
                this.network = network;
                this.eventHelper = eventHelper;
+               this.vmm = vmm;
+               this.netViewMgr = netViewMgr;
        }
 
        @Override
@@ -42,35 +54,45 @@
                final List<CyNode> selectedNodes = 
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
 
                taskMonitor.setProgress(0.1);
-               
+
                int selectedNodesCount = selectedNodes.size();
-               int i=0;
-               
+               int i = 0;
+
                final List<CyEdge> newEdges = new ArrayList<CyEdge>();
+
                for (final CyNode source : selectedNodes) {
                        for (final CyNode target : selectedNodes) {
                                if (source != target) {
                                        final List<CyNode> sourceNeighborList = 
network.getNeighborList(source, Type.ANY);
+
                                        if 
(!sourceNeighborList.contains(target)) {
                                                // connect it
                                                final CyEdge newEdge = 
network.addEdge(source, target, false);
                                                newEdges.add(newEdge);
                                                network.getRow(newEdge).set(
-                                                       CyNetwork.NAME,
-                                                       
network.getRow(source).get(CyNetwork.NAME, String.class) + " (" + INTERACTION + 
") "
-                                                       + 
network.getRow(target).get(CyNetwork.NAME, String.class));
+                                                               CyNetwork.NAME,
+                                                               
network.getRow(source).get(CyNetwork.NAME, String.class) + " (" + INTERACTION + 
") "
+                                                                               
+ network.getRow(target).get(CyNetwork.NAME, String.class));
                                                
network.getRow(newEdge).set(CyEdge.INTERACTION, INTERACTION);
                                        }
                                }
                        }
-                       
+
                        i++;
-                       
taskMonitor.setProgress(0.1+i/(double)selectedNodesCount*0.9);
+                       taskMonitor.setProgress(0.1 + i / (double) 
selectedNodesCount * 0.9);
                }
 
-               undoSupport.postEdit(
-                       new ConnectSelectedNodesEdit(network, newEdges));
+               undoSupport.postEdit(new ConnectSelectedNodesEdit(network, 
newEdges));
+
+               // Apply visual style
+               eventHelper.flushPayloadEvents(); // To make sure the edge 
views are created before applying the style
                
+               for (final CyNetworkView view : 
netViewMgr.getNetworkViews(network)) {
+                       VisualStyle vs = vmm.getVisualStyle(view);
+                       vs.apply(view);
+                       view.updateView();
+               }
+               
                taskMonitor.setProgress(1.0);
        }
 }

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
     2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
     2012-07-25 21:57:46 UTC (rev 29988)
@@ -1,29 +1,34 @@
 package org.cytoscape.task.internal.edit;
 
 
-import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.task.AbstractNetworkTaskFactory;
 import org.cytoscape.task.edit.ConnectSelectedNodesTaskFactory;
-import org.cytoscape.task.AbstractNetworkTaskFactory;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.undo.UndoSupport;
-import org.cytoscape.model.CyNetwork;
 
 
 public class ConnectSelectedNodesTaskFactoryImpl extends 
AbstractNetworkTaskFactory implements ConnectSelectedNodesTaskFactory{
        private final UndoSupport undoSupport;
        private final CyEventHelper eventHelper;
+       private final VisualMappingManager vmm;
+       private final CyNetworkViewManager netViewMgr;
 
        public ConnectSelectedNodesTaskFactoryImpl(final UndoSupport 
undoSupport,
-                                              final CyEventHelper eventHelper)
-       {
+                                                                               
           final CyEventHelper eventHelper,
+                                                                               
           final VisualMappingManager vmm,
+                                                                               
           final CyNetworkViewManager netViewMgr) {
                this.undoSupport = undoSupport;
                this.eventHelper = eventHelper;
+               this.vmm = vmm;
+               this.netViewMgr = netViewMgr;
        }
 
        @Override
-       public TaskIterator createTaskIterator(CyNetwork network) {
-               return new TaskIterator( new 
ConnectSelectedNodesTask(undoSupport, network, eventHelper));
+       public TaskIterator createTaskIterator(final CyNetwork network) {
+               return new TaskIterator(new 
ConnectSelectedNodesTask(undoSupport, network, eventHelper, vmm, netViewMgr));
        }
-
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-07-25 21:57:46 UTC (rev 29988)
@@ -62,8 +62,6 @@
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTableFactory;
-import org.cytoscape.model.events.SetNetworkPointerListener;
-import org.cytoscape.model.events.UnsetNetworkPointerListener;
 import org.cytoscape.model.subnetwork.CyRootNetworkManager;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.property.PropertyUpdatedListener;
@@ -78,7 +76,6 @@
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
-import org.cytoscape.view.model.events.NetworkViewChangedListener;
 import org.cytoscape.view.presentation.RenderingEngineManager;
 import org.cytoscape.view.presentation.property.values.BendFactory;
 import org.cytoscape.view.presentation.property.values.HandleFactory;
@@ -152,8 +149,7 @@
                DingNavigationRenderingEngineFactory 
dingNavigationRenderingEngineFactory = new DingNavigationRenderingEngineFactory(
                                cyServiceRegistrarServiceRef, dVisualLexicon, 
renderingEngineManagerServiceRef,
                                applicationManagerServiceRef);
-               AddEdgeNodeViewTaskFactoryImpl addEdgeNodeViewTaskFactory = new 
AddEdgeNodeViewTaskFactoryImpl(
-                               cyNetworkManagerServiceRef);
+               AddEdgeNodeViewTaskFactoryImpl addEdgeNodeViewTaskFactory = new 
AddEdgeNodeViewTaskFactoryImpl(vmmServiceRef, cyEventHelperServiceRef);
 
                // Object Position Editor
                ObjectPositionValueEditor objectPositionValueEditor = new 
ObjectPositionValueEditor();

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeNodeViewTaskFactoryImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeNodeViewTaskFactoryImpl.java
 2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeNodeViewTaskFactoryImpl.java
 2012-07-25 21:57:46 UTC (rev 29988)
@@ -1,29 +1,32 @@
 package org.cytoscape.ding.impl; 
 
 
-import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.task.NodeViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.TaskIterator;
 
 
 public class AddEdgeNodeViewTaskFactoryImpl implements NodeViewTaskFactory {
-       private final CyNetworkManager netMgr;
 
-       public AddEdgeNodeViewTaskFactoryImpl(CyNetworkManager netMgr) {
-               this.netMgr = netMgr;
+       private final VisualMappingManager vmm;
+       private final CyEventHelper eh;
+
+       public AddEdgeNodeViewTaskFactoryImpl(final VisualMappingManager vmm, 
final CyEventHelper eh) {
+               this.vmm = vmm;
+               this.eh = eh;
        }
+
        @Override
-       public TaskIterator createTaskIterator(View<CyNode> nodeView,
-                       CyNetworkView networkView) {
-               return new TaskIterator(new AddEdgeTask(nodeView, networkView));
+       public TaskIterator createTaskIterator(View<CyNode> nodeView, 
CyNetworkView networkView) {
+               return new TaskIterator(new AddEdgeTask(nodeView, networkView, 
vmm, eh));
        }
 
        @Override
        public boolean isReady(View<CyNode> nodeView, CyNetworkView 
networkView) {
-               // TODO Auto-generated method stub
                return true;
        }
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeTask.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeTask.java
    2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeTask.java
    2012-07-25 21:57:46 UTC (rev 29988)
@@ -1,10 +1,8 @@
-
 package org.cytoscape.ding.impl; 
 
 import java.awt.Point;
 
-import javax.swing.RootPaneContainer;
-
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
@@ -14,6 +12,8 @@
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.TaskMonitor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -21,45 +21,56 @@
 
 public class AddEdgeTask extends AbstractNodeViewTask {
 
+       private final VisualMappingManager vmm;
+       private final CyEventHelper eh;
+       
        private static final Logger logger = 
LoggerFactory.getLogger(AddEdgeTask.class);
-       private static int numberofedges = 1;
-       
-       public AddEdgeTask(View<CyNode> nv, CyNetworkView view){
-               super(nv,view);
+
+       public AddEdgeTask(final View<CyNode> nv,
+                                          final CyNetworkView view,
+                                          final VisualMappingManager vmm,
+                                          final CyEventHelper eh) {
+               super(nv, view);
+               this.vmm = vmm;
+               this.eh = eh;
        }
 
        @Override
        public void run(TaskMonitor tm) throws Exception {
+               CyNode sourceNode = AddEdgeStateMonitor.getSourceNode(netView);
                
-               CyNode sourceNode = AddEdgeStateMonitor.getSourceNode(netView);
-               if ( sourceNode == null ) {
-                       
AddEdgeStateMonitor.setSourceNode(netView,nodeView.getModel());
+               if (sourceNode == null) {
+                       AddEdgeStateMonitor.setSourceNode(netView, 
nodeView.getModel());
                        double[] coords = new double[2];
                        coords[0] = 
nodeView.getVisualProperty(BasicVisualLexicon.NODE_X_LOCATION);
                        coords[1] = 
nodeView.getVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION);
-                       
((DGraphView)netView).xformNodeToComponentCoords(coords);
+                       ((DGraphView) 
netView).xformNodeToComponentCoords(coords);
+                       
                        Point sourceP = new Point();
                        sourceP.setLocation(coords[0], coords[1]);
-                       AddEdgeStateMonitor.setSourcePoint(netView,sourceP);
+                       AddEdgeStateMonitor.setSourcePoint(netView, sourceP);
                } else {
-               
                        // set the name attribute for the new node
-                       
                        CyNetwork net = netView.getModel();
                        CyNode targetNode = nodeView.getModel();
-               
-                       CyEdge newEdge = 
net.addEdge(sourceNode,targetNode,true);
+
+                       final CyEdge newEdge = net.addEdge(sourceNode, 
targetNode, true);
                        final String interaction = "interaction";
-                       String edgeName =  
net.getRow(sourceNode).get(CyRootNetwork.SHARED_NAME, String.class); 
-                       edgeName+=" (" + interaction + ") ";
-                       edgeName+= 
net.getRow(targetNode).get(CyRootNetwork.SHARED_NAME, String.class);
-                       
-                       CyRow edgeRow =  net.getRow(newEdge, 
CyNetwork.DEFAULT_ATTRS);
+                       String edgeName = 
net.getRow(sourceNode).get(CyRootNetwork.SHARED_NAME, String.class);
+                       edgeName += " (" + interaction + ") ";
+                       edgeName += 
net.getRow(targetNode).get(CyRootNetwork.SHARED_NAME, String.class);
+
+                       CyRow edgeRow = net.getRow(newEdge, 
CyNetwork.DEFAULT_ATTRS);
                        edgeRow.set(CyNetwork.NAME, edgeName);
                        edgeRow.set(CyEdge.INTERACTION, interaction);
+
+                       AddEdgeStateMonitor.setSourceNode(netView, null);
                        
+                       // Apply visual style
+                       eh.flushPayloadEvents(); // To make sure the edge view 
is created before applying the style
+                       VisualStyle vs = vmm.getVisualStyle(netView);
+                       vs.apply(netView);
                        netView.updateView();
-                       AddEdgeStateMonitor.setSourceNode(netView,null);
                }
        }
 }

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNodeTask.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNodeTask.java
   2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/AddNodeTask.java
   2012-07-25 21:57:46 UTC (rev 29988)
@@ -21,7 +21,10 @@
        private final CyEventHelper eh;
        private static int new_node_index =1;
        
-       public AddNodeTask(final VisualMappingManager vmm, final CyNetworkView 
view,final Point2D xformPt, final CyEventHelper eh) {
+       public AddNodeTask(final VisualMappingManager vmm,
+                                          final CyNetworkView view,
+                                          final Point2D xformPt,
+                                          final CyEventHelper eh) {
                super(view);
                this.vmm = vmm;
                this.xformPt = xformPt;
@@ -30,24 +33,24 @@
 
        @Override
        public void run(TaskMonitor tm) throws Exception {
-               final CyNetwork net = view.getModel();          
+               final CyNetwork net = view.getModel();
                final CyNode n = net.addNode();
 
                // set the name attribute for the new node
-               final String nodeName = "Node "+ new_node_index;                
+               final String nodeName = "Node " + new_node_index;
                new_node_index++;
-               
+
                final CyRow nodeRow = net.getRow(n);
                nodeRow.set(CyNetwork.NAME, nodeName);
 
                eh.flushPayloadEvents();
                View<CyNode> nv = view.getNodeView(n);
-               
nv.setVisualProperty(BasicVisualLexicon.NODE_X_LOCATION,xformPt.getX());
-               
nv.setVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION,xformPt.getY());
-               view.updateView();
-               
+               nv.setVisualProperty(BasicVisualLexicon.NODE_X_LOCATION, 
xformPt.getX());
+               nv.setVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION, 
xformPt.getY());
+
                // Apply visual style
                VisualStyle vs = vmm.getVisualStyle(view);
                vs.apply(view);
+               view.updateView();
        }
 }

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-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CyActivator.java
   2012-07-25 21:57:46 UTC (rev 29988)
@@ -36,7 +36,7 @@
                CreateNetworkViewTaskFactory 
createNetworkViewTaskFactoryServiceRef = getService(bc, 
CreateNetworkViewTaskFactory.class);
 
                // NetworkView (empty space) context menus
-               SIFInterpreterTaskFactory sifInterpreterTaskFactory = new 
SIFInterpreterTaskFactory();
+               SIFInterpreterTaskFactory sifInterpreterTaskFactory = new 
SIFInterpreterTaskFactory(visualMappingManagerServiceRef, 
cyEventHelperServiceRef);
                Properties sifInterpreterTaskFactoryProps = new Properties();
                sifInterpreterTaskFactoryProps.setProperty(ENABLE_FOR, 
"networkAndView");
                sifInterpreterTaskFactoryProps.setProperty(PREFERRED_ACTION, 
"NEW");

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTask.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTask.java
    2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTask.java
    2012-07-25 21:57:46 UTC (rev 29988)
@@ -4,106 +4,117 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.task.AbstractNetworkViewTask;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.ProvidesTitle;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
 
 public class SIFInterpreterTask extends AbstractNetworkViewTask {
-       private CyNetwork network;
 
        @Tunable(description="Type in a nodes/edges expression in SIF format, 
e.g. A inhibits B")
        public String sifString;
 
+       private final VisualMappingManager vmm;
+       private final CyEventHelper eh;
+       private final CyNetwork network;
+
        @ProvidesTitle
        public String getTitle() {
                return "SIF Interpreter";
        }
        
-       public SIFInterpreterTask(CyNetworkView v) {
-               super(v);
+       public SIFInterpreterTask(final CyNetworkView view, final 
VisualMappingManager vmm, final CyEventHelper eh) {
+               super(view);
+               this.vmm = vmm;
+               this.eh = eh;
                network = view.getModel();
        }
 
        @Override
        public void run(TaskMonitor tm) {
-               if ( sifString == null )
+               if (sifString == null)
                        throw new NullPointerException("SIF input string is 
null");
+
+               String[] terms = sifString.split("\\s");
                
-               String[] terms = sifString.split("\\s");
                if (terms != null) {
                        if (terms.length > 0) {
                                String name1 = terms[0].trim();
+                               
                                if (!name1.equals(null)) {
+                                       CyNode node1 = findNode(terms[0]);
                                        
-                                       CyNode node1 = findNode(terms[0]);
                                        if (node1 == null) {
-
                                                node1 = network.addNode();
-                                               
network.getRow(node1).set("name",terms[0]);
+                                               
network.getRow(node1).set("name", terms[0]);
 
-
-                                               //nv1 = view.getNodeView(node1);
-
-                                               //double[] nextLocn = new 
double[2];
-                                               //nextLocn[0] = p.getX();
-                                               //nextLocn[1] = p.getY();
-                                               
//view.xformComponentToNodeCoords(nextLocn);
-                                               //nv1.setOffset(nextLocn[0], 
nextLocn[1]);
+                                               // nv1 = 
view.getNodeView(node1);
+                                               // double[] nextLocn = new 
double[2];
+                                               // nextLocn[0] = p.getX();
+                                               // nextLocn[1] = p.getY();
+                                               // 
view.xformComponentToNodeCoords(nextLocn);
+                                               // nv1.setOffset(nextLocn[0], 
nextLocn[1]);
                                        } else {
-                                               //nv1 = view.getNodeView(node1);
+                                               // nv1 = 
view.getNodeView(node1);
                                        }
-                                       System.out.println("Node 1 = " + node1);
-                                       //System.out.println("NodeView 1 = " + 
nv1);
 
-                               //      double spacing = 3.0 
*view.getNodeView(node1).getWidth();
+                                       // double spacing = 3.0 
*view.getNodeView(node1).getWidth();
 
-                                       if (terms.length == 3) // simple case 
of 'A interaction B'
-                                       {
+                                       if (terms.length == 3) {
+                                               // simple case of 'A 
interaction B'
                                                CyNode node2 = 
findNode(terms[2]);
+                                               
                                                if (node2 == null) {
                                                        node2 = 
network.addNode();
-                                                       
network.getRow(node2).set("name",terms[2]);
+                                                       
network.getRow(node2).set("name", terms[2]);
 
-                                                       //nv2 = 
view.getNodeView(node2);
-
-                                                       
//nv2.setOffset(nv1.getXPosition() + spacing, nv1
-                                                       //              
.getYPosition());
+                                                       // nv2 = 
view.getNodeView(node2);
+                                                       // 
nv2.setOffset(nv1.getXPosition() + spacing, nv1.getYPosition());
                                                }
 
                                                CyEdge edge = 
network.addEdge(node1, node2, true);
-                                               
network.getRow(edge).set("name",terms[1]);
+                                               
network.getRow(edge).set("name", terms[1]);
 
                                        } else if (terms.length > 3) {
                                                // process multiple targets and 
one source
                                                List<View<CyNode>> nodeViews = 
new ArrayList<View<CyNode>>();
                                                String interactionType = 
terms[1];
-                                               for (int i = 2; i < 
terms.length; i++)
-                                               {
+                                               
+                                               for (int i = 2; i < 
terms.length; i++) {
                                                        CyNode node2 = 
findNode(terms[i]);
+                                                       
                                                        if (node2 == null) {
                                                                node2 = 
network.addNode();
-                                                               
network.getRow(node2).set("name",terms[i]);
+                                                               
network.getRow(node2).set("name", terms[i]);
 
-                                                               //nv2 = 
view.getNodeView(node2);
+                                                               // nv2 = 
view.getNodeView(node2);
 
-                                                               
//nv2.setOffset(nv1.getXPosition() + spacing, nv1
-                                                               //              
.getYPosition());
+                                                               // 
nv2.setOffset(nv1.getXPosition() + spacing, nv1
+                                                               // 
.getYPosition());
                                                        }
 
                                                        CyEdge edge = 
network.addEdge(node1, node2, true);
-                                                       
network.getRow(edge).set("name",terms[1]);
-                                                       
//doCircleLayout(nodeViews, nv1);
+                                                       
network.getRow(edge).set("name", terms[1]);
+                                                       // 
doCircleLayout(nodeViews, nv1);
+                                               }
                                        }
                                }
+                               
+                               // Apply visual style
+                               eh.flushPayloadEvents(); // To make sure the 
edge view is created before applying the style
+                               VisualStyle vs = vmm.getVisualStyle(view);
+                               vs.apply(view);
+                               view.updateView();
                        }
                }
-               }
        }
 
        @Override

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTaskFactory.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTaskFactory.java
     2012-07-25 20:53:06 UTC (rev 29987)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/SIFInterpreterTaskFactory.java
     2012-07-25 21:57:46 UTC (rev 29988)
@@ -1,14 +1,23 @@
 package org.cytoscape.editor.internal;
 
-
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.task.AbstractNetworkViewTaskFactory;
 import org.cytoscape.work.TaskIterator;
 
+public class SIFInterpreterTaskFactory extends AbstractNetworkViewTaskFactory {
 
-public class SIFInterpreterTaskFactory extends AbstractNetworkViewTaskFactory {
-       public TaskIterator createTaskIterator(CyNetworkView view) {
-               return new TaskIterator(new SIFInterpreterTask(view));
+       private final VisualMappingManager vmm;
+       private final CyEventHelper eh;
+
+       public SIFInterpreterTaskFactory(final VisualMappingManager vmm, final 
CyEventHelper eh) {
+               this.vmm = vmm;
+               this.eh = eh;
        }
+
+       public TaskIterator createTaskIterator(final CyNetworkView view) {
+               return new TaskIterator(new SIFInterpreterTask(view, vmm, eh));
+       }
 }
 

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