]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.proconf.processeditor/src/org/simantics/processeditor/dialogs/LibraryComponentDialog.java
git-svn-id: https://www.simantics.org/svn/simantics/3d/branches/dev@8724 ac1ea38d...
[simantics/3d.git] / org.simantics.proconf.processeditor / src / org / simantics / processeditor / dialogs / LibraryComponentDialog.java
index f6b9473c5c58bb25e61deaf5af658e1958616404..18263b92ffb5fe001d0229e80fb54f82e4602770 100644 (file)
@@ -105,8 +105,10 @@ public class LibraryComponentDialog extends Dialog{
                                public void run() {\r
                                        getShell().setText(title);\r
                                        if (selectedType == null) {\r
-                               typeList.select(0);\r
-                               selectedType = (Resource)typeList.getData(typeList.getItem(0));\r
+                                               if (typeList.getItemCount() > 0) {\r
+                                                       typeList.select(0);\r
+                                       selectedType = (Resource)typeList.getData(typeList.getItem(0));\r
+                                               }\r
                            }\r
                                }\r
                                \r
@@ -132,6 +134,25 @@ public class LibraryComponentDialog extends Dialog{
                Resource projectResource = ProConfUI.getProject().getResource();\r
                Stack<Resource> handling = new Stack<Resource>();\r
                handling.push(projectResource);\r
+               \r
+               // this is just a hack to get equipment defined in ontologies\r
+               Resource projectsLib = g.getObjects(projectResource, g.getBuiltins().PartOf).iterator().next();\r
+               Collection<Resource> projects = g.getObjects(projectsLib, g.getBuiltins().ConsistsOf);\r
+               Resource typeSystemProject = null;\r
+               for (Resource project : projects) {\r
+                       IEntity ent = EntityFactory.create(g,project);\r
+                       String name = ent.getName();\r
+                       if(name.equals("Type System Project")) {\r
+                               typeSystemProject = project;\r
+                               break;\r
+                       }\r
+               }\r
+               Collection<Resource> ontologies = g.getObjects(typeSystemProject, g.getBuiltins().ConsistsOf);\r
+               for (Resource ontology : ontologies) {\r
+                       if(g.isInstanceOf(ontology, g.getBuiltins().Ontology))\r
+                               handling.add(ontology);\r
+               }\r
+               \r
                while (!handling.isEmpty()) {\r
                        final Resource node = handling.pop();\r
                        if (g.isInstanceOf(node,primaryType)) {\r