package kioskfx;
import javafx.application.*;
import javafx.event.*;
import javafx.event.EventHandler;
import javafx.scene.*;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.paint.*;
import javafx.stage.*;
import javafx.animation.*;
import javafx.util.*;
import java.util.*;
public class KiTimeline {
private int duration;
private Vector<KiJob> jobs = new Vector<KiJob>();
public KiTimeline duration(int t) {
duration = t;
return this;
}
public KiTimeline job(KiJob t) {
this.jobs.add(t);
return this;
}
public void start() {
if (jobs.size() < 2) {
//System.err.println("" + this.getClass().getName() + ": jobs.size() < 2");
return;
}
int step = duration / (jobs.size() - 1);
Timeline timeline = new Timeline();
for (int i = 0; i < jobs.size(); i++) {
final KiJob job = jobs.get(i);
EventHandler<ActionEvent> handler = new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
job.start();
}
};
Duration delay = new Duration(step * i);
KeyFrame frame = new KeyFrame(delay, handler);
timeline.getKeyFrames().add(frame);
}
timeline.play();
}
}