package polling_station_dashboard.settings.java; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.stage.Stage; /** * Created by Vladimir Eliezer Tokarev on 12/06/2016. * This object manages the visual changes of the settings panel * which means that he opens and closes settings panel) */ public class SettingsVisualUpdater implements SettingsUpdate { private GridPane settings; private static final int SETTINGS_HEIGHT_EXPANSION_VALUE = 60; private boolean settingsOpened = false; private Stage currentStage; public SettingsVisualUpdater(GridPane settings, Stage primalStage) { this.settings = settings; this.currentStage = primalStage; } @Override public void UpdateSettings() { showSettingsButton(settingsOpened); if (!settingsOpened) { SetSettingsSize(SETTINGS_HEIGHT_EXPANSION_VALUE); addSettings(); } else { SetSettingsSize(-SETTINGS_HEIGHT_EXPANSION_VALUE); removeSettings(); } settingsOpened = !settingsOpened; } private void SetSettingsSize(int expansionHeight) { currentStage.setHeight(currentStage.getHeight() + expansionHeight); Pane statusLog = (Pane) currentStage.getScene().lookup("#Settings"); statusLog.setPrefHeight(expansionHeight); } private void showSettingsButton(boolean showOrNot){ Button settings = (Button) currentStage.getScene().lookup("#SettingsButton"); settings.setVisible(showOrNot); } private void addSettings() { Pane settingsPane = (Pane) currentStage.getScene().lookup("#Settings"); settingsPane.getChildren().add(settings); } private void removeSettings(){ Pane settingsPane = (Pane) currentStage.getScene().lookup("#Settings"); settingsPane.getChildren().remove(settings); } }