2016-06-12 06:18:01 -04:00
|
|
|
package polling_station_dashboard.settings.java;
|
|
|
|
|
2016-06-12 08:20:29 -04:00
|
|
|
import javafx.event.Event;
|
2016-06-12 06:18:01 -04:00
|
|
|
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);
|
|
|
|
}
|
2016-06-12 08:20:29 -04:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void handle(Event event) {
|
|
|
|
UpdateSettings();
|
|
|
|
}
|
2016-06-12 06:18:01 -04:00
|
|
|
}
|