diff options
author | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-24 17:05:40 +0000 |
---|---|---|
committer | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-24 17:05:40 +0000 |
commit | 12d11aa8f47dbfc8403d5527fe821462523aa0ac (patch) | |
tree | dd7e760125687885584efb108689a8fa68495f58 /trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java | |
parent | c8558e8d7d7bfe9ff7ce1ecfe0be4940ab06f81f (diff) | |
download | pdf-over-12d11aa8f47dbfc8403d5527fe821462523aa0ac.tar.gz pdf-over-12d11aa8f47dbfc8403d5527fe821462523aa0ac.tar.bz2 pdf-over-12d11aa8f47dbfc8403d5527fe821462523aa0ac.zip |
Mobile BKU first working (currently set to work with test mobile BKU from A-Trust
git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12396 3a0b52a2-8410-0410-bc02-ff6273a87459
Diffstat (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java')
-rw-r--r-- | trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java index e444fbf9..47485a0c 100644 --- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java +++ b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ErrorState.java @@ -37,9 +37,16 @@ public class ErrorState extends State { private Exception exception; - private boolean userInformed = false; + private State recoverState = null; /** + * @param recoverState the recoverState to set + */ + public void setRecoverState(State recoverState) { + this.recoverState = recoverState; + } + + /** * SLF4J Logger instance **/ static final Logger log = LoggerFactory.getLogger(ErrorState.class); @@ -62,22 +69,24 @@ public class ErrorState extends State { public void run() { Status status = this.stateMachine.getStatus(); - if(this.errorComposite != null) { - this.userInformed = this.errorComposite.isUserOk(); - } + ErrorComposite errorComposite = this.getComposite(); - if(this.exception != null && !this.userInformed) { + if(this.exception != null && !errorComposite.isUserOk()) { // Display Exception .... - ErrorComposite errorComposite = this.getComposite(); this.errorComposite.setException(this.exception); - this.userInformed = this.errorComposite.isUserOk(); - this.stateMachine.getGUIProvider().display(errorComposite); + return; } - // TODO: Think should we do this? (possible infinity loop with exception ...) - this.setNextState(status.getPreviousState()); + // User was informed! + if(this.recoverState != null) { + // see if we can recover! + this.setNextState(this.recoverState); + } else { + // we cannot recover exit! + this.stateMachine.exit(); + } } /* (non-Javadoc) |