Author: pwang
Date: 2012-07-25 17:52:31 -0700 (Wed, 25 Jul 2012)
New Revision: 29997
Added:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfNetworkWriterFactory.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfWriter.java
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
Log:
Port the NNF writer from 2.x
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
2012-07-26 00:51:53 UTC (rev 29996)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/CyActivator.java
2012-07-26 00:52:31 UTC (rev 29997)
@@ -67,7 +67,7 @@
import org.cytoscape.io.internal.write.properties.PropertiesWriterFactoryImpl;
import org.cytoscape.io.internal.write.session.SessionWriterFactoryImpl;
import org.cytoscape.io.internal.write.sif.SifNetworkWriterFactory;
-//import org.cytoscape.io.internal.write.nnf.NnfNetworkWriterFactory;
+import org.cytoscape.io.internal.write.nnf.NnfNetworkWriterFactory;
import org.cytoscape.io.internal.write.vizmap.VizmapWriterFactoryImpl;
import org.cytoscape.io.internal.write.xgmml.SessionXGMMLWriterFactory;
import org.cytoscape.io.internal.write.xgmml.GenericXGMMLWriterFactory;
@@ -210,7 +210,7 @@
PSWriterFactory psWriterFactory = new PSWriterFactory(psFilter);
SVGWriterFactory svgWriterFactory = new
SVGWriterFactory(svgFilter);
SifNetworkWriterFactory sifNetworkViewWriterFactory = new
SifNetworkWriterFactory(sifFilter);
-// NnfNetworkWriterFactory nnfNetworkViewWriterFactory = new
NnfNetworkWriterFactory(nnfFilter);
+ NnfNetworkWriterFactory nnfNetworkViewWriterFactory = new
NnfNetworkWriterFactory(cyNetworkManagerServiceRef,nnfFilter);
GenericXGMMLWriterFactory xgmmlWriterFactory = new
GenericXGMMLWriterFactory(xgmmlFilter,renderingEngineManagerServiceRef,unrecognizedVisualPropertyManager,cyNetworkManagerServiceRef,cyRootNetworkManagerServiceRef,visualMappingManagerServiceRef);
SessionXGMMLWriterFactory sessionXgmmlWriterFactory = new
SessionXGMMLWriterFactory(sessXgmmlFileFilter,renderingEngineManagerServiceRef,unrecognizedVisualPropertyManager,cyNetworkManagerServiceRef,cyRootNetworkManagerServiceRef,visualMappingManagerServiceRef);
CysessionWriterFactoryImpl cysessionWriterFactory = new
CysessionWriterFactoryImpl(cysessionFilter);
@@ -273,7 +273,7 @@
registerAllServices(bc, psWriterFactory, new Properties());
registerAllServices(bc, svgWriterFactory, new Properties());
registerAllServices(bc, sifNetworkViewWriterFactory, new
Properties());
-// registerAllServices(bc, nnfNetworkViewWriterFactory, new
Properties());
+ registerAllServices(bc, nnfNetworkViewWriterFactory, new
Properties());
registerAllServices(bc, xgmmlWriterFactory, new Properties());
registerAllServices(bc, cysessionWriterFactory, new
Properties());
registerAllServices(bc, bookmarksWriterFactory, new
Properties());
Added:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfNetworkWriterFactory.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfNetworkWriterFactory.java
(rev 0)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfNetworkWriterFactory.java
2012-07-26 00:52:31 UTC (rev 29997)
@@ -0,0 +1,29 @@
+package org.cytoscape.io.internal.write.nnf;
+
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.write.CyNetworkViewWriterFactory;
+import org.cytoscape.io.write.CyWriter;
+import java.io.OutputStream;
+import org.cytoscape.io.internal.write.AbstractCyWriterFactory;
+
+public class NnfNetworkWriterFactory extends AbstractCyWriterFactory
implements CyNetworkViewWriterFactory {
+
+ private final CyNetworkManager cyNetworkManagerServiceRef;
+ public NnfNetworkWriterFactory(CyNetworkManager
cyNetworkManagerServiceRef,CyFileFilter filter) {
+ super(filter);
+ this.cyNetworkManagerServiceRef = cyNetworkManagerServiceRef;
+ }
+
+ @Override
+ public CyWriter createWriter(OutputStream outputStream, CyNetworkView
view) {
+ return new NnfWriter(cyNetworkManagerServiceRef, outputStream);
+ }
+
+ @Override
+ public CyWriter createWriter(OutputStream outputStream, CyNetwork
network) {
+ return new NnfWriter(cyNetworkManagerServiceRef,outputStream);
+ }
+}
Added:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfWriter.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfWriter.java
(rev 0)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/nnf/NnfWriter.java
2012-07-26 00:52:31 UTC (rev 29997)
@@ -0,0 +1,116 @@
+package org.cytoscape.io.internal.write.nnf;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.cytoscape.io.write.CyWriter;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.work.TaskMonitor;
+
+public class NnfWriter implements CyWriter {
+
+ private OutputStream outputStream;
+ //private CyNetwork network;
+ private final CyNetworkManager cyNetworkManagerServiceRef;
+
+ public NnfWriter(CyNetworkManager cyNetworkManagerServiceRef,
OutputStream outputStream) {
+ this.outputStream = outputStream;
+ //this.network = network;
+ this.cyNetworkManagerServiceRef = cyNetworkManagerServiceRef;
+ }
+
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws Exception {
+ taskMonitor.setProgress(0.0);
+ taskMonitor.setStatusMessage("Exporting Nested Networks...");
+
+ final Writer writer = new OutputStreamWriter(outputStream);
+
+
+ final Set<CyNetwork> networks =
this.cyNetworkManagerServiceRef.getNetworkSet();
+ final float networkCount = networks.size();
+ try {
+ float writtenCount = 0.0f;
+ for (final CyNetwork network : networks) {
+ writeNetwork(writer, network);
+ ++writtenCount;
+ taskMonitor.setProgress(Math.round(writtenCount
/ networkCount));
+ }
+ } catch (Exception e) {
+ taskMonitor.setStatusMessage("Cannot export networks as
NNF.");
+ }
+ finally {
+ writer.close();
+ }
+
+ taskMonitor.setProgress(1.0);
+ }
+
+
+ private void writeNetwork(Writer writer, final CyNetwork network)
throws IOException {
+ final String title =
network.getRow(network).get(CyNetwork.NAME, String.class);
+
+ final Set<String> encounteredNodes = new HashSet<String>();
+
+ final List<CyEdge> edges = (List<CyEdge>)network.getEdgeList();
+ for (final CyEdge edge : edges) {
+ writer.write(escapeID(title) + " ");
+
+ CyNode source = edge.getSource();
+ final String sourceID =
network.getRow(source).get(CyNetwork.NAME, String.class);
+
+ encounteredNodes.add(sourceID);
+ writer.write(escapeID(sourceID) + " ");
+
+ String interactionName =
network.getRow(edge).get("interaction", String.class);
+
+ if (interactionName == null)
+ interactionName = "xx";
+ writer.write(escapeID(interactionName) + " ");
+
+ CyNode target = edge.getTarget();
+ final String targetID =
network.getRow(target).get(CyNetwork.NAME, String.class);
+
+ encounteredNodes.add(targetID);
+ writer.write(escapeID(targetID) + "\n");
+ }
+
+ final List<CyNode> nodes = network.getNodeList();
+ for (final CyNode node : nodes) {
+ final String nodeID =
network.getRow(node).get(CyNetwork.NAME, String.class);
+
+ if (!encounteredNodes.contains(nodeID))
+ writer.write(escapeID(title) + " " +
escapeID(nodeID) + "\n");
+ }
+ }
+
+
+ private String escapeID(final String ID) {
+ final StringBuilder builder = new StringBuilder(ID.length());
+ for (int i = 0; i < ID.length(); ++i) {
+ final char ch = ID.charAt(i);
+ if (ch == ' ' || ch == '\t' || ch == '\\')
+ builder.append('\\');
+ builder.append(ch);
+ }
+
+ return builder.toString();
+ }
+
+
+ @Override
+ public void cancel() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
--
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.