summaryrefslogtreecommitdiff
path: root/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
diff options
context:
space:
mode:
authortkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459>2012-08-24 17:04:51 +0000
committertkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459>2012-08-24 17:04:51 +0000
commitccc3d5358ccc4c698c73d780d28415e131224fc0 (patch)
tree0af6461e639cd0055c49b28f47b0932aeb75c84d /trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
parent52edf7dfea3015e807e72e0812d99abbb53e6f9f (diff)
downloadpdf-over-ccc3d5358ccc4c698c73d780d28415e131224fc0.tar.gz
pdf-over-ccc3d5358ccc4c698c73d780d28415e131224fc0.tar.bz2
pdf-over-ccc3d5358ccc4c698c73d780d28415e131224fc0.zip
StateMachine cleanup
JumpToState stuff git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12389 3a0b52a2-8410-0410-bc02-ff6273a87459
Diffstat (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java')
-rw-r--r--trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
index 9bc4bfec..c8d74161 100644
--- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
+++ b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
@@ -44,8 +44,11 @@ public class StatusImpl implements Status {
private State currentState = null;
+ private State previousState = null;
+
private MainWindowBehavior behavior;
+
/**
* Constructor
*/
@@ -59,14 +62,33 @@ public class StatusImpl implements Status {
}
/**
- * Sets the current state
- * @param currentState
+ * Changes the current state
+ * @param currentState the current State
*/
public void setCurrentState(State currentState) {
+ if (this.previousState == this.currentState)
+ log.error("Changing to same state? " + this.currentState);
+
+ if (this.previousState != null && this.previousState != currentState)
+ {
+ //Reference to previous state will be lost - perform cleanup
+ log.debug("Cleaning up " + this.previousState);
+ this.previousState.cleanUp();
+ }
+
+ this.previousState = this.currentState;
this.currentState = currentState;
}
/* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.Status#getPreviousState()
+ */
+ @Override
+ public State getPreviousState() {
+ return this.previousState;
+ }
+
+ /* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.Status#setDocument(java.io.File)
*/
@Override
@@ -119,6 +141,6 @@ public class StatusImpl implements Status {
*/
@Override
public MainWindowBehavior getBehavior() {
- return behavior;
+ return this.behavior;
}
}