X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.issues.ui%2Fsrc%2Forg%2Fsimantics%2Fissues%2Fui%2Fcontribution%2FIssueContextDropAction.java;h=80be3d185e36c7956b48d92c3145e9d6ef6d8ecc;hp=79517a935fb64210a03f8c649dd582217f5a7108;hb=627664d06302d454ea3b3fe14d13bb5ab739d666;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/contribution/IssueContextDropAction.java b/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/contribution/IssueContextDropAction.java index 79517a935..80be3d185 100644 --- a/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/contribution/IssueContextDropAction.java +++ b/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/contribution/IssueContextDropAction.java @@ -1,62 +1,59 @@ -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 vars = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, PropertyVariables.class); - if (!vars.isEmpty()) { - //System.out.println("TODO: add property container to context"); - } else { - List 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 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() { - @Override - public void run(DatabaseException e) { - if (e != null) - ErrorLogger.defaultLogError(e); - } - }); - } - -} +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 vars = ISelectionUtils.getPossibleKeys(source, SelectionHints.KEY_MAIN, PropertyVariables.class); + if (!vars.isEmpty()) { + //System.out.println("TODO: add property container to context"); + } else { + List 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 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); + }); + } + +}