summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2022-08-10 10:47:13 +0200
committerJakob Heher <jakob.heher@iaik.tugraz.at>2022-08-10 10:47:13 +0200
commit362ef2282c3efa0a2a8b807218f61c77697c6367 (patch)
tree61e333fbb74be72e5354990c000ab0ad650e4629 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java
parentd8b153cc7c9f57922d1d6bed4cdbe07e3564a926 (diff)
downloadpdf-over-362ef2282c3efa0a2a8b807218f61c77697c6367.tar.gz
pdf-over-362ef2282c3efa0a2a8b807218f61c77697c6367.tar.bz2
pdf-over-362ef2282c3efa0a2a8b807218f61c77697c6367.zip
offer factory reset if startup fails, or config screen fails to load, cf. #114
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java31
1 files changed, 27 insertions, 4 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java
index 74b38410..2aad12c9 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java
@@ -20,11 +20,15 @@ import org.eclipse.swt.SWT;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import at.asit.pdfover.commons.Messages;
import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.composites.ConfigurationComposite;
+import at.asit.pdfover.gui.controls.ErrorDialog;
+import at.asit.pdfover.gui.controls.Dialog.BUTTONS;
import at.asit.pdfover.gui.workflow.StateMachine;
import at.asit.pdfover.gui.workflow.Status;
+import at.asit.pdfover.gui.workflow.config.ConfigurationManager;
/**
*
@@ -64,10 +68,29 @@ public class ConfigurationUIState extends State {
@Override
public void run() {
Status status = getStateMachine().status;
-
- ConfigurationComposite config = this.getConfigurationComposite();
-
- getStateMachine().display(config);
+
+ ConfigurationComposite config;
+ try {
+ config = this.getConfigurationComposite();
+ getStateMachine().display(config);
+ } catch (Exception e) {
+ log.error("Failed to initialize config UI", e);
+ ErrorDialog error = new ErrorDialog(
+ getStateMachine().getMainShell(),
+ Messages.getString("error.ConfigInitialization"),
+ BUTTONS.YES_NO
+ );
+
+ int selection = error.open();
+ if (selection == SWT.YES)
+ {
+ ConfigurationManager.factoryResetPersistentConfig();
+ getStateMachine().exit();
+ return;
+ }
+
+ throw e;
+ }
if(config.isUserDone())
{