package polling_station_dashboard.java; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.stage.Stage; import polling_station_dashboard.StatusLog.java.StatusLogUpdate; /** * Created by Vladimir Eliezer Tokarev on 28/05/2016. * PollingStationDashboardController controls the behavior of the polling station dashboard */ public class PollingStationDashboardController implements StatusLogUpdate { private Stage currentStage; private GridPane statusLog; private boolean statusLogOpened = false; public void SetStage(Stage primaryStage) { this.currentStage = primaryStage; } public void SetStatusLog(GridPane statusLog){ this.statusLog = statusLog; } @Override public void UpdateStatusLog(){ showStatusLogButton(statusLogOpened); if (!statusLogOpened) { SetStatusLogSize(400); addStatusLog(); } else { SetStatusLogSize(-400); removeStatusLog(); } statusLogOpened = !statusLogOpened; } private void showStatusLogButton(boolean showOrNot){ Button statusLogButton = (Button) currentStage.getScene().lookup("#StatusLogButton"); statusLogButton.setVisible(showOrNot); } private void addStatusLog() { Pane statusLogPane = (Pane) currentStage.getScene().lookup("#StatusLog"); statusLogPane.getChildren().add(statusLog); } private void removeStatusLog(){ Pane statusLogPane = (Pane) currentStage.getScene().lookup("#StatusLog"); statusLogPane.getChildren().remove(statusLog); } private void SetStatusLogSize(int expansionWidth) { currentStage.setWidth(currentStage.getWidth() + expansionWidth); Pane statusLogPane = (Pane) currentStage.getScene().lookup("#StatusLog"); statusLogPane.setPrefWidth(expansionWidth); } @FXML private void OnStatusLogPressed() { UpdateStatusLog(); } }