Author: ruschein
Date: 2011-06-22 15:16:45 -0700 (Wed, 22 Jun 2011)
New Revision: 25882

Modified:
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTaskFactory.java
   
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Partial fix to undo of nodes/edges deletion.

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
 2011-06-22 21:16:45 UTC (rev 25881)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
 2011-06-22 22:16:45 UTC (rev 25882)
@@ -7,12 +7,14 @@
 import java.util.List;
 import java.util.Set;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.subnetwork.CySubNetwork;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 
 import org.cytoscape.util.swing.CyAbstractEdit;
 
@@ -20,18 +22,22 @@
 /**
  * An undoable edit that will undo and redo deletion of nodes and edges.
  */ 
-class DeleteEdit extends CyAbstractEdit {
-       final private List<CyNode> nodes;
-       final private Set<CyEdge> edges;
-       final private double[] xPos;
-       final private double[] yPos;
-       final private CySubNetwork net;
-       final private DeleteSelectedNodesAndEdgesTask deleteAction;
-       final private CyNetworkViewManager netViewMgr;
+final class DeleteEdit extends CyAbstractEdit {
+       private final List<CyNode> nodes;
+       private final Set<CyEdge> edges;
+       private final double[] xPos;
+       private final double[] yPos;
+       private final CySubNetwork net;
+       private final DeleteSelectedNodesAndEdgesTask deleteAction;
+       private final CyNetworkViewManager netViewMgr;
+       private final VisualMappingManager visualMappingManager;
+       private final CyEventHelper eventHelper;
        
        DeleteEdit(final CySubNetwork net, final List<CyNode> nodes, final 
Set<CyEdge> edges,
                   final DeleteSelectedNodesAndEdgesTask deleteAction,
-                  final CyNetworkViewManager netViewMgr)
+                  final CyNetworkViewManager netViewMgr,
+                  final VisualMappingManager visualMappingManager,
+                  final CyEventHelper eventHelper)
        {
                super("Delete");
 
@@ -52,6 +58,14 @@
                        throw new NullPointerException("edges is null");
                this.edges = edges; 
 
+               if (visualMappingManager == null)
+                       throw new NullPointerException("visualMappingManager is 
null");
+               this.visualMappingManager = visualMappingManager;
+
+               if (eventHelper == null)
+                       throw new NullPointerException("eventHelper is null");
+               this.eventHelper = eventHelper;
+
                // save the positions of the nodes
                xPos = new double[nodes.size()]; 
                yPos = new double[nodes.size()]; 
@@ -87,16 +101,19 @@
                for (CyEdge e : edges)
                        net.addEdge(e);
 
+               eventHelper.flushPayloadEvents();
+
                CyNetworkView netView = 
netViewMgr.getNetworkView(net.getSUID());
-               if ( netView != null ) {
+               if (netView != null) {
                        int i = 0;
-                       for ( CyNode n : nodes ) {
-                               View<CyNode> nv = netView.getNodeView(n);
-                               nv.setVisualProperty(NODE_X_LOCATION, xPos[i]);
-                               nv.setVisualProperty(NODE_Y_LOCATION, yPos[i] );
+                       for (final CyNode node : nodes) {
+                               View<CyNode> nodeView = 
netView.getNodeView(node);
+                               nodeView.setVisualProperty(NODE_X_LOCATION, 
xPos[i]);
+                               nodeView.setVisualProperty(NODE_Y_LOCATION, 
yPos[i] );
                                i++;
                        }
                }
+               visualMappingManager.getVisualStyle(netView).apply(netView);
 
                netView.updateView();
        }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTask.java
    2011-06-22 21:16:45 UTC (rev 25881)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTask.java
    2011-06-22 22:16:45 UTC (rev 25882)
@@ -33,6 +33,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTableUtil;
@@ -40,42 +41,51 @@
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.undo.UndoSupport;
 
 public class DeleteSelectedNodesAndEdgesTask extends AbstractTask {
-    private final UndoSupport undoSupport;
-    private final CyApplicationManager applicationManager;
-    private final CyNetworkViewManager networkViewManager;
+       private final UndoSupport undoSupport;
+       private final CyApplicationManager applicationManager;
+       private final CyNetworkViewManager networkViewManager;
+       private final CyEventHelper eventHelper;
+       private final VisualMappingManager visualMappingManager;
 
-    public DeleteSelectedNodesAndEdgesTask(final UndoSupport undoSupport,
-           final CyApplicationManager applicationManager, final 
CyNetworkViewManager networkViewManager) {
-       this.undoSupport = undoSupport;
-       this.applicationManager = applicationManager;
-       this.networkViewManager = networkViewManager;
-    }
+       public DeleteSelectedNodesAndEdgesTask(
+               final UndoSupport undoSupport, final CyApplicationManager 
applicationManager,
+               final CyNetworkViewManager networkViewManager,
+               final VisualMappingManager visualMappingManager, final 
CyEventHelper eventHelper)
+       {
+               this.undoSupport          = undoSupport;
+               this.applicationManager   = applicationManager;
+               this.networkViewManager   = networkViewManager;
+               this.visualMappingManager = visualMappingManager;
+               this.eventHelper          = eventHelper;
+       }
 
-    @Override
-    public void run(final TaskMonitor taskMonitor) {
-       CyNetworkView myView = applicationManager.getCurrentNetworkView();
+       @Override
+       public void run(final TaskMonitor taskMonitor) {
+               CyNetworkView myView = 
applicationManager.getCurrentNetworkView();
 
-       // Delete from the base network so that our changes can be undone:
-       final CySubNetwork network = (CySubNetwork) myView.getModel();
-       final List<CyNode> selectedNodes = CyTableUtil.getNodesInState(network, 
"selected", true);
-       final Set<CyEdge> selectedEdges = new 
HashSet<CyEdge>(CyTableUtil.getEdgesInState(network, "selected", true));
+               // Delete from the base network so that our changes can be 
undone:
+               final CySubNetwork network = (CySubNetwork) myView.getModel();
+               final List<CyNode> selectedNodes = 
CyTableUtil.getNodesInState(network, "selected", true);
+               final Set<CyEdge> selectedEdges = new 
HashSet<CyEdge>(CyTableUtil.getEdgesInState(network, "selected", true));
 
-       // Make sure we're not loosing any edges for a possible undo!
-       for (CyNode selectedNode : selectedNodes)
-           selectedEdges.addAll(network.getAdjacentEdgeList(selectedNode, 
CyEdge.Type.ANY));
+               // Make sure we're not loosing any edges for a possible undo!
+               for (CyNode selectedNode : selectedNodes)
+                       
selectedEdges.addAll(network.getAdjacentEdgeList(selectedNode, 
CyEdge.Type.ANY));
 
-       undoSupport.getUndoableEditSupport().postEdit(
-               new DeleteEdit(network, selectedNodes, selectedEdges, this, 
networkViewManager));
+               undoSupport.getUndoableEditSupport().postEdit(
+                       new DeleteEdit(network, selectedNodes, selectedEdges, 
this,
+                                      networkViewManager, 
visualMappingManager, eventHelper));
 
-       // Delete the actual nodes and edges:
-       network.removeNodes(selectedNodes);
-       network.removeEdges(selectedEdges);
+               // Delete the actual nodes and edges:
+               network.removeNodes(selectedNodes);
+               network.removeEdges(selectedEdges);
 
-       myView.updateView();
-    }
+               myView.updateView();
+       }
 }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTaskFactory.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTaskFactory.java
     2011-06-22 21:16:45 UTC (rev 25881)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTaskFactory.java
     2011-06-22 22:16:45 UTC (rev 25882)
@@ -1,7 +1,7 @@
 /*
  File: DeleteSelectedNodesAndEdgesTaskFactory.java
 
- Copyright (c) 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2010, 2011, The Cytoscape Consortium (www.cytoscape.org)
 
  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Lesser General Public License as published
@@ -30,29 +30,39 @@
 package org.cytoscape.task.internal.networkobjects;
 
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.undo.UndoSupport;
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 
 
 public class DeleteSelectedNodesAndEdgesTaskFactory implements TaskFactory {
        private final UndoSupport undoSupport;
        private final CyApplicationManager applicationManager;
        private final CyNetworkViewManager networkViewManager;
+       private final VisualMappingManager visualMappingManager;
+       private final CyEventHelper eventHelper;
 
        public DeleteSelectedNodesAndEdgesTaskFactory(final UndoSupport 
undoSupport,
                                                      final 
CyApplicationManager applicationManager,
-                                                     final 
CyNetworkViewManager networkViewManager)
+                                                     final 
CyNetworkViewManager networkViewManager,
+                                                     final 
VisualMappingManager visualMappingManager,
+                                                     final CyEventHelper 
eventHelper)
        {
-               this.undoSupport = undoSupport;
-               this.applicationManager = applicationManager;
-               this.networkViewManager = networkViewManager;
+               this.undoSupport          = undoSupport;
+               this.applicationManager   = applicationManager;
+               this.networkViewManager   = networkViewManager;
+               this.visualMappingManager = visualMappingManager;
+               this.eventHelper          = eventHelper;
        }
 
        public TaskIterator getTaskIterator() {
                return new TaskIterator(
-                       new DeleteSelectedNodesAndEdgesTask(undoSupport, 
applicationManager, networkViewManager));
+                       new DeleteSelectedNodesAndEdgesTask(undoSupport, 
applicationManager,
+                                                           networkViewManager,
+                                                           
visualMappingManager, eventHelper));
        }
 }

Modified: 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-06-22 21:16:45 UTC (rev 25881)
+++ 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-06-22 22:16:45 UTC (rev 25882)
@@ -73,6 +73,8 @@
                <constructor-arg ref="undoSupportServiceRef" />
                <constructor-arg ref="cyApplicationManagerServiceRef" />
                <constructor-arg ref="cyNetworkViewManagerServiceRef" />
+               <constructor-arg ref="visualMappingManagerServiceRef" />
+               <constructor-arg ref="cyEventHelperRef" />
        </bean>
 
        <bean id="selectAllTaskFactory" 
class="org.cytoscape.task.internal.select.SelectAllTaskFactory">

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