Author: kono
Date: 2011-06-08 19:01:49 -0700 (Wed, 08 Jun 2011)
New Revision: 25687
Added:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactory.java
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.xml
Log:
Missing task (Connect Selected Nodes) had been added.
Added:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
2011-06-09 02:01:49 UTC (rev 25687)
@@ -0,0 +1,68 @@
+package org.cytoscape.task.internal.edit;
+
+import java.util.List;
+
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyEdge.Type;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.model.events.RowsAboutToChangeEvent;
+import org.cytoscape.model.events.RowsFinishedChangingEvent;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+
+public class ConnectSelectedNodesTask extends AbstractTask {
+
+ // TODO: is it sufficient to create undirected edge only?
+ private static final String INTERACTION = "undirected";
+
+ private final CyNetwork network;
+ private final CyEventHelper eventHelper;
+
+ public ConnectSelectedNodesTask(final CyNetwork network, final
CyEventHelper eventHelper) {
+ if (network == null)
+ throw new NullPointerException("Network is null.");
+ this.network = network;
+ this.eventHelper = eventHelper;
+ }
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws Exception {
+
+ final List<CyNode> selectedNodes =
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
+
+ final CyTable nodeTable = network.getDefaultNodeTable();
+ final CyTable edgeTable = network.getDefaultEdgeTable();
+ try {
+ // Generate bundled event to avoid too many events
problem.
+ eventHelper.fireSynchronousEvent(new
RowsAboutToChangeEvent(this, nodeTable));
+ eventHelper.fireSynchronousEvent(new
RowsAboutToChangeEvent(this, edgeTable));
+
+ for (CyNode source : selectedNodes) {
+ for (CyNode target : selectedNodes) {
+ if (source != target) {
+ final List<CyNode>
sourceNeighborList = network.getNeighborList(source, Type.ANY);
+ if
(sourceNeighborList.contains(target) == false) {
+ // connect it
+ final CyEdge newEdge =
network.addEdge(source, target, false);
+ newEdge.getCyRow().set(
+
CyTableEntry.NAME,
+
source.getCyRow().get(CyTableEntry.NAME, String.class) + " (" + INTERACTION +
") "
+
+ target.getCyRow().get(CyTableEntry.NAME, String.class));
+
newEdge.getCyRow().set(CyEdge.INTERACTION, INTERACTION);
+
+ }
+ }
+ }
+ }
+ } finally {
+ eventHelper.fireSynchronousEvent(new
RowsFinishedChangingEvent(this, nodeTable));
+ eventHelper.fireSynchronousEvent(new
RowsFinishedChangingEvent(this, edgeTable));
+ }
+ }
+
+}
Added:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactory.java
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactory.java
2011-06-09 02:01:49 UTC (rev 25687)
@@ -0,0 +1,24 @@
+package org.cytoscape.task.internal.edit;
+
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.session.CyApplicationManager;
+import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.TaskIterator;
+
+public class ConnectSelectedNodesTaskFactory implements TaskFactory {
+
+ private final CyApplicationManager appManager;
+// private final CyNetworkViewManager viewManager;
+ private final CyEventHelper eventHelper;
+
+ public ConnectSelectedNodesTaskFactory(final CyApplicationManager
appManager, final CyEventHelper eventHelper) {
+ this.appManager = appManager;
+ this.eventHelper = eventHelper;
+ }
+
+ @Override
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(new
ConnectSelectedNodesTask(appManager.getCurrentNetwork(), eventHelper));
+ }
+
+}
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
2011-06-09 01:54:48 UTC (rev 25686)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-06-09 02:01:49 UTC (rev 25687)
@@ -428,7 +428,7 @@
<entry key="inToolBar" value="true" />
<entry key="toolBarGravity" value="3.1" />
<entry key="iconName"
value="/images/ximian/stock_zoom-in.png" />
- <entry key="accelerator" value="cmd equals />
+ <entry key="accelerator" value="cmd equals" />
</osgi:service-properties>
</osgi:service>
@@ -669,5 +669,15 @@
<osgi:listener bind-method="addFactory"
unbind-method="removeFactory"
ref="subnetworkBuilderUtil" />
</osgi:set>
+
+ <osgi:service id="connectSelectedNodesTaskFactoryService"
ref="connectSelectedNodesTaskFactory"
+ interface="org.cytoscape.work.TaskFactory">
+ <osgi:service-properties>
+ <entry key="title" value="Connect Selected Nodes" />
+ <entry key="enableFor" value="network" />
+ <entry key="preferredMenu" value="Edit" />
+ <entry key="toolBarGravity" value="2.5" />
+ </osgi:service-properties>
+ </osgi:service>
</beans>
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-09 01:54:48 UTC (rev 25686)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-06-09 02:01:49 UTC (rev 25687)
@@ -382,4 +382,10 @@
<constructor-arg ref="cyLayoutsServiceRef" />
</bean>
+
+ <bean id="connectSelectedNodesTaskFactory"
+
class="org.cytoscape.task.internal.edit.ConnectSelectedNodesTaskFactory">
+ <constructor-arg ref="cyApplicationManagerServiceRef" />
+ <constructor-arg ref="cyEventHelperRef" />
+ </bean>
</beans>
--
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.