From: Hannu Niemistö Date: Mon, 14 May 2018 10:06:03 +0000 (+0000) Subject: Merge "Fixed record constructor resolving from namespaces" X-Git-Tag: v1.43.0~136^2~483 X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=commitdiff_plain;h=138667b7aae3a7984a8d0bb2a39461ce342b08e7;hp=131be5c413e1f9dc652b6b46c763625b30ad8350 Merge "Fixed record constructor resolving from namespaces" --- diff --git a/bundles/org.simantics.event/scl/Simantics/Event.scl b/bundles/org.simantics.event/scl/Simantics/Event.scl index 01a520d52..6839c964c 100644 --- a/bundles/org.simantics.event/scl/Simantics/Event.scl +++ b/bundles/org.simantics.event/scl/Simantics/Event.scl @@ -20,4 +20,25 @@ findEventSlices log = do @private findEventsFromSlice :: Resource -> [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 -> () diff --git a/bundles/org.simantics.event/src/org/simantics/event/util/EventExporter.java b/bundles/org.simantics.event/src/org/simantics/event/util/EventExporter.java index 10d2dfe7f..0e34770c5 100644 --- a/bundles/org.simantics.event/src/org/simantics/event/util/EventExporter.java +++ b/bundles/org.simantics.event/src/org/simantics/event/util/EventExporter.java @@ -26,7 +26,6 @@ import org.simantics.db.common.request.ReadRequest; 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; /** @@ -34,6 +33,28 @@ 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() { } @@ -49,17 +70,33 @@ public class 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 null, indicating that no + * progress should be reported and that the operation cannot be + * cancelled. + * @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); } } diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/completion/SCLCompletionProposal.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/completion/SCLCompletionProposal.java index 11749a4b2..3734513cb 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/completion/SCLCompletionProposal.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/completion/SCLCompletionProposal.java @@ -166,14 +166,15 @@ public class SCLCompletionProposal implements ICompletionProposal, ICompletionPr @Override public boolean validate(IDocument document, int offset, DocumentEvent event) { try { -// System.out.println("replacementOffset : " + replacementOffset); -// System.out.println("offset : " + offset); + String n = getName(); + //System.out.println(n + " (" + n.length() + ") " + replacementOffset + " " + offset); boolean a = offset >= replacementOffset; - boolean b = offset < replacementOffset + getName().length(); + boolean b = offset <= replacementOffset + n.length(); String s = document.get(replacementOffset, offset - replacementOffset); prefix = s; - String d = getName();//.substring(0, offset - prefixStart); - boolean c = d.toLowerCase().startsWith(s.toLowerCase()); + //System.out.println("prefix: " + s + " - " + prefix); + boolean c = n.toLowerCase().startsWith(s.toLowerCase()); + //System.out.println("matches: " + a + " " + b + " " + c); return a && b && c; } catch (BadLocationException x) { //x.printStackTrace();