summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:53:20 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:53:20 +0000
commit69f82291cd349961cca5d8a65b7f3f2f724ed74f (patch)
tree6cfc2d6ff7defe17a42e51d33f5288234728f485 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow
parentb2968bef5d56723826cfe38f1fe5ab1d60aa79f3 (diff)
downloadmocca-69f82291cd349961cca5d8a65b7f3f2f724ed74f.tar.gz
mocca-69f82291cd349961cca5d8a65b7f3f2f724ed74f.tar.bz2
mocca-69f82291cd349961cca5d8a65b7f3f2f724ed74f.zip
StateMachine cleanup
JumpToState stuff git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@24 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/GUIProvider.java5
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java2
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java57
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/Status.java6
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java28
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java27
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java8
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java8
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java34
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java10
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java26
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java8
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java61
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java10
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/State.java6
15 files changed, 220 insertions, 76 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/GUIProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/GUIProvider.java
index 4e7955fd..ff31ad0d 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/GUIProvider.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/GUIProvider.java
@@ -17,6 +17,8 @@ package at.asit.pdfover.gui.workflow;
import org.eclipse.swt.widgets.Composite;
+import at.asit.pdfover.gui.workflow.states.State;
+
/**
*
@@ -32,9 +34,10 @@ public interface GUIProvider {
* Create a new Composite
* @param compositeClass The class of the Composite to create
* @param style the SWT style
+ * @param state the State this Composite belongs to
* @return the new Composite
*/
- public <T> T createComposite(Class<T> compositeClass, int style);
+ public <T> T createComposite(Class<T> compositeClass, int style, State state);
/**
* Display the composite as top most in main window
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java
index 1298bda8..c98d9895 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java
@@ -69,7 +69,7 @@ public interface StateMachine {
* Update state machine from other thread
* Calls the next state within the main thread
*/
- public void InvokeUpdate();
+ public void invokeUpdate();
/**
* Exit state machine execution
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java
index bb292c74..38c3d55d 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java
@@ -16,21 +16,17 @@
package at.asit.pdfover.gui.workflow;
//Imports
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.lang.reflect.Constructor;
+
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.MainWindow;
-import at.asit.pdfover.gui.workflow.states.BKUSelectionState;
-import at.asit.pdfover.gui.workflow.states.OpenState;
-import at.asit.pdfover.gui.workflow.states.PositioningState;
import at.asit.pdfover.gui.workflow.states.PrepareConfigurationState;
import at.asit.pdfover.gui.workflow.states.State;
-import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUs;
/**
* Workflow holds logical state of signing process and updates the current
@@ -72,37 +68,8 @@ public class StateMachineImpl implements StateMachine, GUIProvider {
*/
@Override
public void jumpToState(State state) {
- if (this.status.getCurrentState() != state && state != null) {
- this.status.setCurrentState(state);
-
- // TODO rewrite when Config is done ...
- if (state instanceof PositioningState) {
- // User jumps to positioning state !
- // restore possible default for bku selection / forget BKU
- // selection
- this.getStatus().setBKU(
- this.getConfigProvider().getDefaultBKU());
- // forget position
- this.getStatus().setSignaturePosition(null);
- } else if (state instanceof BKUSelectionState) {
- // User jumps to bku selection state !
- // forget bku selection
- this.getStatus().setBKU(BKUs.NONE);
- } else if (state instanceof OpenState) {
- // User jumps to data source selection state !
- // forget bku selection / restore possible default for bku
- // selection
- this.getStatus().setBKU(
- this.getConfigProvider().getDefaultBKU());
- // forget position / restore possible default for position
- this.getStatus().setSignaturePosition(
- this.getConfigProvider().getDefaultSignaturePosition());
- // forget data source selection
- this.getStatus().setDocument(null);
- }
-
- this.update();
- }
+ this.status.setCurrentState(state);
+ this.update();
}
/**
@@ -116,7 +83,7 @@ public class StateMachineImpl implements StateMachine, GUIProvider {
current.run();
if (this.mainWindow != null
&& !this.mainWindow.getShell().isDisposed()) {
- log.debug("Allowing MainWindow to update its state for "
+ log.debug("Allowing MainWindow to update its state for " //$NON-NLS-1$
+ current);
current.updateMainWindowBehavior();
this.mainWindow.applyBehavior();
@@ -126,8 +93,8 @@ public class StateMachineImpl implements StateMachine, GUIProvider {
if (next == current) {
break;
}
- log.debug("Changing state from: "
- + current + " to "
+ log.debug("Changing state from: " //$NON-NLS-1$
+ + current + " to " //$NON-NLS-1$
+ next.toString());
this.status.setCurrentState(next);
}
@@ -143,7 +110,7 @@ public class StateMachineImpl implements StateMachine, GUIProvider {
* Invoke Update in UI (Main) Thread
*/
@Override
- public void InvokeUpdate() {
+ public void invokeUpdate() {
if (this.display != null) {
this.display.asyncExec(new Runnable() {
@@ -223,12 +190,12 @@ public class StateMachineImpl implements StateMachine, GUIProvider {
}
@Override
- public <T> T createComposite(Class<T> compositeClass, int style) {
+ public <T> T createComposite(Class<T> compositeClass, int style, State state) {
T composite = null;
try {
Constructor<T> constructor = compositeClass.getDeclaredConstructor(
- Composite.class, int.class, BKUSelectionState.class);
- composite = constructor.newInstance(getComposite(), style, this);
+ Composite.class, int.class, State.class);
+ composite = constructor.newInstance(getComposite(), style, state);
} catch (Exception e) {
log.error(
"Could not create Composite for Class "
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/Status.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/Status.java
index 9af0b034..e0a7b0d4 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/Status.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/Status.java
@@ -73,4 +73,10 @@ public interface Status {
* @return the main window behavior
*/
public MainWindowBehavior getBehavior();
+
+ /**
+ * Gets the previous State
+ * @return the previous State
+ */
+ public State getPreviousState();
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
index 9bc4bfec..c8d74161 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StatusImpl.java
+++ b/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;
}
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java
index 86bd50c9..fe79c460 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java
@@ -23,7 +23,9 @@ import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.composites.BKUSelectionComposite;
+import at.asit.pdfover.gui.workflow.ConfigProvider;
import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.Status;
/**
* Decides which BKU to use (preconfigured or let user choose)
@@ -76,23 +78,38 @@ public class BKUSelectionState extends State {
@Override
public void run() {
-
- if(this.stateMachine.getStatus().getBKU() == BKUs.NONE) {
+ Status status = this.stateMachine.getStatus();
+ if (!(status.getPreviousState() instanceof BKUSelectionState))
+ {
+ ConfigProvider config = this.stateMachine.getConfigProvider();
+ status.setBKU(config.getDefaultBKU());
+ }
+
+ if(status.getBKU() == BKUs.NONE) {
BKUSelectionComposite selection = this
.getSelectionComposite();
this.stateMachine.getGUIProvider().display(selection);
selection.layout();
- this.stateMachine.getStatus().setBKU(selection.getSelected());
+ status.setBKU(selection.getSelected());
- if(this.stateMachine.getStatus().getBKU() == BKUs.NONE) {
+ if(status.getBKU() == BKUs.NONE) {
return;
}
}
this.setNextState(new PrepareSigningState(this.stateMachine));
}
-
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ if (this.selectionComposite != null)
+ this.selectionComposite.dispose();
+ }
+
/* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java
index 2d3a31ec..795090e7 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java
@@ -50,6 +50,14 @@ public class LocalBKUState extends State {
this.setNextState(new SigningState(this.stateMachine));
}
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // No composite - no cleanup necessary
+ }
/* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java
index c160a524..3e1eb21a 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java
@@ -52,6 +52,14 @@ public class MobileBKUState extends State {
}
/* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // No composite - no cleanup necessary
+ }
+
+ /* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
@Override
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
index ee90a69b..1d2b94a8 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
@@ -23,7 +23,9 @@ import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.composites.DataSourceSelectComposite;
+import at.asit.pdfover.gui.workflow.ConfigProvider;
import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.Status;
/**
* Selects the data source for the signature process.
@@ -47,8 +49,10 @@ public class OpenState extends State {
private DataSourceSelectComposite getSelectionComposite() {
if (this.selectionComposite == null) {
- this.selectionComposite = new DataSourceSelectComposite(
- this.stateMachine.getGUIProvider().getComposite(), SWT.RESIZE, this);
+ this.selectionComposite =
+ this.stateMachine.getGUIProvider().createComposite(DataSourceSelectComposite.class, SWT.RESIZE, this);
+ //this.selectionComposite = new DataSourceSelectComposite(
+ // this.stateMachine.getGUIProvider().getComposite(), SWT.RESIZE, this);
}
return this.selectionComposite;
@@ -56,26 +60,44 @@ public class OpenState extends State {
@Override
public void run() {
+ Status status = this.stateMachine.getStatus();
+ if (!(status.getPreviousState() instanceof PrepareConfigurationState) &&
+ !(status.getPreviousState() instanceof OpenState))
+ {
+ ConfigProvider config = this.stateMachine.getConfigProvider();
+ status.setBKU(config.getDefaultBKU());
+ status.setDocument(null);
+ status.setSignaturePosition(config.getDefaultSignaturePosition());
+ }
- if (this.stateMachine.getStatus().getDocument() == null) {
+ if (status.getDocument() == null) {
DataSourceSelectComposite selection = this
.getSelectionComposite();
this.stateMachine.getGUIProvider().display(selection);
selection.layout();
- this.stateMachine.getStatus().setDocument(selection.getSelected());
+ status.setDocument(selection.getSelected());
- if (this.stateMachine.getStatus().getDocument() == null) {
+ if (status.getDocument() == null) {
// Not selected yet
return;
}
}
- log.debug("Got Datasource: " + this.stateMachine.getStatus().getDocument().getAbsolutePath());
+ log.debug("Got Datasource: " + this.stateMachine.getStatus().getDocument().getAbsolutePath()); //$NON-NLS-1$
this.setNextState(new PositioningState(this.stateMachine));
}
/* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ if (this.selectionComposite != null)
+ this.selectionComposite.dispose();
+ }
+
+ /* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
@Override
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java
index 8a04dd3f..7c16d559 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java
@@ -47,7 +47,15 @@ public class OutputState extends State {
this.stateMachine.exit();
}
-
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // TODO
+ }
+
/* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
index c7c92a89..2809bd25 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
@@ -23,7 +23,9 @@ import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.composites.PositioningComposite;
+import at.asit.pdfover.gui.workflow.ConfigProvider;
import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.Status;
/**
* Decides where to position the signature block
@@ -57,15 +59,22 @@ public class PositioningState extends State {
@Override
public void run() {
-
- if(this.stateMachine.getStatus().getSignaturePosition() == null) {
+ Status status = this.stateMachine.getStatus();
+ if (!(status.getPreviousState() instanceof PositioningState) &&
+ !(status.getPreviousState() instanceof OpenState))
+ {
+ status.setSignaturePosition(null);
+ }
+
+
+ if(status.getSignaturePosition() == null) {
PositioningComposite position = this.getPositioningComosite();
this.stateMachine.getGUIProvider().display(position);
- this.stateMachine.getStatus().setSignaturePosition(position.getPosition());
+ status.setSignaturePosition(position.getPosition());
- if(this.stateMachine.getStatus().getSignaturePosition() == null) {
+ if(status.getSignaturePosition() == null) {
return;
}
}
@@ -73,6 +82,15 @@ public class PositioningState extends State {
}
/* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ if (this.positionComposite != null)
+ this.positionComposite.dispose();
+ }
+
+ /* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
@Override
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 4fa9e362..2a71890d 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
@@ -59,6 +59,14 @@ public class PrepareConfigurationState extends State {
}
/* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // No composite - no cleanup necessary
+ }
+
+ /* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
@Override
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
index 061869c1..186bf447 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
@@ -25,6 +25,8 @@ import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.composites.WaitingComposite;
import at.asit.pdfover.gui.workflow.StateMachine;
import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUs;
+import at.asit.pdfover.signator.SignatureParameter;
+import at.asit.pdfover.signator.Signer;
/**
* User waiting state, wait for PDF Signator library to prepare document for signing.
@@ -61,24 +63,52 @@ public class PrepareSigningState extends State {
// TODO Auto-generated catch block
e.printStackTrace();
}
- this.workflow.InvokeUpdate();
+ this.workflow.invokeUpdate();
}
}
+ private final class PrepareDocumentThread implements Runnable {
+
+ private PrepareSigningState state;
+
+ /**
+ * Default constructor
+ * @param state
+ */
+ public PrepareDocumentThread(PrepareSigningState state) {
+ this.state = state;
+ }
+
+ @Override
+ public void run() {
+ try {
+
+
+ } catch (Exception e) {
+ log.error("PrepareDocumentThread: ", e);
+ }
+ finally {
+ this.state.stateMachine.invokeUpdate();
+ }
+ }
+ }
+
/**
* SFL4J Logger instance
**/
private static final Logger log = LoggerFactory.getLogger(PrepareSigningState.class);
- private WaitingComposite selectionComposite = null;
+ private SignatureParameter signatureParameter;
+
+ private WaitingComposite waitingComposite = null;
private WaitingComposite getSelectionComposite() {
- if (this.selectionComposite == null) {
- this.selectionComposite = new WaitingComposite(
+ if (this.waitingComposite == null) {
+ this.waitingComposite = new WaitingComposite(
this.stateMachine.getGUIProvider().getComposite(), SWT.RESIZE, this);
}
- return this.selectionComposite;
+ return this.waitingComposite;
}
private boolean run = false;
@@ -87,11 +117,17 @@ public class PrepareSigningState extends State {
public void run() {
// TODO SHOW BACKGROUND ACTIVITY ....
WaitingComposite waiting = this.getSelectionComposite();
-
+
this.stateMachine.getGUIProvider().display(waiting);
+ Signer signer = this.stateMachine.getPDFSigner().getPDFSigner();
+
+ if(signatureParameter == null) {
+// signatureParameter =
+ }
+
if(!this.run) {
- Thread t = new Thread(new DebugSleeperThread(this.stateMachine));
+ Thread t = new Thread(new PrepareDocumentThread(this));
this.run = true;
t.start();
return;
@@ -108,7 +144,16 @@ public class PrepareSigningState extends State {
this.setNextState(new BKUSelectionState(this.stateMachine));
}
}
-
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ if (this.waitingComposite != null)
+ this.waitingComposite.dispose();
+ }
+
/* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java
index 3447fc4c..6b453d33 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java
@@ -45,7 +45,15 @@ public class SigningState extends State {
this.setNextState(new OutputState(this.stateMachine));
}
-
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // No composite - no cleanup necessary
+ }
+
/* (non-Javadoc)
* @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
*/
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/State.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/State.java
index 8b9a3ebb..95c7c5bd 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/State.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/State.java
@@ -19,7 +19,6 @@ package at.asit.pdfover.gui.workflow.states;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.workflow.StateMachine;
/**
@@ -71,6 +70,11 @@ public abstract class State {
public abstract void run();
/**
+ * Perform status cleanup
+ */
+ public abstract void cleanUp();
+
+ /**
* Update the state machine
*/
public void updateStateMachine()