Author: ruschein
Date: 2010-11-19 09:49:49 -0800 (Fri, 19 Nov 2010)
New Revision: 22928
Added:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/
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
Removed:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteAction.java
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteEdit.java
Modified:
core3/core-task-impl/trunk/pom.xml
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Moved delete action from swing-application-impl to core-task-impl.
Modified: core3/core-task-impl/trunk/pom.xml
===================================================================
--- core3/core-task-impl/trunk/pom.xml 2010-11-19 17:49:04 UTC (rev 22927)
+++ core3/core-task-impl/trunk/pom.xml 2010-11-19 17:49:49 UTC (rev 22928)
@@ -115,6 +115,11 @@
<artifactId>core-task-api</artifactId>
<version>3.0.0-alpha2-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.cytoscape</groupId>
+ <artifactId>swing-util</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>junit</groupId>
Copied:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
(from rev 22912,
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteEdit.java)
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteEdit.java
2010-11-19 17:49:49 UTC (rev 22928)
@@ -0,0 +1,104 @@
+package org.cytoscape.task.internal.networkobjects;
+
+
+import static
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NODE_X_LOCATION;
+import static
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NODE_Y_LOCATION;
+
+import java.util.Set;
+
+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.util.swing.CyAbstractEdit;
+
+
+/**
+ * An undoable edit that will undo and redo deletion of nodes and edges.
+ */
+class DeleteEdit extends CyAbstractEdit {
+ Set<CyNode> nodes;
+ Set<CyEdge> edges;
+ double[] xPos;
+ double[] yPos;
+ final CySubNetwork net;
+ final DeleteSelectedNodesAndEdgesTask deleteAction;
+ final CyNetworkViewManager netViewMgr;
+
+ DeleteEdit(CySubNetwork net, Set<CyNode> nodes, Set<CyEdge> edges,
+ final DeleteSelectedNodesAndEdgesTask deleteAction,
+ final CyNetworkViewManager netViewMgr)
+ {
+ super("Delete");
+
+ this.deleteAction = deleteAction;
+ if ( net == null )
+ throw new NullPointerException("network is null");
+ this.net = net;
+
+ if ( netViewMgr == null )
+ throw new NullPointerException("network manager is
null");
+ this.netViewMgr = netViewMgr;
+
+ if ( nodes == null )
+ throw new NullPointerException("nodes is null");
+ this.nodes = nodes;
+
+ if ( edges == null )
+ throw new NullPointerException("edges is null");
+ this.edges = edges;
+
+ // save the positions of the nodes
+ xPos = new double[nodes.size()];
+ yPos = new double[nodes.size()];
+ CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
+ if ( netView != null ) {
+ int i = 0;
+ for ( CyNode n : nodes ) {
+ View<CyNode> nv = netView.getNodeView(n);
+ xPos[i] = nv.getVisualProperty(NODE_X_LOCATION);
+ yPos[i] = nv.getVisualProperty(NODE_Y_LOCATION);
+ i++;
+ }
+ }
+ }
+
+ public void redo() {
+ super.redo();
+
+ for ( CyNode n : nodes )
+ net.removeNode(n);
+ for ( CyEdge e : edges )
+ net.removeEdge(e);
+
+ CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
+
+ // Manually call update presentation
+ netView.updateView();
+ }
+
+ public void undo() {
+ super.undo();
+
+ for ( CyNode n : nodes )
+ net.addNode(n);
+ for ( CyEdge e : edges )
+ net.addEdge(e);
+
+ CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
+ 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] );
+ i++;
+ }
+ }
+
+ netView.updateView();
+ }
+}
Added:
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
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTask.java
2010-11-19 17:49:49 UTC (rev 22928)
@@ -0,0 +1,140 @@
+/*
+ File: DeleteSelectedNodesAndEdgesTask.java
+
+ Copyright (c) 2010, 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
+ by the Free Software Foundation; either version 2.1 of the License, or
+ any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and
+ documentation provided hereunder is on an "as is" basis, and the
+ Institute for Systems Biology and the Whitehead Institute
+ have no obligations to provide maintenance, support,
+ updates, enhancements or modifications. In no event shall the
+ Institute for Systems Biology and the Whitehead Institute
+ be liable to any party for direct, indirect, special,
+ incidental or consequential damages, including lost profits, arising
+ out of the use of this software and its documentation, even if the
+ Institute for Systems Biology and the Whitehead Institute
+ have been advised of the possibility of such damage. See
+ the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+*/
+package org.cytoscape.task.internal.networkobjects;
+
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.swing.event.MenuEvent;
+import javax.swing.KeyStroke;
+
+import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
+import org.cytoscape.model.subnetwork.CySubNetwork;
+import org.cytoscape.session.CyApplicationManager;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
+
+public class DeleteSelectedNodesAndEdgesTask extends AbstractTask {
+ private final CyTableEntry graphObj;
+ private final UndoSupport undoSupport;
+ private final CyRootNetworkFactory rootNetworkFactory;
+ private final CyApplicationManager applicationManager;
+ private final CyNetworkViewManager networkViewManager;
+
+ /**
+ * perform deletion on the input object. if object is a Node, then this
will
+ * result in also deleting the edges adjacent to the node
+ *
+ * @param obj the object to be deleted
+ */
+ public DeleteSelectedNodesAndEdgesTask(final CyTableEntry obj, final
UndoSupport undoSupport,
+ final CyRootNetworkFactory
rootNetworkFactory,
+ final CyApplicationManager
applicationManager,
+ final CyNetworkViewManager
networkViewManager)
+ {
+ this.undoSupport = undoSupport;
+ this.rootNetworkFactory = rootNetworkFactory;
+ this.applicationManager = applicationManager;
+ this.networkViewManager = networkViewManager;
+ this.graphObj = obj;
+ }
+
+ public DeleteSelectedNodesAndEdgesTask(final UndoSupport undoSupport,
+ final CyRootNetworkFactory
rootNetworkFactory,
+ final CyApplicationManager
applicationManager,
+ final CyNetworkViewManager
networkViewManager)
+ {
+ this(null, undoSupport, rootNetworkFactory, applicationManager,
networkViewManager);
+ }
+
+ @Override
+ public void run(final TaskMonitor taskMonitor) {
+ CyNetworkView myView =
applicationManager.getCurrentNetworkView();
+
+ // delete from the base CySubNetwork so that our changes can be
undone
+ CySubNetwork cyNet =
rootNetworkFactory.convert(myView.getModel()).getBaseNetwork();
+ List<CyEdge> selEdges = CyTableUtil.getEdgesInState(cyNet,
"selected", true);
+ List<CyNode> selNodes = CyTableUtil.getNodesInState(cyNet,
"selected", true);
+ CyNode cyNode;
+ CyEdge cyEdge;
+
+ // if an argument exists, add it to the appropriate list
+ if (graphObj != null ) {
+ if (graphObj instanceof CyNode) {
+ cyNode = (CyNode) graphObj;
+ if (!selNodes.contains(cyNode))
+ selNodes.add(cyNode);
+ } else if (graphObj instanceof CyEdge) {
+ cyEdge = (CyEdge) graphObj;
+ if (!selEdges.contains(cyEdge))
+ selEdges.add(cyEdge);
+ }
+ }
+
+ Set<CyEdge> edges = new HashSet<CyEdge>();
+ Set<CyNode> nodes = new HashSet<CyNode>();
+
+ // add all node indices
+ for (int i = 0; i < selNodes.size(); i++) {
+ cyNode = selNodes.get(i);
+ nodes.add(cyNode);
+ }
+
+ // add all selected edge indices
+ for (int i = 0; i < selEdges.size(); i++) {
+ cyEdge = selEdges.get(i);
+ edges.add( cyEdge );
+ }
+
+ undoSupport.getUndoableEditSupport().postEdit(
+ new DeleteEdit(cyNet, nodes, edges, this,
networkViewManager));
+
+ // delete the actual nodes and edges
+ for (CyNode node : nodes)
+ cyNet.removeNode(node);
+ for (CyEdge edge : edges)
+ cyNet.removeEdge(edge);
+
+ myView.updateView();
+ }
+}
Added:
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
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/networkobjects/DeleteSelectedNodesAndEdgesTaskFactory.java
2010-11-19 17:49:49 UTC (rev 22928)
@@ -0,0 +1,63 @@
+/*
+ File: DeleteSelectedNodesAndEdgesTaskFactory.java
+
+ Copyright (c) 2010, 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
+ by the Free Software Foundation; either version 2.1 of the License, or
+ any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and
+ documentation provided hereunder is on an "as is" basis, and the
+ Institute for Systems Biology and the Whitehead Institute
+ have no obligations to provide maintenance, support,
+ updates, enhancements or modifications. In no event shall the
+ Institute for Systems Biology and the Whitehead Institute
+ be liable to any party for direct, indirect, special,
+ incidental or consequential damages, including lost profits, arising
+ out of the use of this software and its documentation, even if the
+ Institute for Systems Biology and the Whitehead Institute
+ have been advised of the possibility of such damage. See
+ the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+*/
+package org.cytoscape.task.internal.networkobjects;
+
+
+import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
+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;
+
+
+public class DeleteSelectedNodesAndEdgesTaskFactory implements TaskFactory {
+ private final UndoSupport undoSupport;
+ private final CyRootNetworkFactory rootNetworkFactory;
+ private final CyApplicationManager applicationManager;
+ private final CyNetworkViewManager networkViewManager;
+
+ public DeleteSelectedNodesAndEdgesTaskFactory(final UndoSupport
undoSupport,
+ final
CyRootNetworkFactory rootNetworkFactory,
+ final
CyApplicationManager applicationManager,
+ final
CyNetworkViewManager networkViewManager)
+ {
+ this.undoSupport = undoSupport;
+ this.rootNetworkFactory = rootNetworkFactory;
+ this.applicationManager = applicationManager;
+ this.networkViewManager = networkViewManager;
+ }
+
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(
+ new DeleteSelectedNodesAndEdgesTask(undoSupport,
rootNetworkFactory,
+ applicationManager,
networkViewManager));
+ }
+}
Modified:
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2010-11-19 17:49:49 UTC (rev 22928)
@@ -9,6 +9,9 @@
<osgi:reference id="cyNetworkNamingServiceRef"
interface="org.cytoscape.session.CyNetworkNaming" />
+ <osgi:reference id="undoSupportServiceRef"
+ interface="org.cytoscape.work.undo.UndoSupport" />
+
<osgi:reference id="cyNetworkViewFactoryServiceRef"
interface="org.cytoscape.view.model.CyNetworkViewFactory" />
@@ -94,6 +97,15 @@
</osgi:service>
<!-- selection -->
+ <osgi:service id="deleteSelectedNodesAndEdgesTaskFactoryService"
ref="deleteSelectedNodesAndEdgesTaskFactory"
+ interface="org.cytoscape.work.TaskFactory">
+ <osgi:service-properties>
+ <entry key="title" value="Delete Selected Nodes and
Edges..." />
+ <entry key="preferredMenu" value="Edit" />
+ <entry key="enableFor" value="selectedNodesOrEdges" />
+ </osgi:service-properties>
+ </osgi:service>
+
<osgi:service id="selectAllTaskFactoryService"
ref="selectAllTaskFactory"
interface="org.cytoscape.task.NetworkTaskFactory">
<osgi:service-properties>
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
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2010-11-19 17:49:49 UTC (rev 22928)
@@ -52,12 +52,20 @@
<constructor-arg ref="streamUtilRef" />
</bean>
-<!--To set the Current Network through another TaskFactory-->
+ <!--To set the Current Network through another TaskFactory-->
<bean id="setCurrentNetworkTaskFactory"
class="org.cytoscape.task.internal.setcurrent.SetCurrentNetworkTaskFactoryImpl">
<constructor-arg ref="cyApplicationManagerServiceRef"/>
<constructor-arg ref="cyNetworkManagerServiceRef"/>
</bean>
+ <bean id="deleteSelectedNodesAndEdgesTaskFactory"
+
class="org.cytoscape.task.internal.networkobjects.DeleteSelectedNodesAndEdgesTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
+ <constructor-arg ref="cyRootNetworkFactoryServiceRef" />
+ <constructor-arg ref="cyApplicationManagerServiceRef" />
+ <constructor-arg ref="cyNetworkViewManagerServiceRef" />
+ </bean>
+
<bean id="selectAllTaskFactory"
class="org.cytoscape.task.internal.select.SelectAllTaskFactory">
<constructor-arg ref="cyNetworkViewManagerServiceRef" />
Deleted:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteAction.java
===================================================================
---
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteAction.java
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteAction.java
2010-11-19 17:49:49 UTC (rev 22928)
@@ -1,176 +0,0 @@
-/* -*-Java-*-
-
********************************************************************************
- *
- * File: DeleteAction.java
- * RCS: $Header: $
- * Description:
- * Author: Allan Kuchinsky
- * Created: Tue May 24 06:54:43 2005
- * Modified: Tue Jan 09 05:16:48 2007 (Michael L. Creech)
cre...@w235krbza760
- * Language: Java
- * Package:
- * Status: Experimental (Do Not Distribute)
- *
- * (c) Copyright 2006, Agilent Technologies, all rights reserved.
- *
-
********************************************************************************
- *
- * Revisions:
- *
-* Fri May 11 16:58:47 2007 (Michael L. Creech) cre...@w235krbza760
-* Removed unneeded imports and update some generics.
- * Tue Jan 09 05:15:18 2007 (Michael L. Creech) cre...@w235krbza760
- * Added setup of Delete keyboard accelerator to constructors.
- * Wed Dec 27 06:54:56 2006 (Michael L. Creech) cre...@w235krbza760
- * Removed use of _title and removed 2 parameter constructor, removed unused
- * local variables.
-
********************************************************************************
- */
-package org.cytoscape.internal.actions;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.swing.event.MenuEvent;
-import javax.swing.KeyStroke;
-
-import org.cytoscape.application.swing.AbstractCyAction;
-import org.cytoscape.model.CyTableUtil;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyTableEntry;
-import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
-import org.cytoscape.model.subnetwork.CySubNetwork;
-import org.cytoscape.view.model.CyNetworkViewManager;
-import org.cytoscape.session.CyApplicationManager;
-import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.work.undo.UndoSupport;
-
-
-
-/**
- *
- * action for deleting selected Cytoscape nodes and edges
- *
- * @author Allan Kuchinsky, Agilent Technologies
- * @version 1.0
- *
- */
-public class DeleteAction extends AbstractCyAction {
- private static final long serialVersionUID = -5769255815829787466L;
-
- private CyRootNetworkFactory cyRootNetworkFactory;
-
- /**
- *
- */
- public static final String ACTION_TITLE = "Delete Selected Nodes and
Edges";
-
- private CyTableEntry graphObj = null;
-
- private final UndoSupport undo;
- private final CyNetworkViewManager networkViewManager;
-
- /**
- * action for deleting selected Cytoscape nodes and edges
- */
- public DeleteAction(final UndoSupport undo, final CyRootNetworkFactory
root,
- final CyApplicationManager applicationManager,
- final CyNetworkViewManager networkViewManager)
- {
- this(null,undo,root, applicationManager, networkViewManager);
- }
-
- /**
- * perform deletion on the input object. if object is a Node, then this
will
- * result in also deleting the edges adjacent to the node
- *
- * @param obj the object to be deleted
- */
-
- public DeleteAction(CyTableEntry obj, final UndoSupport undo, final
CyRootNetworkFactory root, final CyApplicationManager applicationManager, final
CyNetworkViewManager networkViewManager) {
- super(ACTION_TITLE,applicationManager);
- this.networkViewManager = networkViewManager;
- setPreferredMenu("Edit");
-
setAcceleratorKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
- graphObj = obj;
- this.undo = undo;
- cyRootNetworkFactory = root;
- }
-
-
- /**
- * Delete all selected nodes, edges, edges adjacent to the selected
nodes,
- * and any nodes/edges passed as arguments.
- */
- public void actionPerformed(ActionEvent ae) {
-
- CyNetworkView myView =
applicationManager.getCurrentNetworkView();
-
- // delete from the base CySubNetwork so that our changes can be
undone
- CySubNetwork cyNet = cyRootNetworkFactory.convert(
myView.getModel() ).getBaseNetwork();
- List<CyEdge> selEdges =
CyTableUtil.getEdgesInState(cyNet,"selected",true);
- List<CyNode> selNodes =
CyTableUtil.getNodesInState(cyNet,"selected",true);
- CyNode cyNode;
- CyEdge cyEdge;
-
- // if an argument exists, add it to the appropriate list
- if (graphObj != null ) {
- if ( graphObj instanceof CyNode) {
- cyNode = (CyNode) graphObj;
- if ( !selNodes.contains(cyNode) )
- selNodes.add(cyNode);
- } else if ( graphObj instanceof CyEdge) {
- cyEdge = (CyEdge) graphObj;
- if ( !selEdges.contains(cyEdge) )
- selEdges.add(cyEdge);
- }
- }
-
- Set<CyEdge> edges = new HashSet<CyEdge>();
- Set<CyNode> nodes = new HashSet<CyNode>();
-
- // add all node indices
- for (int i = 0; i < selNodes.size(); i++) {
- cyNode = selNodes.get(i);
- nodes.add(cyNode);
- }
-
- // add all selected edge indices
- for (int i = 0; i < selEdges.size(); i++) {
- cyEdge = selEdges.get(i);
- edges.add( cyEdge );
- }
-
- undo.getUndoableEditSupport().postEdit( new
DeleteEdit(cyNet,nodes,edges,this, networkViewManager) );
-
- // delete the actual nodes and edges
-
- for ( CyNode nd : nodes )
- cyNet.removeNode(nd);
- for ( CyEdge ed : edges )
- cyNet.removeEdge(ed);
-
- //Cytoscape.firePropertyChange(Cytoscape.NETWORK_MODIFIED,
null, cyNet);
- }
-
- public void menuSelected(MenuEvent me) {
- CyNetwork n = applicationManager.getCurrentNetwork();
- if ( n == null ) {
- setEnabled(false);
- return;
- }
-
- List<CyNode> nodes = CyTableUtil.getNodesInState(n,"selected",true);
- List<CyEdge> edges = CyTableUtil.getEdgesInState(n,"selected",true);
-
- if ( nodes.size() > 0 || edges.size() > 0 )
- setEnabled(true);
- else
- setEnabled(false);
- }
-}
Deleted:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteEdit.java
===================================================================
---
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteEdit.java
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/actions/DeleteEdit.java
2010-11-19 17:49:49 UTC (rev 22928)
@@ -1,106 +0,0 @@
-
-package org.cytoscape.internal.actions;
-
-import static
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NODE_X_LOCATION;
-import static
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NODE_Y_LOCATION;
-
-import java.util.Set;
-
-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.util.swing.CyAbstractEdit;
-
-
-/**
- * An undoable edit that will undo and redo deletion of nodes and edges.
- */
-class DeleteEdit extends CyAbstractEdit {
-
- private static final long serialVersionUID = -1164181258019250610L;
- Set<CyNode> nodes;
- Set<CyEdge> edges;
- double[] xPos;
- double[] yPos;
- final CySubNetwork net;
- final DeleteAction deleteAction;
- final CyNetworkViewManager netViewMgr;
-
- DeleteEdit(CySubNetwork net, Set<CyNode> nodes, Set<CyEdge> edges,
DeleteAction deleteAction, CyNetworkViewManager netViewMgr) {
- super("Delete");
- this.deleteAction = deleteAction;
- if ( net == null )
- throw new NullPointerException("network is null");
- this.net = net;
-
- if ( netViewMgr == null )
- throw new NullPointerException("network manager is
null");
- this.netViewMgr = netViewMgr;
-
- if ( nodes == null )
- throw new NullPointerException("nodes is null");
- this.nodes = nodes;
-
- if ( edges == null )
- throw new NullPointerException("edges is null");
- this.edges = edges;
-
- // save the positions of the nodes
- xPos = new double[nodes.size()];
- yPos = new double[nodes.size()];
- CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
- if ( netView != null ) {
- int i = 0;
- for ( CyNode n : nodes ) {
- View<CyNode> nv = netView.getNodeView(n);
- xPos[i] = nv.getVisualProperty(NODE_X_LOCATION);
- yPos[i] = nv.getVisualProperty(NODE_Y_LOCATION);
- i++;
- }
- }
- }
-
- public void redo() {
- super.redo();
-
- for ( CyNode n : nodes )
- net.removeNode(n);
- for ( CyEdge e : edges )
- net.removeEdge(e);
-
- CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
-
- // Manually call update presentation
- netView.updateView();
-
- deleteAction.setEnabled(false);
- }
-
- public void undo() {
- super.undo();
-
- for ( CyNode n : nodes )
- net.addNode(n);
- for ( CyEdge e : edges )
- net.addEdge(e);
-
- CyNetworkView netView =
netViewMgr.getNetworkView(net.getSUID());
- 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] );
- i++;
- }
- }
-
- netView.updateView();
-
- deleteAction.setEnabled(true);
- }
-}
Modified:
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2010-11-19 17:49:49 UTC (rev 22928)
@@ -96,8 +96,6 @@
interface="org.cytoscape.application.swing.CyAction" />
<osgi:service id="redoActionService" ref="redoAction"
interface="org.cytoscape.application.swing.CyAction" />
- <osgi:service id="deleteActionService" ref="deleteAction"
- interface="org.cytoscape.application.swing.CyAction" />
<osgi:service id="preferenceActionService" ref="preferenceAction"
interface="org.cytoscape.application.swing.CyAction" />
<osgi:service id="bookmarkActionService" ref="bookmarkAction"
Modified:
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2010-11-19 17:49:04 UTC (rev 22927)
+++
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2010-11-19 17:49:49 UTC (rev 22928)
@@ -121,12 +121,6 @@
<constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyApplicationManagerServiceRef" />
</bean>
- <bean id="deleteAction"
class="org.cytoscape.internal.actions.DeleteAction">
- <constructor-arg ref="undoSupportServiceRef" />
- <constructor-arg ref="cyRootNetworkFactoryServiceRef" />
- <constructor-arg ref="cyApplicationManagerServiceRef" />
- <constructor-arg ref="cyNetworkViewManagerServiceRef" />
- </bean>
<bean id="preferenceAction"
class="org.cytoscape.internal.actions.PreferenceAction">
<constructor-arg ref="cytoscapeDesktop" />
<constructor-arg ref="cyApplicationManagerServiceRef" />
--
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.