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