package com.alexhulbert.icewind.gui; import javafx.animation.KeyFrame; import javafx.animation.KeyValue; import javafx.animation.Timeline; import javafx.beans.value.WritableValue; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.util.Duration; public class EasyAnimation { private Timeline timeline; public EasyAnimation() { timeline = new Timeline(); timeline.setCycleCount(1); } public Timeline get() { return timeline; } public void play() { timeline.play(); } public void finishWith(EventHandler<ActionEvent> e) { timeline.setOnFinished(e); } public void push(WritableValue p, long time, Object value) { KeyValue kv = new KeyValue(p, value); KeyFrame kf = new KeyFrame(Duration.millis(time), kv); timeline.getKeyFrames().add(kf); } public KeyFrame pop() { int len = timeline.getKeyFrames().size(); KeyFrame kf = timeline.getKeyFrames().get(len - 1); timeline.getKeyFrames().remove(len); return kf; } }