meerkat-java/voting-station-gui/src/polling_station_dashboard/settings/java/SettingsVisualUpdater.java

67 lines
2.0 KiB
Java
Raw Normal View History

package polling_station_dashboard.settings.java;
import javafx.event.Event;
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);
}
@Override
public void handle(Event event) {
UpdateSettings();
}
}