Made SCLExpressionIssueProvider component requests synchronous 29/2329/2
authorHannu Niemistö <hannu.niemisto@semantum.fi>
Thu, 18 Oct 2018 10:13:33 +0000 (13:13 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 18 Oct 2018 10:34:55 +0000 (10:34 +0000)
gitlab #149

Change-Id: I1104380dd544f3bc957cd008e46e9b284dd2f207

bundles/org.simantics.modeling/src/org/simantics/modeling/scl/issue/SCLExpressionIssueProvider.java

index 46142247f47855efcb3a78ca351568a3404d89da..1d04928c840f177d76eaebc3371c780972901b96 100644 (file)
@@ -12,13 +12,12 @@ import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.simantics.Simantics;
-import org.simantics.db.AsyncReadGraph;
 import org.simantics.db.Disposable;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
-import org.simantics.db.common.procedure.adapter.AsyncListenerAdapter;
 import org.simantics.db.common.procedure.adapter.DisposableListener;
 import org.simantics.db.common.procedure.adapter.DisposableSyncListener;
+import org.simantics.db.common.procedure.adapter.SyncListenerAdapter;
 import org.simantics.db.common.request.TernaryRead;
 import org.simantics.db.common.request.UnaryRead;
 import org.simantics.db.common.request.UniqueRead;
@@ -185,7 +184,7 @@ public class SCLExpressionIssueProvider implements SCLIssueProvider {
         }
     }
     
-    private static class ComponentSyncListenerAdapter extends AsyncListenerAdapter<Set<Resource>> implements Disposable {
+    private static class ComponentSyncListenerAdapter extends SyncListenerAdapter<Set<Resource>> implements Disposable {
 
         private ConcurrentHashMap<Resource, SCLValueDisposableSyncListener> currentlyListening = new ConcurrentHashMap<>();
         private boolean disposed;
@@ -196,7 +195,7 @@ public class SCLExpressionIssueProvider implements SCLIssueProvider {
         }
         
         @Override
-        public void execute(AsyncReadGraph graph, Set<Resource> newComponents) {
+        public void execute(ReadGraph graph, Set<Resource> newComponents) throws DatabaseException {
             if (currentlyListening.isEmpty() && newComponents.isEmpty()) {
                 // we can stop here as nothing will change
                 return;
@@ -217,7 +216,7 @@ public class SCLExpressionIssueProvider implements SCLIssueProvider {
             for (Resource addedComponent : addedComponents) {
                 SCLValueDisposableSyncListener listener = new SCLValueDisposableSyncListener(callback);
                 currentlyListening.put(addedComponent, listener);
-                graph.asyncRequest(new SCLValueRequest(addedComponent), listener);
+                graph.syncRequest(new SCLValueRequest(addedComponent), listener);
             }
         }