]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/view/Bean.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / view / Bean.java
1 package org.simantics.modeling.ui.view;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.Date;\r
5 \r
6 import org.simantics.charts.ontology.ChartResource;\r
7 import org.simantics.databoard.Bindings;\r
8 import org.simantics.databoard.util.URIStringUtils;\r
9 import org.simantics.db.ReadGraph;\r
10 import org.simantics.db.Resource;\r
11 import org.simantics.db.common.utils.NameUtils;\r
12 import org.simantics.db.common.utils.Versions;\r
13 import org.simantics.db.exception.DatabaseException;\r
14 import org.simantics.layer0.Layer0;\r
15 import org.simantics.modeling.All;\r
16 import org.simantics.modeling.ModelingResources;\r
17 import org.simantics.modeling.adapters.ChangeInformation;\r
18 import org.simantics.modeling.subscription.SubscriptionItemLabel;\r
19 import org.simantics.utils.format.ValueFormat;\r
20 \r
21 public class Bean {\r
22 \r
23         public String createdBy = "";\r
24         public String modifiedBy = "";\r
25         public long modifiedAt = 0;\r
26         public long createdAt = 0;\r
27         public String name = "";\r
28         public String path = "";\r
29         public String types = "";\r
30         \r
31         public Bean() {\r
32                 \r
33         }\r
34 \r
35         public Bean(ReadGraph graph, Resource r, ChangeInformation i, String baseURI) throws DatabaseException {\r
36                 \r
37                 Layer0 L0 = Layer0.getInstance(graph);\r
38                 ModelingResources MOD = ModelingResources.getInstance(graph);\r
39                 ChartResource CHART = ChartResource.getInstance(graph);\r
40 \r
41                 Collection<Resource> principalTypes = graph.getPrincipalTypes(r);\r
42 \r
43                 if (principalTypes.contains(MOD.Subscription)) {\r
44                         String label = graph.getPossibleRelatedValue2(r, L0.HasLabel, Bindings.STRING);\r
45                         setName((label != null && !label.isEmpty()) ? label : "<unnamed subscription>");\r
46                 } else if (principalTypes.contains(MOD.Subscription_Item)) {\r
47                         String label = SubscriptionItemLabel.resolveLabel(graph, r, ValueFormat.Default, true, true, false);\r
48                         setName(label);\r
49                 } else if (principalTypes.contains(CHART.Chart_Item)) {\r
50                         String label = graph.getPossibleRelatedValue2(r, L0.HasLabel, Bindings.STRING);\r
51                         setName((label != null && !label.isEmpty()) ? label : "<unlabeled chart item>");\r
52                 } else {\r
53 \r
54                         Resource possibleComponent = graph.getPossibleObject(r, MOD.ElementToComponent);\r
55                         Resource possibleComposite = graph.getPossibleObject(r, MOD.DiagramToComposite);\r
56                         \r
57                         Resource nameResource = r;\r
58                         if(possibleComponent != null) nameResource = possibleComponent;\r
59                         if(possibleComposite != null) nameResource = possibleComposite;\r
60 \r
61                         String name = Versions.getStandardNameString(graph, nameResource);\r
62                         \r
63                         if(possibleComponent != null) name += " Element";\r
64                         if(possibleComposite != null) name += " Diagram";\r
65                         \r
66                         setName(name);\r
67                         \r
68                 }\r
69                 \r
70                 StringBuilder types = new StringBuilder();\r
71                 for(Resource t : principalTypes) {\r
72                         if(types.length() > 0) types.append(" ");\r
73                         types.append(NameUtils.getSafeName(graph, t));\r
74                 }\r
75                 \r
76                 setTypes(types.toString());\r
77                 \r
78                 Resource parent = graph.getPossibleObject(r, L0.PartOf);\r
79                 if(parent != null) {\r
80                         String uri = graph.getPossibleURI(parent);\r
81                         if(uri.endsWith("/__CONTAINER__/__DIAGRAM__")) uri = uri.substring(0, uri.length()-"/__CONTAINER__/__DIAGRAM__".length());\r
82                         if(uri.endsWith("/__CONTAINER__")) uri = uri.substring(0, uri.length()-"/__CONTAINER__".length());\r
83                         if(uri.equals(baseURI)) uri = "<selected resource>";\r
84                         if(uri.startsWith(baseURI)) uri = uri.substring(baseURI.length());\r
85                         if(uri.startsWith("/Configuration/")) uri = uri.substring("/Configuration/".length());\r
86 \r
87                         uri = uri.replace("http://Projects/Development%20Project/", "");\r
88                         uri = URIStringUtils.unescape(uri);\r
89                         \r
90                         if(graph.isInstanceOf(parent, MOD.Subscription)) {\r
91 \r
92                                 String name = graph.getPossibleRelatedValue(parent, L0.HasName, Bindings.STRING);\r
93                                 String label = graph.getPossibleRelatedValue(parent, L0.HasLabel, Bindings.STRING);\r
94                                 uri = uri.replace(name, label);\r
95                                 \r
96                         }\r
97                         \r
98                         setPath(uri);\r
99                 } else {\r
100                         setPath("");\r
101                 }\r
102                 \r
103                 setCreatedBy(i.createdBy);\r
104                 setModifiedBy(i.modifiedBy);\r
105                 setModifiedAt(i.modifiedAt);\r
106                 setCreatedAt(i.createdAt);\r
107                 \r
108         }\r
109 \r
110         public String getCreatedBy() {\r
111                 return createdBy;\r
112         }\r
113 \r
114         public void setCreatedBy(String createdBy) {\r
115                 this.createdBy = createdBy;\r
116         }\r
117 \r
118         public String getModifiedBy() {\r
119                 return modifiedBy;\r
120         }\r
121 \r
122         public void setModifiedBy(String modifiedBy) {\r
123                 this.modifiedBy = modifiedBy;\r
124         }\r
125 \r
126         public String getModifiedAt() {\r
127                 return All.sdfLong.format(new Date(modifiedAt));\r
128         }\r
129 \r
130         public void setModifiedAt(long modifiedAt) {\r
131                 this.modifiedAt = modifiedAt;\r
132         }\r
133 \r
134         public String getCreatedAt() {\r
135                 return All.sdfLong.format(new Date(createdAt));\r
136         }\r
137 \r
138         public void setCreatedAt(long createdAt) {\r
139                 this.createdAt = createdAt;\r
140         }\r
141 \r
142         public String getName() {\r
143                 return name;\r
144         }\r
145 \r
146         public void setName(String name) {\r
147                 this.name = name;\r
148         }\r
149 \r
150         public String getPath() {\r
151                 return path;\r
152         }\r
153 \r
154         public void setPath(String path) {\r
155                 this.path = path;\r
156         }\r
157 \r
158         public String getTypes() {\r
159                 return types;\r
160         }\r
161 \r
162         public void setTypes(String types) {\r
163                 this.types = types;\r
164         }\r
165 \r
166 }