From a31eb078a60e109220aaca2ea20e3b49553e006a Mon Sep 17 00:00:00 2001 From: zwu18 Date: Sat, 12 Aug 2017 16:27:12 +1200 Subject: [PATCH] Created a splash screen for application. --- .../src/main/java/visualiser/app/App.java | 176 ++++++++++++++++-- .../main/resources/images/splashScreen.png | Bin 0 -> 613851 bytes 2 files changed, 162 insertions(+), 14 deletions(-) create mode 100644 racevisionGame/src/main/resources/images/splashScreen.png diff --git a/racevisionGame/src/main/java/visualiser/app/App.java b/racevisionGame/src/main/java/visualiser/app/App.java index 8c75ee97..48db2bcb 100644 --- a/racevisionGame/src/main/java/visualiser/app/App.java +++ b/racevisionGame/src/main/java/visualiser/app/App.java @@ -1,61 +1,209 @@ package visualiser.app; +import javafx.animation.FadeTransition; import javafx.application.Application; import javafx.application.Platform; +import javafx.beans.property.ReadOnlyObjectProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.concurrent.Task; +import javafx.concurrent.Worker; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; +import javafx.geometry.Pos; +import javafx.geometry.Rectangle2D; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.ProgressBar; +import javafx.scene.effect.DropShadow; import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Pane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.stage.Screen; import javafx.stage.Stage; +import javafx.stage.StageStyle; import javafx.stage.WindowEvent; +import javafx.util.Duration; import visualiser.Controllers.MainController; public class App extends Application { + + private static Stage stage; + private Pane splashLayout; + private ProgressBar loadProgress; + private Label progressText; + private static final int SPLASH_WIDTH = 676; + private static final int SPLASH_HEIGHT = 227; + /** * Entry point for running the programme - * * @param args for starting the programme */ public static void main(String[] args) { launch(args); } + @Override + public void init() { + ImageView splash = new ImageView(new Image( + getClass().getClassLoader().getResourceAsStream("images/splashScreen.png") + )); + loadProgress = new ProgressBar(); + loadProgress.setPrefWidth(SPLASH_WIDTH - 20); + progressText = new Label("Preparing application . . ."); + splashLayout = new VBox(); + splashLayout.getChildren().addAll(splash, loadProgress, progressText); + progressText.setAlignment(Pos.CENTER); + splashLayout.setStyle( + "-fx-padding: 5; " + + "-fx-background-color: cornsilk; " + + "-fx-border-width:5; " + + "-fx-border-color: " + + "linear-gradient(" + + "to bottom, " + + "chocolate, " + + "derive(chocolate, 50%)" + + ");" + ); + splashLayout.setEffect(new DropShadow()); + } + /** - * Method that displays the visualiser, starting with the title screen. - * @param stage the stage to be displayed. + * Method that sets up and displays the splash screen + * @param initStage the inital stage * @throws Exception if something wrong with title screen. */ - public void start(Stage stage) throws Exception { - stage.setOnCloseRequest(new EventHandler() { + public void start(Stage initStage) throws Exception { + final Task> boatTask = new Task>() { @Override - public void handle(WindowEvent event) { - Platform.exit(); - System.exit(0); + protected ObservableList call() throws InterruptedException { + ObservableList addedFilling = + FXCollections.observableArrayList(); + ObservableList burgerFilling = + FXCollections.observableArrayList( + "Buns", "Patties", "Lettuce", "Onions", "Tomato", + "Sauces" + ); + + updateMessage("Preparing ingredients . . ."); + Thread.sleep(1000); + for (int i = 0; i < burgerFilling.size(); i++) { + Thread.sleep(800); + updateProgress(i + 1, burgerFilling.size()); + String nextFilling = burgerFilling.get(i); + addedFilling.add(nextFilling); + updateMessage("Adding the " + nextFilling + " . . ."); + } + Thread.sleep(400); + updateMessage("Burger's done!"); + + return addedFilling; } - }); + }; + + showSplash( + initStage, + boatTask, + () -> { + try { + showMainStage(); + } catch (Exception e) { + e.printStackTrace(); + } + } + ); + new Thread(boatTask).start(); + + } + + /** + * Get main stage + * @return main stage + */ + public static Stage getStage() { + return App.stage; + } + + /** + * Set main stage + * @param stage stage to set main stage + */ + public static void setStage(Stage stage) { + App.stage = stage; + } + + /** + * Show the main stage after the splash screen + * @throws Exception + */ + private void showMainStage() throws Exception { + stage = new Stage(StageStyle.DECORATED); FXMLLoader loader = new FXMLLoader(getClass().getResource("/visualiser/scenes/main.fxml")); Parent root = loader.load(); stage.setResizable(false); MainController mc = (MainController) loader.getController(); mc.enterTitle(); Scene scene = new Scene(root); - stage.setScene(scene); stage.setTitle("RaceVision - Team 7"); stage.getIcons().add(new Image(getClass().getClassLoader().getResourceAsStream("images/SailIcon.png"))); mc.startCss(); setStage(stage); stage.show(); + stage.setOnCloseRequest(new EventHandler() { + @Override + public void handle(WindowEvent event) { + Platform.exit(); + System.exit(0); + } + }); } - public static Stage getStage() { - return App.stage; + /** + * Show the splash screen + * @param initStage Initial stage + * @param task + * @param initCompletionHandler + */ + private void showSplash( + final Stage initStage, + Task task, + InitCompletionHandler initCompletionHandler + ) { + progressText.textProperty().bind(task.messageProperty()); + loadProgress.progressProperty().bind(task.progressProperty()); + task.stateProperty().addListener((observableValue, oldState, newState) -> { + if (newState == Worker.State.SUCCEEDED) { + loadProgress.progressProperty().unbind(); + loadProgress.setProgress(1); + initStage.toFront(); + FadeTransition fadeSplash = new FadeTransition(Duration.seconds(2), splashLayout); + fadeSplash.setFromValue(1.0); + fadeSplash.setToValue(0.0); + fadeSplash.setOnFinished(actionEvent -> initStage.hide()); + fadeSplash.play(); + + initCompletionHandler.complete(); + } + }); + + Scene splashScene = new Scene(splashLayout, Color.TRANSPARENT); + final Rectangle2D bounds = Screen.getPrimary().getBounds(); + initStage.setScene(splashScene); + initStage.setX(bounds.getMinX() + bounds.getWidth() / 2 - SPLASH_WIDTH / 2); + initStage.setY(bounds.getMinY() + bounds.getHeight() / 2 - SPLASH_HEIGHT / 2); + initStage.initStyle(StageStyle.TRANSPARENT); + initStage.setAlwaysOnTop(true); + initStage.show(); } - public static void setStage(Stage stage) { - App.stage = stage; + public interface InitCompletionHandler { + void complete(); } } diff --git a/racevisionGame/src/main/resources/images/splashScreen.png b/racevisionGame/src/main/resources/images/splashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..1d60605e2da268fcc5ac6063d957a7c855a26dcb GIT binary patch literal 613851 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