1. Control
State somethingEnabledState = State.state(true);
CommandControl control = Control.builder()
.command(() -> System.out.println("Doing something"))
.caption("Do something")
.mnemonic('D')
.enabled(somethingEnabledState)
.build();
JButton somethingButton = new JButton(control);
Control.ActionCommand actionCommand = actionEvent -> {
if ((actionEvent.getModifiers() & ActionEvent.SHIFT_MASK) != 0) {
System.out.println("Doing something else");
}
};
CommandControl actionControl = Control.builder()
.action(actionCommand)
.caption("Do something else")
.mnemonic('S')
.build();
JButton somethingElseButton = new JButton(actionControl);
2. ToggleControl
State state = State.state();
ToggleControl toggleStateControl = Control.builder()
.toggle(state)
.build();
JToggleButton toggleButton = Components.toggleButton()
.toggle(toggleStateControl)
.text("Change state")
.mnemonic('C')
.build();
Value<Boolean> booleanValue = Value.nonNull(false);
ToggleControl toggleValueControl = Control.builder()
.toggle(booleanValue)
.build();
JCheckBox checkBox = Components.checkBox()
.toggle(toggleValueControl)
.text("Change value")
.mnemonic('V')
.build();
3. Controls
Controls controls = Controls.builder()
.control(Control.builder()
.command(this::doFirst)
.caption("First")
.mnemonic('F'))
.control(Control.builder()
.command(this::doSecond)
.caption("Second")
.mnemonic('S'))
.control(Controls.builder()
.caption("Submenu")
.control(Control.builder()
.command(this::doSubFirst)
.caption("Sub-first")
.mnemonic('b'))
.control(Control.builder()
.command(this::doSubSecond)
.caption("Sub-second")
.mnemonic('u')))
.build();
JMenu menu = Components.menu()
.controls(controls)
.build();
Control firstControl = Control.builder()
.command(this::doFirst)
.caption("First")
.mnemonic('F')
.build();
Control secondControl = Control.builder()
.command(this::doSecond)
.caption("Second")
.mnemonic('S')
.build();
Controls twoControls = Controls.builder()
.controls(firstControl, secondControl)
.build();
JPanel buttonPanel = Components.buttonPanel()
.controls(twoControls)
.build();