diff options
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states')
2 files changed, 37 insertions, 10 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()) { diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java index 1a3fd8b5..b6ea9c0b 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java @@ -348,15 +348,19 @@ public class PrepareConfigurationState extends State { setNextState(new OpenState(stateMachine)); - } catch (InitializationException e) { + } catch (Exception e) { log.error("Failed to initialize: ", e); - ErrorDialog error = new ErrorDialog(getStateMachine() - .getMainShell(), - Messages.getString("error.Initialization"), - BUTTONS.OK); + ErrorDialog error = new ErrorDialog( + getStateMachine().getMainShell(), + Messages.getString("error.Initialization"), + BUTTONS.YES_NO + ); // error.setException(e); // setNextState(error); - error.open(); + int selection = error.open(); + if (selection == SWT.YES) + ConfigurationManager.factoryResetPersistentConfig(); + getStateMachine().exit(); } } |