@private
findEventsFromSlice :: Resource -> <ReadGraph, Proc> [Resource]
findEventsFromSlice slice = do
- collectionToList (objects_ slice L0.ConsistsOf)
\ No newline at end of file
+ collectionToList (objects_ slice L0.ConsistsOf)
+
+importJava "org.simantics.event.util.EventExporter" where
+ """
+ exportCurrentEvents "\t" "X:/events.txt"
+
+ exports the currently visible events into the specified
+ text file using the specified column separator string.
+ This function should be used when invoking outside of
+ a database transaction.
+ """
+ exportCurrentEvents :: String -> String -> ()
+
+ """
+ exportCurrentEventsG "\t" "X:/events.txt"
+
+ exports the currently visible events into the specified
+ text file using the specified column separator string.
+ This variant must be used when invoking the method with
+ DB transaction.
+ """
+ exportCurrentEventsG :: String -> String -> <ReadGraph> ()
import org.simantics.db.exception.DatabaseException;
import org.simantics.event.view.contribution.EventLabelRule;
import org.simantics.event.view.contribution.ProjectEventsRule;
-import org.simantics.utils.FileUtils;
import org.simantics.utils.strings.EString;
/**
*/
public class EventExporter {
+ /**
+ * SCL API.
+ *
+ * @param outputFile
+ * @throws DatabaseException
+ * @throws IOException
+ */
+ public static void exportCurrentEvents(String columnSeparator, String outputFile) throws DatabaseException, IOException {
+ new EventExporter().exportCsv(null, new File(outputFile), columnSeparator);
+ }
+
+ /**
+ * SCL API.
+ *
+ * @param outputFile
+ * @throws DatabaseException
+ * @throws IOException
+ */
+ public static void exportCurrentEventsG(ReadGraph graph, String columnSeparator, String outputFile) throws DatabaseException, IOException {
+ new EventExporter().exportCsv(graph, null, new File(outputFile), columnSeparator);
+ }
+
public EventExporter() {
}
* @throws DatabaseException
* @throws IOException
*/
- public void exportCsv(final IProgressMonitor monitor, File file, final String columnSeparator) throws DatabaseException, IOException {
- final PrintStream out = new PrintStream(file);
- try {
+ public void exportCsv(IProgressMonitor monitor, File file, String columnSeparator) throws DatabaseException, IOException {
+ try (PrintStream out = new PrintStream(file)) {
Simantics.getSession().syncRequest(new ReadRequest() {
@Override
public void run(ReadGraph graph) throws DatabaseException {
exportCsv(graph, monitor, out, columnSeparator);
}
});
- } finally {
- FileUtils.uncheckedClose(out);
+ }
+ }
+
+ /**
+ * @param graph
+ * @param monitor
+ * the progress monitor to use for reporting progress to the
+ * user. It is the caller's responsibility to call done() on the
+ * given monitor. Accepts <code>null</code>, indicating that no
+ * progress should be reported and that the operation cannot be
+ * cancelled.</pre>
+ * @param file
+ * @param columnSeparator
+ * @throws DatabaseException
+ * @throws IOException
+ */
+ public void exportCsv(ReadGraph graph, IProgressMonitor monitor, File file, String columnSeparator) throws DatabaseException, IOException {
+ try (PrintStream out = new PrintStream(file)) {
+ exportCsv(graph, monitor, out, columnSeparator);
}
}