Author: jm
Date: 2011-05-10 09:08:11 -0700 (Tue, 10 May 2011)
New Revision: 24994
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/datatable/csv/CSVCyWriter.java
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterFactoryImpl.java
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterImpl.java
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Added preliminary support for writing tables to session files
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/datatable/csv/CSVCyWriter.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/datatable/csv/CSVCyWriter.java
2011-05-10 16:06:58 UTC (rev 24993)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/datatable/csv/CSVCyWriter.java
2011-05-10 16:08:11 UTC (rev 24994)
@@ -44,7 +44,7 @@
writeHeader(writer, columns);
writeValues(writer, columns);
} finally {
- writer.close();
+ writer.flush();
}
}
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterFactoryImpl.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterFactoryImpl.java
2011-05-10 16:06:58 UTC (rev 24993)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterFactoryImpl.java
2011-05-10 16:08:11 UTC (rev 24994)
@@ -2,6 +2,7 @@
import org.cytoscape.session.CySession;
import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.write.CyTableWriterManager;
import org.cytoscape.io.write.CyWriter;
import org.cytoscape.io.write.CySessionWriterFactory;
import org.cytoscape.io.write.CyNetworkViewWriterManager;
@@ -15,8 +16,10 @@
private final CyFileFilter bookmarksFilter;
private final CyFileFilter cysessionFilter;
private final CyFileFilter propertiesFilter;
+ private final CyFileFilter tableFilter;
private final CyNetworkViewWriterManager networkViewWriterMgr;
private final CyPropertyWriterManager propertyWriterMgr;
+ private final CyTableWriterManager tableWriterMgr;
private OutputStream outputStream;
private CySession session;
@@ -27,23 +30,28 @@
final CyFileFilter xgmmlFilter,
final CyFileFilter bookmarksFilter,
final CyFileFilter cysessionFilter,
- final CyFileFilter propertiesFilter,
+ final CyFileFilter propertiesFilter,
+ final CyFileFilter tableFilter,
final CyNetworkViewWriterManager
networkViewWriterMgr,
- final CyPropertyWriterManager
propertyWriterMgr) {
+ final CyPropertyWriterManager
propertyWriterMgr,
+ final CyTableWriterManager
tableWriterMgr) {
this.thisFilter = thisFilter;
this.xgmmlFilter = xgmmlFilter;
this.bookmarksFilter = bookmarksFilter;
this.cysessionFilter = cysessionFilter;
this.propertiesFilter = propertiesFilter;
+ this.tableFilter = tableFilter;
this.networkViewWriterMgr = networkViewWriterMgr;
this.propertyWriterMgr = propertyWriterMgr;
+ this.tableWriterMgr = tableWriterMgr;
}
@Override
public CyWriter getWriterTask() {
return new SessionWriterImpl(outputStream, session,
networkViewWriterMgr,
- propertyWriterMgr, xgmmlFilter,
bookmarksFilter,
- cysessionFilter, propertiesFilter);
+ propertyWriterMgr, tableWriterMgr,
xgmmlFilter,
+ bookmarksFilter, cysessionFilter,
propertiesFilter,
+ tableFilter);
}
@Override
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterImpl.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterImpl.java
2011-05-10 16:06:58 UTC (rev 24993)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/session/SessionWriterImpl.java
2011-05-10 16:08:11 UTC (rev 24994)
@@ -36,52 +36,43 @@
package org.cytoscape.io.internal.write.session;
import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.Writer;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
-import org.cytoscape.property.session.*;
-import org.cytoscape.property.bookmark.*;
+import javax.xml.bind.JAXBException;
+import javax.xml.stream.XMLStreamException;
-import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
-
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyTableUtil;
-import org.cytoscape.view.model.View;
-import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.io.CyFileFilter;
import org.cytoscape.io.write.CyNetworkViewWriterManager;
import org.cytoscape.io.write.CyPropertyWriterManager;
+import org.cytoscape.io.write.CyTableWriterManager;
+import org.cytoscape.io.write.CyWriter;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.property.session.Cysession;
+import org.cytoscape.property.session.Cytopanels;
+import org.cytoscape.property.session.Network;
+import org.cytoscape.property.session.NetworkTree;
+import org.cytoscape.property.session.Plugins;
+import org.cytoscape.property.session.SessionState;
import org.cytoscape.session.CySession;
+import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.TaskMonitor;
-import javax.swing.*;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.stream.XMLStreamException;
-import java.awt.*;
-import java.io.*;
-import java.math.BigInteger;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.cytoscape.io.write.CyWriter;
-import org.cytoscape.work.TaskMonitor;
-import org.cytoscape.work.AbstractTask;
-import org.cytoscape.session.CySession;
-
/**
* Write session states into files.<br>
* Basic functions of this class are:<br>
@@ -159,27 +150,33 @@
private final CySession session;
private final CyNetworkViewWriterManager networkViewWriterMgr;
private final CyPropertyWriterManager propertyWriterMgr;
+ private final CyTableWriterManager tableWriterMgr;
private final CyFileFilter xgmmlFilter;
private final CyFileFilter bookmarksFilter;
private final CyFileFilter cysessionFilter;
private final CyFileFilter propertiesFilter;
+ private final CyFileFilter tableFilter;
public SessionWriterImpl(final OutputStream outputStream,
final CySession session,
final CyNetworkViewWriterManager
networkViewWriterMgr,
- final CyPropertyWriterManager
propertyWriterMgr,
+ final CyPropertyWriterManager
propertyWriterMgr,
+ final CyTableWriterManager tableWriterMgr,
final CyFileFilter xgmmlFilter,
final CyFileFilter bookmarksFilter,
final CyFileFilter cysessionFilter,
- final CyFileFilter propertiesFilter) {
+ final CyFileFilter propertiesFilter,
+ final CyFileFilter tableFilter) {
this.outputStream = outputStream;
this.session = session;
this.networkViewWriterMgr = networkViewWriterMgr;
this.propertyWriterMgr = propertyWriterMgr;
+ this.tableWriterMgr = tableWriterMgr;
this.xgmmlFilter = xgmmlFilter;
this.bookmarksFilter = bookmarksFilter;
this.cysessionFilter = cysessionFilter;
this.propertiesFilter = propertiesFilter;
+ this.tableFilter = tableFilter;
// For now, session ID is time and date
final DateFormat df = new SimpleDateFormat("yyyy_MM_dd-HH_mm");
@@ -203,6 +200,7 @@
for (CyNetworkView netView : session.getNetworkViews())
zipNetwork(netView);
+ zipGlobalTables();
zipCySession();
zipVizmapProps();
zipCytoscapeProps();
@@ -356,4 +354,30 @@
return newFileName;
}
+ private void zipGlobalTables() throws Exception {
+ Set<CyNetworkView> views = session.getNetworkViews();
+ Set<Long> excluded = new HashSet<Long>();
+ for (CyNetworkView view : views) {
+ CyNetwork network = view.getModel();
+
excluded.add(network.getDefaultNetworkTable().getSUID());
+ excluded.add(network.getDefaultNodeTable().getSUID());
+ excluded.add(network.getDefaultEdgeTable().getSUID());
+ }
+ Set<CyTable> tables = session.getTables();
+ for (CyTable table : tables) {
+ if (excluded.contains(table.getSUID())) {
+ continue;
+ }
+
+ String fileName = String.format("%d|%s.table",
table.getSUID(), URLEncoder.encode(table.getTitle(), "UTF-8"));
+ zos.putNextEntry(new ZipEntry(sessionDir + fileName));
+ try {
+ CyWriter writer =
tableWriterMgr.getWriter(table, tableFilter, zos);
+ writer.run(taskMonitor);
+ } finally {
+ zos.closeEntry();
+ }
+ }
+ }
+
}
Modified:
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-05-10 16:06:58 UTC (rev 24993)
+++ core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-05-10 16:08:11 UTC (rev 24994)
@@ -398,8 +398,10 @@
<constructor-arg ref="bookmarksFilter" />
<constructor-arg ref="cysessionFilter" />
<constructor-arg ref="propertiesFilter" />
+ <constructor-arg ref="csvFilter" />
<constructor-arg ref="networkViewWriterManager" />
<constructor-arg ref="propertyWriterManager" />
+ <constructor-arg ref="tableWriterManager" />
</bean>
<!-- All Reader Managers -->
--
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.