-
Notifications
You must be signed in to change notification settings - Fork 5
/
DateTimePickerDemo.java
79 lines (67 loc) · 3.08 KB
/
DateTimePickerDemo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package io.github.hemeroc.javafx.datetimepicker.demo;
import io.github.hemeroc.javafx.datetimepicker.DateTimePicker;
import io.github.hemeroc.javafx.datetimepicker.util.CustomBinding;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.time.format.DateTimeFormatter;
import static io.github.hemeroc.javafx.datetimepicker.DateTimePicker.DEFAULT_FORMAT;
import static javafx.geometry.Pos.CENTER;
import static javafx.geometry.Pos.CENTER_LEFT;
public class DateTimePickerDemo extends Application {
public void start(Stage stage) {
DateTimePicker dateTimePicker = new DateTimePicker();
ToggleGroup group = new ToggleGroup();
RadioButton radioButtonNone = buildRadioButton(group, DateTimePicker.TimeSelector.NONE);
RadioButton radioButtonSpinner = buildRadioButton(group, DateTimePicker.TimeSelector.SPINNER);
RadioButton radioButtonSlider = buildRadioButton(group, DateTimePicker.TimeSelector.SLIDER);
CheckBox checkBoxMinutes = new CheckBox("MinutesSelector");
checkBoxMinutes.disableProperty().setValue(true);
checkBoxMinutes.setPadding(new Insets(0, 0, 0, 25));
checkBoxMinutes.selectedProperty().bindBidirectional(dateTimePicker.minutesSelectorProperty());
radioButtonNone.selectedProperty().bindBidirectional(checkBoxMinutes.disableProperty());
group.selectedToggleProperty().addListener((observable, oldValue, newValue) ->
dateTimePicker.setTimeSelector((DateTimePicker.TimeSelector) newValue.getUserData()));
Label valueLabel = new Label();
CustomBinding.bind(dateTimePicker.dateTimeValueProperty(), valueLabel.textProperty(),
dt -> dt.format(DateTimeFormatter.ofPattern(DEFAULT_FORMAT)));
VBox vBox = new VBox(10,
radioButtonNone,
radioButtonSpinner,
radioButtonSlider,
checkBoxMinutes,
valueLabel,
dateTimePicker
);
vBox.setAlignment(CENTER_LEFT);
HBox hBox = new HBox(vBox);
hBox.setAlignment(CENTER);
stage.setTitle("DateTimePicker - Demo");
stage.setResizable(false);
stage.setScene(new Scene(hBox, 250, 200));
stage.centerOnScreen();
stage.show();
toFront(stage);
}
private void toFront(Stage stage) {
stage.setAlwaysOnTop(true);
stage.toFront();
stage.setAlwaysOnTop(false);
}
private RadioButton buildRadioButton(ToggleGroup group, DateTimePicker.TimeSelector timeSelector) {
RadioButton radioButton = new RadioButton("TimeSelector: " + timeSelector.name());
radioButton.setToggleGroup(group);
radioButton.setUserData(timeSelector);
return radioButton;
}
public static void main(String[] args) {
launch(args);
}
}