]> 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@9343 ac1ea38d...
[simantics/3d.git] / org.simantics.proconf.processeditor / src / org / simantics / processeditor / dialogs / LibraryComponentDialog.java
index daee341c5a05f6389018c8dbfcc18fdb76e5f7b1..18263b92ffb5fe001d0229e80fb54f82e4602770 100644 (file)
@@ -24,7 +24,7 @@ import org.simantics.layer0.utils.EntityFactory;
 import org.simantics.layer0.utils.IEntity;\r
 import org.simantics.processeditor.ProcessResource;\r
 import org.simantics.proconf.ui.ProConfUI;\r
-import org.simantics.utils.ErrorLogger;\r
+import org.simantics.utils.ui.ErrorLogger;\r
 \r
 \r
 public class LibraryComponentDialog extends Dialog{ \r
@@ -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