From 43b187dfedcb41cac26026aceb3e6e1266a1e82d Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Wed, 23 Mar 2022 15:53:46 +0100 Subject: clean up signature placeholder selection handling --- .../pdfover/gui/workflow/states/OpenState.java | 63 ++++++++++++---------- 1 file changed, 34 insertions(+), 29 deletions(-) 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 0b0929dd..f4d104d5 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 @@ -121,41 +121,46 @@ public class OpenState extends State { List fields = SignatureFieldsAndPlaceHolderExtractor.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() == 1) { - addPlaceholderSelectionToConfig(fields.get(0)); - this.setNextState(new BKUSelectionState(getStateMachine())); - return; + while (true) + { + // 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 | SWT.CANCEL); + dialog.setText(Messages.getString("dataSourceSelection.usePlaceholderTitle")); //$NON-NLS-1$ + dialog.setMessage(Messages.getString("dataSourceSelection.usePlaceholderText")); //$NON-NLS-1$ + + // open dialog and await user selection + int result = dialog.open(); + if (result == SWT.YES) { - } else if (fields.size() > 1) { - - 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)); + if (fields.size() == 1) { + addPlaceholderSelectionToConfig(fields.get(0)); this.setNextState(new BKUSelectionState(getStateMachine())); return; - + + } else if (fields.size() > 1) { + + 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())); + } + else + continue; } + + } else if (result == SWT.NO) { getStateMachine().getStatus().setSearchForPlaceholderSignature(false); + } else { + status.setDocument(null); + return; } - - } else { - getStateMachine().getStatus().setSearchForPlaceholderSignature(false); + break; } } // second check if qr code placeholder search is enabled -- cgit v1.2.3