]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/SeverityFolderRule.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.issues.ui / src / org / simantics / issues / ui / SeverityFolderRule.java
1 package org.simantics.issues.ui;
2
3 import java.util.Collection;
4 import java.util.Collections;
5 import java.util.Set;
6
7 import org.simantics.browsing.ui.model.children.ChildRule;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.exception.DatabaseException;
11 import org.simantics.db.layer0.variable.Variable;
12 import org.simantics.issues.common.IssuesOfSeverity;
13 import org.simantics.issues.ui.ontology.IssueUIResource;
14
15 public class SeverityFolderRule implements ChildRule {
16
17         final Resource rule;
18         
19         public SeverityFolderRule(Resource rule) {
20                 this.rule = rule;
21         }
22         
23     @Override
24     public boolean isCompatible(Class<?> contentType) {
25         return contentType.equals(Resource.class);
26     }
27
28     @Override
29     public Collection<?> getChildren(ReadGraph graph, Object parent) throws DatabaseException {
30
31         IssueUIResource UI = IssueUIResource.getInstance(graph);
32         Resource project = (Resource)parent;
33         Resource severity = graph.getSingleObject(rule, UI.IssueBrowseContext_SeverityFolderRule_HasSeverity);
34         Set<Variable> issues = graph.syncRequest(new IssuesOfSeverity(project, severity));
35         if(!issues.isEmpty()) return Collections.singleton(project);
36         else return Collections.emptyList();
37         
38     }
39
40     @Override
41     public Collection<?> getParents(ReadGraph graph, Object child)
42             throws DatabaseException {
43         return Collections.singleton(child);
44     }
45
46
47 }