public void handle(ActionEvent event) {
if (timeline.getStatus()!=Status.RUNNING){
// lazy init cause else annimation pane is not layouted
timeline.getKeyFrames().clear();
annimationPane.getChildren().clear();
final AdapterAnimationCreator adapterAnimationCreator = new AdapterAnimationCreator(annimationPane, timeline);
adapterAnimationCreator.create(adapterInputTable.getItems(), adapterOutputLaunchTable.getItems(),
adapterOutputNotifyTable.getItems());
slider.setMax(timeline.getTotalDuration().toMillis());
Bindings.unbindBidirectional(positionLabel.textProperty(), slider.valueProperty());
positionLabel.textProperty().bindBidirectional(slider.valueProperty(), new StringConverter<Number>() {
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATETIME_FORMAT);
@Override
public Number fromString(String string) {
return null;
}
@Override
public String toString(Number object) {
return simpleDateFormat.format(new Date(object.longValue()+ adapterAnimationCreator.getMin()));
}
});
timeline.jumpTo(Duration.ZERO);
timeline.play();
} else{