From ef21d65f36f2c756df95aa4857c22a26be60d4f2 Mon Sep 17 00:00:00 2001 From: tkellner Date: Fri, 24 Aug 2012 17:04:45 +0000 Subject: State Machine stuff git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12385 3a0b52a2-8410-0410-bc02-ff6273a87459 --- .../gui/workflow/states/PrepareSigningState.java | 80 +++++++++++++++++++--- 1 file changed, 70 insertions(+), 10 deletions(-) (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java') diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java index a18dc389..f1c291f8 100644 --- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java +++ b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java @@ -16,35 +16,95 @@ 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. */ 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"; } - + + } -- cgit v1.2.3