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