From aec0b00cb9801faa4a5093d200281763447f0696 Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 10 Apr 2013 18:52:47 +0000 Subject: State Machine refactor git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@21 174cde9d-5d70-4d2a-aa98-46368bc2aaf7 --- .../gui/workflow/states/BKUSelectionState.java | 36 +++++++++++++--------- .../workflow/states/DataSourceSelectionState.java | 11 ++++--- .../pdfover/gui/workflow/states/LocalBKUState.java | 8 ++--- .../gui/workflow/states/MobileBKUState.java | 8 ++--- .../pdfover/gui/workflow/states/OutputState.java | 11 ++++--- .../gui/workflow/states/PositioningState.java | 11 ++++--- .../workflow/states/PrepareConfigurationState.java | 23 +++++++------- .../gui/workflow/states/PrepareSigningState.java | 21 +++++++------ .../pdfover/gui/workflow/states/SigningState.java | 9 +++--- 9 files changed, 76 insertions(+), 62 deletions(-) (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states') 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()); -- cgit v1.2.3