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/LocalBKUState.java2
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java2
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java56
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java1
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java2
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java3
6 files changed, 62 insertions, 4 deletions
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 eaccae5d..b229b58a 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
@@ -104,7 +104,7 @@ public class LocalBKUState extends State {
public void run() {
try {
- HttpClient client = BKUHelper.getHttpClient();
+ HttpClient client = (HttpClient) BKUHelper.getHttpClient();
PostMethod method = new PostMethod(Constants.LOCAL_BKU_URL);
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 bd88b48d..2b9bbe06 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
@@ -66,7 +66,7 @@ public class MobileBKUState extends State {
case IAIK:
this.status = new IAIKStatus(provider);
this.handler = new IAIKHandler(this,
- stateMachine.getGUIProvider().getMainShell());
+ stateMachine.getGUIProvider().getMainShell());
break;
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
index b77809ed..b2a7cb50 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java
@@ -15,17 +15,26 @@
*/
package at.asit.pdfover.gui.workflow.states;
+import java.io.IOException;
+
+import org.apache.pdfbox.pdmodel.PDDocument;
//Imports
import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.asit.pdfover.gui.MainWindow.Buttons;
import at.asit.pdfover.gui.MainWindowBehavior;
import at.asit.pdfover.gui.composites.DataSourceSelectComposite;
+import at.asit.pdfover.gui.utils.Messages;
import at.asit.pdfover.gui.workflow.StateMachine;
import at.asit.pdfover.gui.workflow.Status;
import at.asit.pdfover.gui.workflow.config.ConfigProvider;
+import at.asit.pdfover.signator.SignaturePosition;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.lib.impl.pdfbox.placeholder.SignaturePlaceholderExtractor;
+import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData;
/**
* Selects the data source for the signature process.
@@ -82,6 +91,53 @@ public class OpenState extends State {
}
}
log.debug("Got Datasource: " + getStateMachine().getStatus().getDocument().getAbsolutePath()); //$NON-NLS-1$
+
+ // scan for signature placeholders
+ // - see if we want to scan for placeholders in the settings
+ if (getStateMachine().getConfigProvider().getUseMarker()) {
+ try {
+ // - scan for placeholders
+ PDDocument pddocument = PDDocument.load(getStateMachine().getStatus().getDocument());
+ SignaturePlaceholderData signaturePlaceholderData = SignaturePlaceholderExtractor.extract(pddocument,
+ "1", 3);
+
+ if (null != signaturePlaceholderData) {
+ log.debug("we got a position", signaturePlaceholderData.getId()); //$NON-NLS-1$
+ // create a dialog with ok and cancel buttons and a question
+ // icon
+ MessageBox dialog = new MessageBox(getStateMachine().getGUIProvider().getMainShell(),
+ SWT.ICON_QUESTION | SWT.YES | SWT.NO);
+ dialog.setText(Messages.getString("dataSourceSelection.usePlaceholderTitle")); //$NON-NLS-1$
+ dialog.setMessage(Messages.getString("dataSourceSelection.usePlaceholderText")); //$NON-NLS-1$
+
+ // open dialog and await user selection
+ if (SWT.YES == dialog.open()) {
+ // if the user chooses to use the signature placeholder
+ // - fill the position information so that we skip to
+ // the
+ // next stages without breaking stuff
+ SignaturePosition position = new SignaturePosition(
+ signaturePlaceholderData.getTablePos().getPosX(),
+ signaturePlaceholderData.getTablePos().getPosY(),
+ signaturePlaceholderData.getTablePos().getPage());
+ status.setSignaturePosition(position);
+
+ getStateMachine().getStatus().setSearchForPlaceholderSignature(true);
+ } else {
+ getStateMachine().getStatus().setSearchForPlaceholderSignature(false);
+ }
+ }
+ } catch (PdfAsException e) {
+ // fail silently. In case we got here no dialog has been shown.
+ // Just
+ // proceed with the usual process.
+ } catch (IOException e) {
+ // fail silently. In case we got here no dialog has been shown.
+ // Just
+ // proceed with the usual process.
+ }
+ }
+
this.setNextState(new PositioningState(getStateMachine()));
}
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 32b335a7..4d73c068 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
@@ -43,7 +43,6 @@ import at.asit.pdfover.signator.SignaturePosition;
import com.sun.pdfview.PDFFile;
import com.sun.pdfview.decrypt.PDFAuthenticationFailureException;
-
/**
* Decides where to position the signature block
*/
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 b1af315e..e9ff0b25 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
@@ -457,7 +457,7 @@ public class PrepareConfigurationState extends State {
new Thread(new Runnable() {
@Override
public void run() {
- HttpClient client = BKUHelper.getHttpClient();
+ HttpClient client = (HttpClient) BKUHelper.getHttpClient();
GetMethod method = new GetMethod(Constants.CURRENT_RELEASE_URL);
try {
client.executeMethod(method);
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 155073d6..4a914046 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
@@ -155,6 +155,9 @@ public class PrepareSigningState extends State {
}
this.state.signatureParameter
+ .setSearchForPlaceholderSignatures(getStateMachine().getStatus().isSearchForPlaceholderSignature());
+
+ this.state.signatureParameter
.setSignatureLanguage(configuration.getSignatureLocale()
.getLanguage());