-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);
+ }
+ }
+ }, new Callback<DatabaseException>() {
+ @Override
+ public void run(DatabaseException e) {
+ if (e != null)
+ ErrorLogger.defaultLogError(e);
+ }
+ });
+ }
+
+}