]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/SCLLibrary.java
Red background color & tooltip for invalid derived property expression
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / SCLLibrary.java
1 package org.simantics.modeling.ui;
2
3 import java.util.Collection;
4
5 import org.simantics.db.ReadGraph;
6 import org.simantics.db.Resource;
7 import org.simantics.db.common.request.ObjectsWithType;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.layer0.Layer0;
10 import org.simantics.modeling.ModelingResources;
11 import org.simantics.modeling.ui.actions.NewLibrary;
12 import org.simantics.modeling.ui.actions.NewLocalLibrary;
13
14 public class SCLLibrary {
15         
16         public static Resource createLibrary(Resource parent) throws DatabaseException {
17                 
18                 NewLibrary lib = new NewLibrary();
19                 Resource library = lib.newLibrary(parent);
20                 return library;
21         }
22         
23         public static Resource createLibraryInModel(Resource model) throws DatabaseException {
24                 
25                 NewLocalLibrary lib = new NewLocalLibrary();
26                 Resource library = lib.newLibrary(model);
27                 return library;
28         }
29         
30         public static Resource getLibrary (ReadGraph graph, Resource model, String name) throws DatabaseException {
31                 if (name.isEmpty()) {
32                         ModelingResources MOD = ModelingResources.getInstance(graph);
33                         Resource library = graph.getPossibleObject(model, MOD.HasLocalLibrary);
34                         return library;
35                 } else {
36                         Layer0 L0 = Layer0.getInstance(graph);
37                         Collection<Resource> libraries = graph.syncRequest(new ObjectsWithType(model, L0.ConsistsOf, L0.Library));
38                         for (Resource library : libraries) {
39                                 String name1 = graph.getPossibleRelatedValue2(library, L0.HasName);
40                                 if (name1 != null && name1.equals(name)) {
41                                         return library;
42                                 }
43                         }
44                 }
45                 return null;
46         }
47 }