mirror of
https://github.com/DanilaFe/abacus
synced 2024-12-23 16:00:09 -08:00
Add warnings that trigger if configuration has been changed.
This commit is contained in:
parent
6cce975bcf
commit
963871d7b6
|
@ -91,11 +91,26 @@ public class AbacusController implements PluginListener {
|
||||||
* Boolean which represents whether changes were made to the configuration.
|
* Boolean which represents whether changes were made to the configuration.
|
||||||
*/
|
*/
|
||||||
private boolean changesMade;
|
private boolean changesMade;
|
||||||
|
/**
|
||||||
|
* Whether an alert about changes to the configuration was already shown.
|
||||||
|
*/
|
||||||
|
private boolean reloadAlertShown;
|
||||||
/**
|
/**
|
||||||
* The alert shown when a press to "apply" is needed.
|
* The alert shown when a press to "apply" is needed.
|
||||||
*/
|
*/
|
||||||
private Alert reloadAlert;
|
private Alert reloadAlert;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Alerts the user if the changes they made
|
||||||
|
* have not yet been applied.
|
||||||
|
*/
|
||||||
|
private void alertIfApplyNeeded(boolean ignorePrevious){
|
||||||
|
if(changesMade && (!reloadAlertShown || ignorePrevious)) {
|
||||||
|
reloadAlertShown = true;
|
||||||
|
reloadAlert.showAndWait();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void initialize(){
|
public void initialize(){
|
||||||
Callback<TableColumn<HistoryModel, String>, TableCell<HistoryModel, String>> cellFactory =
|
Callback<TableColumn<HistoryModel, String>, TableCell<HistoryModel, String>> cellFactory =
|
||||||
|
@ -117,6 +132,7 @@ public class AbacusController implements PluginListener {
|
||||||
historyTable.setItems(historyData);
|
historyTable.setItems(historyData);
|
||||||
numberImplementationOptions = FXCollections.observableArrayList();
|
numberImplementationOptions = FXCollections.observableArrayList();
|
||||||
numberImplementationBox.setItems(numberImplementationOptions);
|
numberImplementationBox.setItems(numberImplementationOptions);
|
||||||
|
numberImplementationBox.getSelectionModel().selectedIndexProperty().addListener(e -> changesMade = true);
|
||||||
historyTable.getSelectionModel().setCellSelectionEnabled(true);
|
historyTable.getSelectionModel().setCellSelectionEnabled(true);
|
||||||
enabledPlugins = FXCollections.observableArrayList();
|
enabledPlugins = FXCollections.observableArrayList();
|
||||||
enabledPluginView.setItems(enabledPlugins);
|
enabledPluginView.setItems(enabledPlugins);
|
||||||
|
@ -133,10 +149,11 @@ public class AbacusController implements PluginListener {
|
||||||
abacus.getPluginManager().reload();
|
abacus.getPluginManager().reload();
|
||||||
|
|
||||||
changesMade = false;
|
changesMade = false;
|
||||||
|
reloadAlertShown = false;
|
||||||
|
|
||||||
reloadAlert = new Alert(Alert.AlertType.WARNING);
|
reloadAlert = new Alert(Alert.AlertType.WARNING);
|
||||||
reloadAlert.setTitle(APPLY_MSG_TITLE);
|
reloadAlert.setTitle(APPLY_MSG_TITLE);
|
||||||
reloadAlert.setTitle(APPLY_MSG_HEADER);
|
reloadAlert.setHeaderText(APPLY_MSG_HEADER);
|
||||||
reloadAlert.setContentText(APPLY_MSG_TEXT);
|
reloadAlert.setContentText(APPLY_MSG_TEXT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,6 +181,7 @@ public class AbacusController implements PluginListener {
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void performReload(){
|
private void performReload(){
|
||||||
|
alertIfApplyNeeded(true);
|
||||||
abacus.getPluginManager().reload();
|
abacus.getPluginManager().reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +196,7 @@ public class AbacusController implements PluginListener {
|
||||||
}
|
}
|
||||||
configuration.saveTo(Abacus.CONFIG_FILE);
|
configuration.saveTo(Abacus.CONFIG_FILE);
|
||||||
changesMade = false;
|
changesMade = false;
|
||||||
|
reloadAlertShown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -190,7 +209,9 @@ public class AbacusController implements PluginListener {
|
||||||
numberImplementationBox.getSelectionModel().select(toSelect);
|
numberImplementationBox.getSelectionModel().select(toSelect);
|
||||||
for(Class<?> pluginClass : abacus.getPluginManager().getLoadedPluginClasses()){
|
for(Class<?> pluginClass : abacus.getPluginManager().getLoadedPluginClasses()){
|
||||||
String fullName = pluginClass.getName();
|
String fullName = pluginClass.getName();
|
||||||
enabledPlugins.add(new ToggleablePlugin(!disabledPlugins.contains(fullName), fullName));
|
ToggleablePlugin plugin = new ToggleablePlugin(!disabledPlugins.contains(fullName), fullName);
|
||||||
|
plugin.enabledProperty().addListener(e -> changesMade = true);
|
||||||
|
enabledPlugins.add(plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user