]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/contribution/IssueContextDropAction.java
Use Consumer interface instead of deprecated Callback interface
[simantics/platform.git] / bundles / org.simantics.issues.ui / src / org / simantics / issues / ui / contribution / IssueContextDropAction.java
index 79517a935fb64210a03f8c649dd582217f5a7108..80be3d185e36c7956b48d92c3145e9d6ef6d8ecc 100644 (file)
@@ -1,62 +1,59 @@
-package org.simantics.issues.ui.contribution;\r
-\r
-import java.util.List;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.Session;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.SelectionHints;\r
-import org.simantics.db.layer0.adapter.DropActionFactory;\r
-import org.simantics.issues.ontology.IssueResource;\r
-import org.simantics.modeling.PropertyVariables;\r
-import org.simantics.utils.datastructures.Callback;\r
-import org.simantics.utils.ui.ErrorLogger;\r
-import org.simantics.utils.ui.ISelectionUtils;\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-public class IssueContextDropAction implements DropActionFactory {\r
-\r
-    @Override\r
-    public Runnable create(ReadGraph g, Object target, Object source, int operation) throws DatabaseException {\r
-        //System.out.println("DROP: " + source + " -> " + target);\r
-\r
-        final Resource issue= ISelectionUtils.getSinglePossibleKey(target, SelectionHints.KEY_MAIN, Resource.class);\r
-        if (issue == null)\r
-            return null;\r
-\r
-        final List<PropertyVariables> vars = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, PropertyVariables.class);\r
-        if (!vars.isEmpty()) {\r
-            //System.out.println("TODO: add property container to context");\r
-        } else {\r
-            List<Resource> ctx = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, Resource.class);\r
-            if (!ctx.isEmpty())\r
-                addToIssueContext(g.getSession(), issue, ctx);\r
-        }\r
-\r
-        return null;\r
-    }\r
-\r
-    private void addToIssueContext(Session session, final Resource issue, final List<Resource> contexts) {\r
-        session.asyncRequest(new WriteRequest() {\r
-            @Override\r
-            public void perform(WriteGraph graph) throws DatabaseException {\r
-                final IssueResource ISSUE = IssueResource.getInstance(graph);\r
-                for (Resource ctx : contexts) {\r
-                    graph.claim(issue, ISSUE.Issue_HasContext, ISSUE.Issue_HasContext, ctx);\r
-                }\r
-            }\r
-        }, new Callback<DatabaseException>() {\r
-            @Override\r
-            public void run(DatabaseException e) {\r
-                if (e != null)\r
-                    ErrorLogger.defaultLogError(e);\r
-            }\r
-        });\r
-    }\r
-\r
-}\r
+package org.simantics.issues.ui.contribution;
+
+import java.util.List;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.Session;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.SelectionHints;
+import org.simantics.db.layer0.adapter.DropActionFactory;
+import org.simantics.issues.ontology.IssueResource;
+import org.simantics.modeling.PropertyVariables;
+import org.simantics.utils.datastructures.Callback;
+import org.simantics.utils.ui.ErrorLogger;
+import org.simantics.utils.ui.ISelectionUtils;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public class IssueContextDropAction implements DropActionFactory {
+
+    @Override
+    public Runnable create(ReadGraph g, Object target, Object source, int operation) throws DatabaseException {
+        //System.out.println("DROP: " + source + " -> " + target);
+
+        final Resource issue= ISelectionUtils.getSinglePossibleKey(target, SelectionHints.KEY_MAIN, Resource.class);
+        if (issue == null)
+            return null;
+
+        final List<PropertyVariables> vars = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, PropertyVariables.class);
+        if (!vars.isEmpty()) {
+            //System.out.println("TODO: add property container to context");
+        } else {
+            List<Resource> ctx = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, Resource.class);
+            if (!ctx.isEmpty())
+                addToIssueContext(g.getSession(), issue, ctx);
+        }
+
+        return null;
+    }
+
+    private void addToIssueContext(Session session, final Resource issue, final List<Resource> contexts) {
+        session.asyncRequest(new WriteRequest() {
+            @Override
+            public void perform(WriteGraph graph) throws DatabaseException {
+                final IssueResource ISSUE = IssueResource.getInstance(graph);
+                for (Resource ctx : contexts) {
+                    graph.claim(issue, ISSUE.Issue_HasContext, ISSUE.Issue_HasContext, ctx);
+                }
+            }
+        }, e -> {
+            if (e != null)
+                ErrorLogger.defaultLogError(e);
+        });
+    }
+
+}