@@ -0,0 +1,1234 @@
+package co.phoenixlab.dn.dngearsim.bootstrap;%0A%0Aimport javafx.beans.binding.Bindings;%0Aimport javafx.concurrent.Task;%0Aimport javafx.fxml.FXML;%0Aimport javafx.scene.control.Label;%0Aimport javafx.scene.layout.AnchorPane;%0Aimport javafx.scene.shape.Rectangle;%0A%0Apublic class BootstrapUi %7B%0A%0A    @FXML%0A    private AnchorPane pane;%0A%0A    @FXML%0A    private Rectangle loadingBar;%0A%0A    @FXML%0A    private Label statusText;%0A%0A    @FXML%0A    void initialize() %7B%0A        assert pane != null : %22fx:id=%5C%22pane%5C%22 was not injected: check your FXML file 'splash.fxml'.%22;%0A        assert loadingBar != null : %22fx:id=%5C%22loadingBar%5C%22 was not injected: check your FXML file 'splash.fxml'.%22;%0A        assert statusText != null : %22fx:id=%5C%22statusText%5C%22 was not injected: check your FXML file 'splash.fxml'.%22;%0A%0A    %7D%0A%0A    public void bindToTask(Task%3C?%3E task) %7B%0A        assert task != null : %22Task cannot be null, check invocation site%22;%0A        statusText.textProperty().%0A                bind(task.messageProperty());%0A        loadingBar.widthProperty().%0A                bind(Bindings.multiply(pane.widthProperty(), task.progressProperty()));%0A    %7D%0A%0A    public void unbind() %7B%0A        statusText.textProperty().unbind();%0A        loadingBar.widthProperty().unbind();%0A    %7D%0A%7D%0A

Add UI controller for bootstrap