From 729516aefe7b14b03176fa8df674e17fae8945d3 Mon Sep 17 00:00:00 2001 From: Andreas Abraham Date: Tue, 18 Feb 2020 13:47:24 +0100 Subject: placeholder search --- .../gui/workflow/config/ConfigProvider.java | 5 + .../pdfover/gui/workflow/states/OpenState.java | 138 +++++++++++++-------- 2 files changed, 90 insertions(+), 53 deletions(-) (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui') diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java index 299d2fa8..4c674d17 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java @@ -260,4 +260,9 @@ public interface ConfigProvider { * @return boolean */ public boolean getUseSignatureFields(); + + /** + * @return + */ + public boolean getEnablePlaceholderUsage(); } 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 04b1678d..b9aa961d 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 @@ -85,18 +85,16 @@ public class OpenState extends State { @Override public void run() { Status status = getStateMachine().getStatus(); - if (!(status.getPreviousState() instanceof PrepareConfigurationState) && - !(status.getPreviousState() instanceof OpenState)) - { + if (!(status.getPreviousState() instanceof PrepareConfigurationState) + && !(status.getPreviousState() instanceof OpenState)) { ConfigProvider config = getStateMachine().getConfigProvider(); status.setBKU(config.getDefaultBKU()); status.setDocument(null); status.setSignaturePosition(config.getDefaultSignaturePosition()); } - + if (status.getDocument() == null) { - DataSourceSelectComposite selection = this - .getSelectionComposite(); + DataSourceSelectComposite selection = this.getSelectionComposite(); getStateMachine().getGUIProvider().display(selection); selection.layout(); @@ -106,67 +104,97 @@ public class OpenState extends State { if (status.getDocument() == null) { // Not selected yet return; - } + } } 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() || getStateMachine().getConfigProvider().getUseSignatureFields()) { + if (getStateMachine().getConfigProvider().getEnablePlaceholderUsage()) { + // getStateMachine().getConfigProvider().getUseMarker() || + // getStateMachine().getConfigProvider().getUseSignatureFields()) { try { // - scan for placeholders PDDocument pddocument = PDDocument.load(getStateMachine().getStatus().getDocument()); - - // test other placeholders - List fields = SignatureFieldsExtractor.findEmptySignatureFields(pddocument); - SignaturePlaceholderData signaturePlaceholderData = SignaturePlaceholderExtractor.extract(pddocument, - "1", 3); //$NON-NLS-1$ - - if (null != signaturePlaceholderData || fields.size() > 0) { - // 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 (fields.size() > 0) { - - PlaceholderSelectionGui gui = new PlaceholderSelectionGui(getStateMachine().getGUIProvider().getMainShell(), - 65570, "text","select the fields", fields); //$NON-NLS-1$ //$NON-NLS-2$ - int res = gui.open(); - if (res != -1) { - getStateMachine().getStatus().setSearchForPlaceholderSignature(true); - - addPlaceholderSelectionToConfig(fields.get(res)); - this.setNextState(new BKUSelectionState(getStateMachine())); - return; - + + if (getStateMachine().getConfigProvider().getUseSignatureFields()) { + + List fields = SignatureFieldsExtractor.findEmptySignatureFields(pddocument); + + if (fields.size() > 0) { + + // 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 (fields.size() > 0) { + + PlaceholderSelectionGui gui = new PlaceholderSelectionGui( + getStateMachine().getGUIProvider().getMainShell(), 65570, "text", //$NON-NLS-1$ + "select the fields", fields); //$NON-NLS-1$ + int res = gui.open(); + if (res != -1) { + getStateMachine().getStatus().setSearchForPlaceholderSignature(true); + + addPlaceholderSelectionToConfig(fields.get(res)); + this.setNextState(new BKUSelectionState(getStateMachine())); + return; + + } + getStateMachine().getStatus().setSearchForPlaceholderSignature(false); + } - getStateMachine().getStatus().setSearchForPlaceholderSignature(false); - + } else { - - // 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); - } + getStateMachine().getStatus().setSearchForPlaceholderSignature(false); + } + } + + } else if (getStateMachine().getConfigProvider().getUseMarker()) { + + SignaturePlaceholderData signaturePlaceholderData = SignaturePlaceholderExtractor + .extract(pddocument, "1", 3); //$NON-NLS-1$ + + if (null != signaturePlaceholderData) { + + // 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); + getStateMachine().getStatus().setSearchForPlaceholderSignature(false); + } } + + } else { + // Do nothing } + } catch (PdfAsException e) { // fail silently. In case we got here no dialog has been shown. // Just @@ -180,6 +208,10 @@ public class OpenState extends State { this.setNextState(new PositioningState(getStateMachine())); } + + + + /** * The selected placeholder is added to the configuration file -- cgit v1.2.3