1 package org.simantics.interop.issues;
\r
3 import org.simantics.db.AsyncReadGraph;
\r
4 import org.simantics.db.ReadGraph;
\r
5 import org.simantics.db.procedure.AsyncListener;
\r
6 import org.simantics.db.request.Read;
\r
7 import org.simantics.utils.ui.ErrorLogger;
\r
10 * An issue whose state can be updated with an query
\r
11 * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
\r
14 public class GraphIssue extends AbstractIssue {
\r
16 private boolean disposed = false;
\r
19 * Creates an new Graph Issue
\r
20 * @param g access to graph
\r
21 * @param request Request that returns true if issue is still valid. If the request returns false, the issue is disposed.
\r
22 * @param description
\r
24 public GraphIssue(ReadGraph g, Read<Boolean> request, String description) {
\r
25 setDescription(description);
\r
26 IssueReporter.getInstance().addIssue(this);
\r
27 setRequest(g, request);
\r
30 public GraphIssue(String description) {
\r
31 setDescription(description);
\r
32 IssueReporter.getInstance().addIssue(this);
\r
35 public void setRequest(ReadGraph g, Read<Boolean> request) {
\r
36 g.asyncRequest(request,new AsyncListener<Boolean>() {
\r
38 public void execute(AsyncReadGraph graph, Boolean result) {
\r
48 public void exception(AsyncReadGraph graph, Throwable throwable) {
\r
49 ErrorLogger.defaultLogError("Error in GraphIssue handling, disposing issue \"" + getDescription()+"\"", throwable);
\r
54 public boolean isDisposed() {
\r
61 public void showInEditor() {
\r
66 public boolean supportsEditor() {
\r
71 public void dispose() {
\r
72 this.disposed = true;
\r