61 lines
1.9 KiB
Java
61 lines
1.9 KiB
Java
|
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);
|
||
|
}
|
||
|
}
|