summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:52:47 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:52:47 +0000
commitaec0b00cb9801faa4a5093d200281763447f0696 (patch)
tree809190497f0a89624e8729319d3064c10a3b8df6 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states
parente710a326314184f31cd50d4637959f44232a74ee (diff)
downloadpdf-over-aec0b00cb9801faa4a5093d200281763447f0696.tar.gz
pdf-over-aec0b00cb9801faa4a5093d200281763447f0696.tar.bz2
pdf-over-aec0b00cb9801faa4a5093d200281763447f0696.zip
State Machine refactor
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@21 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java36
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java11
-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/OutputState.java11
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java11
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java23
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java21
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java9
9 files changed, 76 insertions, 62 deletions
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 2bd3361d..1d2c5524 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
@@ -21,18 +21,26 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.components.BKUSelectionComposite;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.StateMachineImpl;
+import at.asit.pdfover.gui.workflow.State;
/**
* Decides which BKU to use (preconfigured or let user choose)
*/
-public class BKUSelectionState extends WorkflowState {
+public class BKUSelectionState extends State {
/**
- * Enumeration of available BKU type
+ * @param stateMachine
*/
- public enum BKUS {
+ public BKUSelectionState(StateMachine stateMachine) {
+ super(stateMachine);
+ }
+
+ /**
+ * Enumeration of available BKU types
+ */
+ public enum BKUs {
/**
* Local bku
*/
@@ -48,7 +56,7 @@ public class BKUSelectionState extends WorkflowState {
*/
NONE
}
-
+
/**
* SFL4J Logger instance
**/
@@ -57,28 +65,28 @@ public class BKUSelectionState extends WorkflowState {
private BKUSelectionComposite selectionComposite = null;
- private BKUSelectionComposite getSelectionComposite(Workflow workflow) {
+ private BKUSelectionComposite getSelectionComposite() {
if (this.selectionComposite == null) {
this.selectionComposite = new BKUSelectionComposite(
- workflow.getComposite(), SWT.RESIZE, workflow);
+ this.stateMachine.getComposite(), SWT.RESIZE, this);
}
return this.selectionComposite;
}
@Override
- public void update(Workflow workflow) {
+ public void run() {
- if(workflow.getSelectedBKU() == BKUS.NONE) {
+ if(this.stateMachine.getStatus().getBKU() == BKUs.NONE) {
BKUSelectionComposite selection = this
- .getSelectionComposite(workflow);
+ .getSelectionComposite();
- workflow.setTopControl(selection);
+ this.stateMachine.setTopControl(selection);
selection.layout();
- workflow.setSelectedBKU(selection.getSelected());
+ this.stateMachine.setSelectedBKU(selection.getSelected());
- if(workflow.getSelectedBKU() == BKUS.NONE) {
+ if(this.stateMachine.getSelectedBKU() == BKUs.NONE) {
this.setNextState(this);
return;
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java
index 10492dfe..6b69947a 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java
@@ -23,13 +23,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.components.DataSourceSelectComposite;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.StateMachineImpl;
+import at.asit.pdfover.gui.workflow.State;
/**
* Selects the data source for the signature process.
*/
-public class DataSourceSelectionState extends WorkflowState {
+public class DataSourceSelectionState extends State {
/**
* SFL4J Logger instance
@@ -39,7 +40,7 @@ public class DataSourceSelectionState extends WorkflowState {
private DataSourceSelectComposite selectionComposite = null;
- private DataSourceSelectComposite getSelectionComposite(Workflow workflow) {
+ private DataSourceSelectComposite getSelectionComposite(StateMachineImpl workflow) {
if (this.selectionComposite == null) {
this.selectionComposite = new DataSourceSelectComposite(
workflow.getComposite(), SWT.RESIZE, workflow);
@@ -49,7 +50,7 @@ public class DataSourceSelectionState extends WorkflowState {
}
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
if (workflow.getDataSource() == null) {
DataSourceSelectComposite selection = this
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 aa352be7..2a53dcbc 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
@@ -19,13 +19,13 @@ package at.asit.pdfover.gui.workflow.states;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.State;
/**
* Logical state for performing the BKU Request to a local BKU
*/
-public class LocalBKUState extends WorkflowState {
+public class LocalBKUState extends State {
/**
* SLF4J Logger instance
**/
@@ -36,7 +36,7 @@ public class LocalBKUState extends WorkflowState {
* @see at.asit.pdfover.gui.workflow.WorkflowState#update(at.asit.pdfover.gui.workflow.Workflow)
*/
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO Process SL Request and set SL Response
this.setNextState(new SigningState());
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 643abd45..169e9e59 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
@@ -19,13 +19,13 @@ package at.asit.pdfover.gui.workflow.states;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.State;
/**
* Logical state for performing the BKU Request to the A-Trust Mobile BKU
*/
-public class MobileBKUState extends WorkflowState {
+public class MobileBKUState extends State {
/**
* SLF4J Logger instance
**/
@@ -36,7 +36,7 @@ public class MobileBKUState extends WorkflowState {
* @see at.asit.pdfover.gui.workflow.WorkflowState#update(at.asit.pdfover.gui.workflow.Workflow)
*/
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO Process SL Request and set SL Response
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 d7df5c19..933dd559 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
@@ -18,13 +18,14 @@ package at.asit.pdfover.gui.workflow.states;
//Imports
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.State;
/**
* Procduces the output of the signature process. (save file, open file)
*/
-public class OutputState extends WorkflowState {
+public class OutputState extends State {
/**
* SFL4J Logger instance
@@ -33,10 +34,10 @@ public class OutputState extends WorkflowState {
private static final Logger log = LoggerFactory.getLogger(OutputState.class);
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO Preform output operations ... end workflow
- workflow.exitWorkflow();
+ stateMachine.exit();
}
@Override
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 180b98d9..5b764084 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
@@ -21,13 +21,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.components.PositioningComposite;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.StateMachineImpl;
+import at.asit.pdfover.gui.workflow.State;
/**
* Decides where to position the signature block
*/
-public class PositioningState extends WorkflowState {
+public class PositioningState extends State {
/**
* SFL4J Logger instance
@@ -38,7 +39,7 @@ public class PositioningState extends WorkflowState {
private PositioningComposite positionComposite = null;
- private PositioningComposite getPositioningComosite(Workflow workflow) {
+ private PositioningComposite getPositioningComosite(StateMachineImpl workflow) {
if (this.positionComposite == null) {
this.positionComposite = new PositioningComposite(
workflow.getComposite(), SWT.NONE, workflow);
@@ -48,7 +49,7 @@ public class PositioningState extends WorkflowState {
}
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
if(workflow.getParameter().getSignaturePosition() == null) {
PositioningComposite position = this.getPositioningComosite(workflow);
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 91ebf01b..45e04dfd 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
@@ -20,9 +20,10 @@ import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
-import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUS;
+
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.State;
+import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUs;
import at.asit.pdfover.signator.Signator;
import at.asit.pdfover.signator.SignaturePosition;
@@ -31,7 +32,7 @@ import at.asit.pdfover.signator.SignaturePosition;
*
* Reads configuration, command arguments and initializes configured variables
*/
-public class PrepareConfigurationState extends WorkflowState {
+public class PrepareConfigurationState extends State {
public final static String BKU_SELECTION_CONFIG = "DEFAULT_BKU";
@@ -43,7 +44,7 @@ public class PrepareConfigurationState extends WorkflowState {
.getLogger(PrepareConfigurationState.class);
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO: Read config file and command line arguments
// Set usedSignerLib ...
@@ -69,20 +70,20 @@ public class PrepareConfigurationState extends WorkflowState {
* @param props
* @return The BKUS value
*/
- public static BKUS readSelectedBKU(final Properties props) {
+ public static BKUs readSelectedBKU(final Properties props) {
if (props.containsKey(BKU_SELECTION_CONFIG)) {
String value = props.getProperty(BKU_SELECTION_CONFIG);
value = value.trim().toLowerCase();
- if (value.equals(BKUS.LOCAL.toString().trim().toLowerCase())) {
+ if (value.equals(BKUs.LOCAL.toString().trim().toLowerCase())) {
- return BKUS.LOCAL;
+ return BKUs.LOCAL;
} else if (value
- .equals(BKUS.MOBILE.toString().trim().toLowerCase())) {
- return BKUS.MOBILE;
+ .equals(BKUs.MOBILE.toString().trim().toLowerCase())) {
+ return BKUs.MOBILE;
}
}
- return BKUS.NONE;
+ return BKUs.NONE;
}
/**
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 f1c291f8..efccc5de 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
@@ -21,27 +21,28 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.components.WaitingComposite;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
-import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUS;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.StateMachineImpl;
+import at.asit.pdfover.gui.workflow.State;
+import at.asit.pdfover.gui.workflow.states.BKUSelectionState.BKUs;
/**
* User waiting state, wait for PDF Signator library to prepare document for signing.
*/
-public class PrepareSigningState extends WorkflowState {
+public class PrepareSigningState extends State {
/**
* Debug background thread
*/
private final class DebugSleeperThread implements Runnable {
- private Workflow workflow;
+ private StateMachineImpl workflow;
/**
* Default constructor
* @param work
*/
- public DebugSleeperThread(Workflow work) {
+ public DebugSleeperThread(StateMachineImpl work) {
this.workflow = work;
}
@@ -64,7 +65,7 @@ public class PrepareSigningState extends WorkflowState {
private WaitingComposite selectionComposite = null;
- private WaitingComposite getSelectionComposite(Workflow workflow) {
+ private WaitingComposite getSelectionComposite(StateMachineImpl workflow) {
if (this.selectionComposite == null) {
this.selectionComposite = new WaitingComposite(
workflow.getComposite(), SWT.RESIZE, workflow);
@@ -76,7 +77,7 @@ public class PrepareSigningState extends WorkflowState {
private boolean run = false;
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO SHOW BACKGROUND ACTIVITY ....
WaitingComposite waiting = this.getSelectionComposite(workflow);
@@ -91,9 +92,9 @@ public class PrepareSigningState extends WorkflowState {
// WAIT FOR SLREQUEST and dispatch according to BKU selection
- if(workflow.getSelectedBKU() == BKUS.LOCAL) {
+ if(workflow.getSelectedBKU() == BKUs.LOCAL) {
this.setNextState(new LocalBKUState());
- } else if(workflow.getSelectedBKU() == BKUS.MOBILE) {
+ } else if(workflow.getSelectedBKU() == BKUs.MOBILE) {
this.setNextState(new MobileBKUState());
} else {
log.error("Invalid selected BKU Value \"NONE\" in PrepareSigningState!");
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 8b9a5475..27dd7420 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
@@ -18,13 +18,14 @@ package at.asit.pdfover.gui.workflow.states;
//Imports
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.Workflow;
-import at.asit.pdfover.gui.workflow.WorkflowState;
+
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.State;
/**
* Logical state for signing process, usually show BKU Dialog during this state.
*/
-public class SigningState extends WorkflowState {
+public class SigningState extends State {
/**
* SFL4J Logger instance
@@ -33,7 +34,7 @@ public class SigningState extends WorkflowState {
private static final Logger log = LoggerFactory.getLogger(SigningState.class);
@Override
- public void update(Workflow workflow) {
+ public void run(StateMachine stateMachine) {
// TODO Wait until output ready and set output
this.setNextState(new OutputState());