meerkat-java/voting-station-gui/src/polling_station_dashboard/java/PollingStationDashboardCont...

76 lines
2.1 KiB
Java
Raw Normal View History

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;
import polling_station_dashboard.settings.java.SettingsUpdate;
/**
* Created by Vladimir Eliezer Tokarev on 28/05/2016.
* PollingStationDashboardController controls the behavior of the polling station dashboard
*/
public class PollingStationDashboardController implements StatusLogUpdate, SettingsUpdate {
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;
}
@Override
public void UpdateSettings() {
}
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();
}
}