summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states
diff options
context:
space:
mode:
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.java62
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java75
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java14
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java13
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java13
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java27
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java62
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java80
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/SigningState.java14
9 files changed, 241 insertions, 119 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 fdd160ac..2bd3361d 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
@@ -16,8 +16,11 @@
package at.asit.pdfover.gui.workflow.states;
//Imports
+import org.eclipse.swt.SWT;
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;
@@ -27,25 +30,64 @@ import at.asit.pdfover.gui.workflow.WorkflowState;
public class BKUSelectionState extends WorkflowState {
/**
+ * Enumeration of available BKU type
+ */
+ public enum BKUS {
+ /**
+ * Local bku
+ */
+ LOCAL,
+
+ /**
+ * Mobile bku
+ */
+ MOBILE,
+
+ /**
+ * None bku
+ */
+ NONE
+ }
+
+ /**
* SFL4J Logger instance
**/
@SuppressWarnings("unused")
private static final Logger log = LoggerFactory.getLogger(BKUSelectionState.class);
+ private BKUSelectionComposite selectionComposite = null;
+
+ private BKUSelectionComposite getSelectionComposite(Workflow workflow) {
+ if (this.selectionComposite == null) {
+ this.selectionComposite = new BKUSelectionComposite(
+ workflow.getComposite(), SWT.RESIZE, workflow);
+ }
+
+ return this.selectionComposite;
+ }
+
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
- this.setNextState(state)
- }
+ if(workflow.getSelectedBKU() == BKUS.NONE) {
+ BKUSelectionComposite selection = this
+ .getSelectionComposite(workflow);
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
- @Override
- public void hideGUI() {
- // TODO Auto-generated method stub
+ workflow.setTopControl(selection);
+ selection.layout();
+
+ workflow.setSelectedBKU(selection.getSelected());
+ if(workflow.getSelectedBKU() == BKUS.NONE) {
+ this.setNextState(this);
+ return;
+ }
+ }
+ this.setNextState(new PrepareSigningState());
+ }
+
+ @Override
+ public String toString() {
+ return "BKUSelectionState";
}
-
}
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 223ba17d..10492dfe 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
@@ -16,10 +16,9 @@
package at.asit.pdfover.gui.workflow.states;
//Imports
+import java.io.File;
+
import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,59 +34,47 @@ public class DataSourceSelectionState extends WorkflowState {
/**
* SFL4J Logger instance
**/
- @SuppressWarnings("unused")
- private static final Logger log = LoggerFactory.getLogger(DataSourceSelectionState.class);
-
+ private static final Logger log = LoggerFactory
+ .getLogger(DataSourceSelectionState.class);
+
private DataSourceSelectComposite selectionComposite = null;
-
+
private DataSourceSelectComposite getSelectionComposite(Workflow workflow) {
- if(this.selectionComposite == null) {
- this.selectionComposite = new DataSourceSelectComposite(workflow.getComposite(), SWT.RESIZE, workflow);
+ if (this.selectionComposite == null) {
+ this.selectionComposite = new DataSourceSelectComposite(
+ workflow.getComposite(), SWT.RESIZE, workflow);
}
-
+
return this.selectionComposite;
}
-
+
@Override
public void update(Workflow workflow) {
- DataSourceSelectComposite selection = this.getSelectionComposite(workflow);
-
- workflow.setTopControl(selection);
- selection.layout();
-
- if(selection.isPress()) {
- this.setNextState(new PositioningState());
- } else {
- this.setNextState(this);
- }
- }
- private void recursiveHide(Control ctrl) {
- if(ctrl instanceof Composite) {
- Composite comp = (Composite)ctrl;
- Control[] childs = comp.getChildren();
- for(int i = 0; i < childs.length; i++) {
- this.recursiveHide(childs[i]);
+ if (workflow.getDataSource() == null) {
+ DataSourceSelectComposite selection = this
+ .getSelectionComposite(workflow);
+
+ workflow.setTopControl(selection);
+ selection.layout();
+
+ File source = selection.getSelected();
+ if(source != null) {
+ workflow.setDataSource(source);
}
+
+ if (workflow.getDataSource() == null) {
+ // Not selected yet
+ this.setNextState(this);
+ return;
+ }
}
- ctrl.setVisible(false);
+ log.debug("Got Datasource: " + workflow.getDataSource().getAbsolutePath());
+ this.setNextState(new PositioningState());
}
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
@Override
- public void hideGUI() {
- /*if(this.selectionComposite != null) {
- Shell shell = this.selectionComposite.getShell();
- Composite comp = this.selectionComposite.getParent();
- recursiveHide(this.selectionComposite);
- this.selectionComposite.layout();
- //this.selectionComposite.setVisible(false);
- comp.layout();
- //shell.pack(true);
- shell.layout(true);
- }*/
+ public String toString() {
+ return "DataSourceSelectionState";
}
-
}
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 5f3a00d5..aa352be7 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
@@ -37,17 +37,13 @@ public class LocalBKUState extends WorkflowState {
*/
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
+ // TODO Process SL Request and set SL Response
+ this.setNextState(new SigningState());
}
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
+
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "LocalBKUState";
}
-
}
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 9d88ce0c..643abd45 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
@@ -37,17 +37,14 @@ public class MobileBKUState extends WorkflowState {
*/
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
+ // TODO Process SL Request and set SL Response
+
+ this.setNextState(new SigningState());
}
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "MobileBKUState";
}
-
}
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 44d9a55f..d7df5c19 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
@@ -34,17 +34,14 @@ public class OutputState extends WorkflowState {
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
+ // TODO Preform output operations ... end workflow
+ workflow.exitWorkflow();
}
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
+
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "OutputState";
}
}
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 9841ffce..180b98d9 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
@@ -49,23 +49,24 @@ public class PositioningState extends WorkflowState {
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
- PositioningComposite position = this.getPositioningComosite(workflow);
-
- workflow.setTopControl(position);
+ if(workflow.getParameter().getSignaturePosition() == null) {
+ PositioningComposite position = this.getPositioningComosite(workflow);
+
+ workflow.setTopControl(position);
+
+ workflow.getParameter().setSignaturePosition(position.getPosition());
+
+ if(workflow.getParameter().getSignaturePosition() == null) {
+ this.setNextState(this);
+ return;
+ }
+ }
this.setNextState(new BKUSelectionState());
}
- /*
- * (non-Javadoc)
- *
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "PositioningState";
}
-
}
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 b90f38db..91ebf01b 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
@@ -16,10 +16,15 @@
package at.asit.pdfover.gui.workflow.states;
//Imports
+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.signator.Signator;
+import at.asit.pdfover.signator.SignaturePosition;
/**
* Starting state of workflow proccess
@@ -28,24 +33,65 @@ import at.asit.pdfover.gui.workflow.WorkflowState;
*/
public class PrepareConfigurationState extends WorkflowState {
+ public final static String BKU_SELECTION_CONFIG = "DEFAULT_BKU";
+
/**
* SFL4J Logger instance
**/
@SuppressWarnings("unused")
- private static final Logger log = LoggerFactory.getLogger(PrepareConfigurationState.class);
-
+ private static final Logger log = LoggerFactory
+ .getLogger(PrepareConfigurationState.class);
+
@Override
public void update(Workflow workflow) {
+ // TODO: Read config file and command line arguments
+ // Set usedSignerLib ...
+
+ // Create PDF Signer
+ workflow.setPdfSigner(Signator.getSigner(workflow.getUsedSignerLib()));
+
+ workflow.setParameter(workflow.getPdfSigner().newParameter());
+
+ workflow.setSelectedBKU(PrepareConfigurationState.readSelectedBKU(workflow.getConfigurationValues()));
+
+ workflow.getParameter().setSignaturePosition(readDefinedPosition(workflow.getConfigurationValues()));
+
this.setNextState(new DataSourceSelectionState());
}
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "PrepareConfigurationState";
}
+ /**
+ * Gets BKUS value from Properties
+ * @param props
+ * @return The BKUS value
+ */
+ 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())) {
+
+ return BKUS.LOCAL;
+ } else if (value
+ .equals(BKUS.MOBILE.toString().trim().toLowerCase())) {
+ return BKUS.MOBILE;
+ }
+ }
+ return BKUS.NONE;
+ }
+
+ /**
+ * Gets BKUS value from Properties
+ * @param props
+ * @return The BKUS value
+ */
+ public static SignaturePosition readDefinedPosition(final Properties props) {
+ // TODO
+ return null;
+ }
}
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 a18dc389..f1c291f8 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
@@ -16,10 +16,14 @@
package at.asit.pdfover.gui.workflow.states;
//Imports
+import org.eclipse.swt.SWT;
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;
/**
* User waiting state, wait for PDF Signator library to prepare document for signing.
@@ -27,24 +31,80 @@ import at.asit.pdfover.gui.workflow.WorkflowState;
public class PrepareSigningState extends WorkflowState {
/**
+ * Debug background thread
+ */
+ private final class DebugSleeperThread implements Runnable {
+
+ private Workflow workflow;
+
+ /**
+ * Default constructor
+ * @param work
+ */
+ public DebugSleeperThread(Workflow work) {
+ this.workflow = work;
+ }
+
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ this.workflow.InvokeUpdate();
+ }
+ }
+
+ /**
* SFL4J Logger instance
**/
- @SuppressWarnings("unused")
private static final Logger log = LoggerFactory.getLogger(PrepareSigningState.class);
+ private WaitingComposite selectionComposite = null;
+
+ private WaitingComposite getSelectionComposite(Workflow workflow) {
+ if (this.selectionComposite == null) {
+ this.selectionComposite = new WaitingComposite(
+ workflow.getComposite(), SWT.RESIZE, workflow);
+ }
+
+ return this.selectionComposite;
+ }
+
+ private boolean run = false;
+
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
+ // TODO SHOW BACKGROUND ACTIVITY ....
+ WaitingComposite waiting = this.getSelectionComposite(workflow);
+
+ workflow.setTopControl(waiting);
+
+ if(!this.run) {
+ Thread t = new Thread(new DebugSleeperThread(workflow));
+ this.run = true;
+ t.start();
+ return;
+ }
+ // WAIT FOR SLREQUEST and dispatch according to BKU selection
+
+ if(workflow.getSelectedBKU() == BKUS.LOCAL) {
+ this.setNextState(new LocalBKUState());
+ } else if(workflow.getSelectedBKU() == BKUS.MOBILE) {
+ this.setNextState(new MobileBKUState());
+ } else {
+ log.error("Invalid selected BKU Value \"NONE\" in PrepareSigningState!");
+ this.setNextState(new BKUSelectionState());
+ }
}
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
+
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "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 2305c1c6..8b9a5475 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
@@ -34,17 +34,13 @@ public class SigningState extends WorkflowState {
@Override
public void update(Workflow workflow) {
- // TODO Auto-generated method stub
+ // TODO Wait until output ready and set output
+ this.setNextState(new OutputState());
}
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI()
- */
+
@Override
- public void hideGUI() {
- // TODO Auto-generated method stub
-
+ public String toString() {
+ return "SigningState";
}
-
}