From daf7891de6360b416deece201b342a3de9f52a07 Mon Sep 17 00:00:00 2001 From: tkellner Date: Mon, 1 Oct 2012 08:30:43 +0000 Subject: Removed Error State and replaced it with ErrorDialog To get a stable user experience in case of an error. ErrorDialog was improved to let the user decide if he wants to retry an action. git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12539 3a0b52a2-8410-0410-bc02-ff6273a87459 --- .../pdfover/gui/workflow/StateMachineImpl.java | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java') diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java index ece1cf7f..44ffd7f4 100644 --- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java +++ b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java @@ -18,7 +18,7 @@ package at.asit.pdfover.gui.workflow; //Imports import java.lang.reflect.Constructor; -import org.eclipse.swt.SWTException; +import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; @@ -26,7 +26,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.MainWindow; -import at.asit.pdfover.gui.workflow.states.ErrorState; +import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.workflow.states.PrepareConfigurationState; import at.asit.pdfover.gui.workflow.states.State; @@ -86,9 +86,12 @@ public class StateMachineImpl implements StateMachine, GUIProvider { current.run(); } catch (Exception e) { log.error("StateMachine update: ", e); //$NON-NLS-1$ - ErrorState errorState = new ErrorState(this); - errorState.setException(e); - jumpToState(errorState); + ErrorDialog errorState = new ErrorDialog(this.getMainShell(), + SWT.NONE, "Unexpected Error", e, false); + //errorState.setException(e); + //jumpToState(errorState); + errorState.open(); + this.exit(); } if (this.exit) { @@ -355,4 +358,16 @@ public class StateMachineImpl implements StateMachine, GUIProvider { public ConfigManipulator getConfigManipulator() { return this.configProvider; } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.GUIProvider#getMainShell() + */ + @Override + public Shell getMainShell() { + if(this.shell == null) { + this.createMainWindow(); + } + + return this.shell; + } } -- cgit v1.2.3