1 package org.simantics.diagram.profile;
\r
3 import java.awt.geom.AffineTransform;
\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.Vec2d;
\r
10 import org.simantics.db.layer0.variable.Variable;
\r
11 import org.simantics.scl.runtime.function.Function1;
\r
12 import org.simantics.utils.datastructures.map.Tuple;
\r
14 public class ButtonResult extends Tuple implements IconButtonResult {
\r
16 public static class B extends Bean implements IconButtonConfiguration {
\r
17 private static final Binding BINDING = Bindings.getBindingUnchecked(B.class);
\r
21 public Vec2d offset;
\r
23 public boolean relativeTransform;
\r
24 public ButtonMode mode;
\r
25 public B(String id, int index, Vec2d offset, Vec2d size, boolean relativeTransform, ButtonMode mode) {
\r
29 this.offset = offset;
\r
31 this.relativeTransform = relativeTransform;
\r
35 public Vec2d getOffset() {
\r
39 public String getId() {
\r
43 public Vec2d getSize() {
\r
47 public int getIndex() {
\r
51 public boolean getRelativeTransform() {
\r
52 return relativeTransform;
\r
55 public static class A extends Bean implements IconButtonState {
\r
56 private static final Binding BINDING = Bindings.getBindingUnchecked(A.class);
\r
57 public double value;
\r
59 public A(double value, B config) {
\r
62 this.config = config;
\r
65 public IconButtonConfiguration getConfiguration() {
\r
69 public ButtonResult(A a, Variable property, Function1<Boolean, Boolean> pressed, AffineTransform transform) {
\r
70 super(a, property, pressed, transform);
\r
73 return (A) getField(0);
\r
75 public Variable getProperty() {
\r
76 return (Variable) getField(1);
\r
78 @SuppressWarnings("unchecked")
\r
79 public Function1<Boolean, Boolean> getPressed() {
\r
80 return (Function1<Boolean, Boolean>) getField(2);
\r
82 public AffineTransform getParentTransform() {
\r
83 return (AffineTransform) getField(3);
\r
85 public ButtonResult withValue(double value) {
\r
86 return new ButtonResult(new A(value, getA().config), getProperty(), getPressed(), getParentTransform());
\r
89 public IconButtonState getState() {
\r