]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop/src/org/simantics/interop/browsing/ImportNode2.java
7d8655a325bf66563af15b6f0035e00b4e783930
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / browsing / ImportNode2.java
1 package org.simantics.interop.browsing;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 import java.util.List;\r
6 \r
7 import org.eclipse.jface.resource.ImageDescriptor;\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.interop.Activator;\r
12 import org.simantics.interop.stubs.InteropResource;\r
13 \r
14 public class ImportNode2 implements INode {\r
15         \r
16         private Resource project;\r
17         \r
18         public ImportNode2(Resource project) {\r
19                 this.project = project;\r
20         }\r
21         \r
22         @SuppressWarnings("rawtypes")\r
23         @Override\r
24         public Object getAdapter(Class adapter) {\r
25                 return null;\r
26         }\r
27 \r
28         \r
29         \r
30         @Override\r
31         public ImageDescriptor getImage(ReadGraph graph) throws DatabaseException {\r
32                 return Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/silk/database_connect.png");\r
33         }\r
34         \r
35         @Override\r
36         public String getLabel(ReadGraph graph) throws DatabaseException {\r
37                 return "Imports";\r
38         }\r
39         \r
40         @Override\r
41         public boolean hasChildren(ReadGraph graph) throws DatabaseException {\r
42                 return getChildren(graph).size() > 0;\r
43         }\r
44         \r
45         @Override\r
46         public Collection<?> getChildren(ReadGraph graph) throws DatabaseException {\r
47                 List<INode> nodes = new ArrayList<INode>();\r
48                 InteropResource i = InteropResource.getInstance(graph);\r
49 \r
50                 Collection<Resource> objs = graph.getObjects(project, i.HasImportData);\r
51                 for (Resource o : objs) {\r
52                         if (graph.isInstanceOf(o, i.ImportLibrary)) {\r
53                                 INode node = graph.adapt(o, INode.class);\r
54                                 nodes.add(node);\r
55                         }\r
56                 }\r
57                 return nodes;\r
58 \r
59         }\r
60         \r
61         @Override\r
62         public int getCategory(ReadGraph graph) throws DatabaseException {\r
63                 return 0;\r
64         }\r
65         \r
66 \r
67 }\r