summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java10
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustHandler.java30
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/MobileBKUCommunicationState.java21
3 files changed, 43 insertions, 18 deletions
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 98f6fe3f..e80d23a3 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,7 +52,7 @@ public class MobileBKUState extends State {
switch(this.stateMachine.getConfigProvider().getMobileBKUType()) {
case A_TRUST:
this.status = new ATrustStatus(this.stateMachine.getConfigProvider());
- this.handler = new ATrustHandler(this);
+ this.handler = new ATrustHandler(this, this.stateMachine.getGUIProvider().getMainShell());
break;
case IAIK:
@@ -204,6 +204,7 @@ public class MobileBKUState extends State {
new PostSLRequestThread(this));
postSLRequestThread.start();
break;
+
case POST_NUMBER:
// Check if number and password is set ...
// if not show UI
@@ -269,6 +270,7 @@ public class MobileBKUState extends State {
}
}
break;
+
case POST_TAN:
// Get TAN from UI
@@ -303,11 +305,15 @@ public class MobileBKUState extends State {
tan.enableButton();
this.stateMachine.getGUIProvider().display(tan);
}
-
break;
+
case FINAL:
this.setNextState(new SigningState(this.stateMachine));
break;
+
+ case CANCEL:
+ this.setNextState(new BKUSelectionState(this.stateMachine));
+ break;
}
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustHandler.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustHandler.java
index dcab0641..0ce95c4e 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustHandler.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustHandler.java
@@ -21,9 +21,16 @@ import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.protocol.Protocol;
+import org.eclipse.swt.SWT;
+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.controls.Dialog;
+import at.asit.pdfover.gui.controls.Dialog.BUTTONS;
+import at.asit.pdfover.gui.controls.Dialog.ICON;
+import at.asit.pdfover.gui.utils.Messages;
import at.asit.pdfover.gui.workflow.states.LocalBKUState;
import at.asit.pdfover.gui.workflow.states.MobileBKUState;
import at.asit.pdfover.signator.SLResponse;
@@ -32,11 +39,15 @@ import at.asit.pdfover.signator.SLResponse;
* A-Trust mobile BKU handler
*/
public class ATrustHandler extends MobileBKUHandler {
+ Shell shell;
+
/**
* @param state
+ * @param shell
*/
- public ATrustHandler(MobileBKUState state) {
+ public ATrustHandler(MobileBKUState state, Shell shell) {
super(state);
+ this.shell = shell;
}
/**
@@ -196,8 +207,21 @@ public class ATrustHandler extends MobileBKUHandler {
}
if (getStatus().getTanTries() <= 0) {
- // move to POST_REQUEST
- getState().setCommunicationState(MobileBKUCommunicationState.POST_REQUEST);
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ Dialog dialog = new Dialog(ATrustHandler.this.shell, Messages.getString("common.warning"), //$NON-NLS-1$
+ Messages.getString("mobileBKU.tan_tries_exceeded"), //$NON-NLS-1$
+ BUTTONS.OK_CANCEL, ICON.QUESTION);
+ if (dialog.open() == SWT.CANCEL) {
+ // Cancel
+ getState().setCommunicationState(MobileBKUCommunicationState.CANCEL);
+ } else {
+ // move to POST_REQUEST again
+ getState().setCommunicationState(MobileBKUCommunicationState.POST_REQUEST);
+ }
+ }
+ });
}
}
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/MobileBKUCommunicationState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/MobileBKUCommunicationState.java
index 339f2db3..de6e777c 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/MobileBKUCommunicationState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/MobileBKUCommunicationState.java
@@ -20,23 +20,18 @@ package at.asit.pdfover.gui.workflow.states.mobilebku;
*/
public enum MobileBKUCommunicationState {
- /**
- * POST SL Request to A-Trust BKU
- */
+ /** POST SL Request to A-Trust BKU */
POST_REQUEST,
- /**
- * POST User informations (number, password) to A-Trust BKU
- */
+ /** POST User informations (number, password) to A-Trust BKU */
POST_NUMBER,
- /**
- * POST tan to A-Trust BKU and retrieve SL Response
- */
+ /** POST tan to A-Trust BKU and retrieve SL Response */
POST_TAN,
- /**
- * Final state
- */
- FINAL
+ /** Final state */
+ FINAL,
+
+ /** Cancel state */
+ CANCEL
}