]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram/src/org/simantics/diagram/profile/IconResult.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / profile / IconResult.java
1 package org.simantics.diagram.profile;\r
2 \r
3 import java.awt.geom.AffineTransform;\r
4 \r
5 import org.simantics.databoard.Bindings;\r
6 import org.simantics.databoard.annotations.Optional;\r
7 import org.simantics.databoard.binding.Binding;\r
8 import org.simantics.databoard.util.Bean;\r
9 import org.simantics.datatypes.literal.RGB;\r
10 import org.simantics.datatypes.literal.Vec2d;\r
11 import org.simantics.db.layer0.variable.Variable;\r
12 import org.simantics.utils.datastructures.map.Tuple;\r
13 \r
14 public class IconResult extends Tuple implements IconButtonResult {\r
15         \r
16     public static class B extends Bean implements IconButtonConfiguration {\r
17         private static final Binding BINDING = Bindings.getBindingUnchecked(B.class);\r
18         public String id;\r
19         public String iconName;\r
20         public int index;\r
21         public double loValue;\r
22         public double hiValue;\r
23         @Optional\r
24         public RGB.Integer loColor;\r
25         @Optional\r
26         public RGB.Integer midColor;\r
27         @Optional\r
28         public RGB.Integer hiColor;\r
29         @Optional\r
30         public Vec2d offset;\r
31         public Vec2d size;\r
32         public boolean relativeTransform;\r
33         public B(String id, String iconName, int index, double loValue, double hiValue, RGB.Integer loColor, RGB.Integer midColor, RGB.Integer hiColor, Vec2d offset, Vec2d size, boolean relativeTransform) {\r
34                 super(BINDING);\r
35                 this.id = id;\r
36                 this.iconName = iconName;\r
37                 this.index = index;\r
38                 this.loValue = loValue;\r
39                 this.hiValue = hiValue;\r
40                 this.loColor = loColor;\r
41                 this.midColor = midColor;\r
42                 this.hiColor = hiColor;\r
43                 this.offset = offset;\r
44                 this.size = size;\r
45                 this.relativeTransform = relativeTransform;\r
46         }\r
47                 @Override\r
48                 public Vec2d getOffset() {\r
49                         return offset;\r
50                 }\r
51                 @Override\r
52                 public String getId() {\r
53                         return id;\r
54                 }\r
55                 @Override\r
56                 public Vec2d getSize() {\r
57                         return size;\r
58                 }\r
59                 @Override\r
60                 public int getIndex() {\r
61                         return index;\r
62                 }\r
63                 @Override\r
64                 public boolean getRelativeTransform() {\r
65                         return relativeTransform;\r
66                 }\r
67     }\r
68     public static class A extends Bean implements IconButtonState {\r
69         private static final Binding BINDING = Bindings.getBindingUnchecked(A.class);\r
70         public double value;\r
71         public B config;\r
72         public A(double value, B config) {\r
73                 super(BINDING);\r
74                 this.value = value;\r
75                 this.config = config;\r
76         }\r
77                 @Override\r
78                 public IconButtonConfiguration getConfiguration() {\r
79                         return config;\r
80                 }\r
81     }\r
82     public IconResult(A a, Variable property, AffineTransform transform) {\r
83         super(a, property, transform);\r
84     }\r
85     public A getA() {\r
86         return (A) getField(0);\r
87     }\r
88     public Variable getProperty() {\r
89         return (Variable) getField(1);\r
90     }\r
91     public AffineTransform getParentTransform() {\r
92         return (AffineTransform) getField(2);\r
93     }\r
94     public IconResult withValue(double value) {\r
95         return new IconResult(new A(value, getA().config), getProperty(), getParentTransform());\r
96     }\r
97         @Override\r
98         public IconButtonState getState() {\r
99                 return getA();\r
100         }\r
101 }