1 package org.simantics.issues.ui;
\r
3 import java.util.Collection;
\r
4 import java.util.Collections;
\r
5 import java.util.Set;
\r
7 import org.simantics.browsing.ui.model.children.ChildRule;
\r
8 import org.simantics.db.ReadGraph;
\r
9 import org.simantics.db.Resource;
\r
10 import org.simantics.db.exception.DatabaseException;
\r
11 import org.simantics.db.layer0.variable.Variable;
\r
12 import org.simantics.issues.common.IssuesOfSeverity;
\r
13 import org.simantics.issues.ui.ontology.IssueUIResource;
\r
15 public class SeverityFolderRule implements ChildRule {
\r
17 final Resource rule;
\r
19 public SeverityFolderRule(Resource rule) {
\r
24 public boolean isCompatible(Class<?> contentType) {
\r
25 return contentType.equals(Resource.class);
\r
29 public Collection<?> getChildren(ReadGraph graph, Object parent) throws DatabaseException {
\r
31 IssueUIResource UI = IssueUIResource.getInstance(graph);
\r
32 Resource project = (Resource)parent;
\r
33 Resource severity = graph.getSingleObject(rule, UI.IssueBrowseContext_SeverityFolderRule_HasSeverity);
\r
34 Set<Variable> issues = graph.syncRequest(new IssuesOfSeverity(project, severity));
\r
35 if(!issues.isEmpty()) return Collections.singleton(project);
\r
36 else return Collections.emptyList();
\r
41 public Collection<?> getParents(ReadGraph graph, Object child)
\r
42 throws DatabaseException {
\r
43 return Collections.singleton(child);
\r