]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/CreateStyleAction.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram.profile / src / org / simantics / diagram / profile / view / CreateStyleAction.java
1 package org.simantics.diagram.profile.view;\r
2 \r
3 import org.simantics.Simantics;\r
4 import org.simantics.browsing.ui.swt.ModelledActionImpl;\r
5 import org.simantics.db.Resource;\r
6 import org.simantics.db.WriteGraph;\r
7 import org.simantics.db.common.request.WriteRequest;\r
8 import org.simantics.db.common.utils.NameUtils;\r
9 import org.simantics.db.exception.DatabaseException;\r
10 import org.simantics.diagram.Logger;\r
11 import org.simantics.diagram.stubs.DiagramResource;\r
12 import org.simantics.layer0.Layer0;\r
13 import org.simantics.operation.Layer0X;\r
14 \r
15 public class CreateStyleAction extends ModelledActionImpl<Resource> {\r
16 \r
17         public CreateStyleAction(Resource configuration) {\r
18                 super(configuration);\r
19         }\r
20         \r
21         public void run(final Resource runtimeDiagram) {\r
22 \r
23                 try {\r
24                 \r
25                         Simantics.getSession().syncRequest(new WriteRequest() {\r
26         \r
27                                 @Override\r
28                                 public void perform(WriteGraph graph) throws DatabaseException {\r
29         \r
30                                         Layer0 L0 = Layer0.getInstance(graph);\r
31                                         Layer0X L0X = Layer0X.getInstance(graph);\r
32                                         DiagramResource DIA = DiagramResource.getInstance(graph);\r
33                                 String modelURI = graph.getPossibleRelatedValue((Resource)runtimeDiagram, DIA.RuntimeDiagram_HasModelURI);\r
34                                 if (modelURI == null) return;\r
35                                 \r
36                                 Resource model = graph.getPossibleResource(modelURI);\r
37                                 if(model == null) return;\r
38                                 \r
39                                 String name = NameUtils.findFreshEscapedName(graph, "Style", model, L0.ConsistsOf);\r
40                                 \r
41                                 Resource newStyle = graph.newResource();\r
42                                 graph.claim(newStyle, L0.InstanceOf, DIA.SCLTextStyle);\r
43                                 graph.claimLiteral(newStyle, L0X.HasExpression, "");\r
44                                 graph.claimLiteral(newStyle, L0.HasName, name);\r
45                                 graph.claim(model, L0.ConsistsOf, newStyle);\r
46         \r
47                                 }\r
48         \r
49                         });\r
50                 \r
51                 } catch (DatabaseException e) {\r
52 \r
53                         Logger.defaultLogError(e);\r
54                         \r
55                 }\r
56 \r
57         }\r
58 \r
59 }\r