this(LocalTime.now());
}
public Clock(final LocalTime TIME) {
getStyleClass().add("clock");
text = new SimpleStringProperty(Clock.this, "text", "");
discreteSecond = new BooleanPropertyBase(false) {
@Override public void set(final boolean DISCRETE_SECOND) {
super.set(DISCRETE_SECOND);
updateInterval = DISCRETE_SECOND ? LONG_INTERVAL : SHORT_INTERVAL;
}
@Override public Object getBean() { return Clock.this; }
@Override public String getName() { return "discreteSecond"; }
};
secondPointerVisible = new SimpleBooleanProperty(Clock.this, "secondPointerVisible", false);
nightMode = new SimpleBooleanProperty(Clock.this, "nightMode", false);
design = new ObjectPropertyBase<Design>(Design.IOS6) {
@Override public void set(final Design DESIGN) {
switch (DESIGN) {
case IOS6 : setDiscreteSecond(false); setSecondPointerVisible(true); break;
case DB : setDiscreteSecond(false); setSecondPointerVisible(true); break;
case BRAUN: setDiscreteSecond(true); setSecondPointerVisible(true); break;
case BOSCH: setDiscreteSecond(true); setSecondPointerVisible(false); break;
}
super.set(DESIGN);
}
@Override public Object getBean() { return Clock.this; }
@Override public String getName() { return "design"; }
};
highlightVisible = new SimpleBooleanProperty(Clock.this, "highlightVisible", false);
time = new SimpleObjectProperty<>(Clock.this, "time", TIME);
running = new BooleanPropertyBase(false) {
@Override public void set(final boolean RUNNING) {
super.set(RUNNING);
if (RUNNING) { scheduleTickTask(); } else { stopTask(periodicTickTask); }
}
@Override public Object getBean() { return Clock.this; }