import java.net.URL;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.control.Slider;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
/**
*
* @author jpgough
*/
public class FutureController implements Initializable {
private FutureManager futureManager;
public FutureController() {
futureManager = new FutureManager(this);
}
@FXML
private TextArea logTextArea;
@FXML
private Slider duration;
@FXML
private TextField futureMessageTextField;
@FXML
private ProgressIndicator spinner;
@FXML
private void beginFuture(ActionEvent event) {
int secs = (int) duration.getValue();
appendToLogBox("Begin Future Task in " + secs);
futureManager.createFuture(secs, futureMessageTextField.getText());
}
@FXML
private void cancelFuture() {
futureManager.cancel(true);
appendToLogBox("Cancelled The Future");
}
@FXML
private void getFuture() throws Exception {
appendToLogBox(futureManager.get());
}
@FXML
private void isFutureCancellable() {
}
@FXML
private void isFutureDone() {
appendToLogBox(Boolean.toString(futureManager.isDone()));
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
private void appendToLogBox(String newMessage) {
logTextArea.appendText("\n" + newMessage);
}
void showSpinner() {
Platform.runLater(new Runnable() {
@Override
public void run() {
spinner.setVisible(true);
}
});
}
void hideSpinner() {
Platform.runLater(new Runnable() {
@Override
public void run() {
spinner.setVisible(false);
}
});
}
}