From 6d81b2dfa1a2ddb9192b864cc8f4585469bddadd Mon Sep 17 00:00:00 2001 From: tkellner Date: Mon, 1 Oct 2012 08:30:40 +0000 Subject: Configuration and Main Bar Buttons git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12534 3a0b52a2-8410-0410-bc02-ff6273a87459 --- .../pdfover/gui/workflow/states/OutputState.java | 91 +++++++++++++++------- 1 file changed, 63 insertions(+), 28 deletions(-) (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java') diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java index 50aee387..2ebc3f39 100644 --- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java +++ b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java @@ -16,6 +16,10 @@ package at.asit.pdfover.gui.workflow.states; //Imports +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + import org.eclipse.swt.SWT; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,8 +27,10 @@ import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.MainWindow.Buttons; import at.asit.pdfover.gui.MainWindowBehavior; import at.asit.pdfover.gui.composites.OutputComposite; +import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.signator.DocumentSource; /** * Procduces the output of the signature process. (save file, open file) @@ -42,48 +48,74 @@ public class OutputState extends State { * SFL4J Logger instance **/ @SuppressWarnings("unused") - private static final Logger log = LoggerFactory.getLogger(OutputState.class); - + private static final Logger log = LoggerFactory + .getLogger(OutputState.class); + private OutputComposite outputComposite = null; private OutputComposite getSelectionComposite() { if (this.outputComposite == null) { - this.outputComposite = - this.stateMachine.getGUIProvider().createComposite(OutputComposite.class, SWT.RESIZE, this); + this.outputComposite = this.stateMachine.getGUIProvider() + .createComposite(OutputComposite.class, SWT.RESIZE, this); } return this.outputComposite; } - + + private boolean saved = false; + @Override public void run() { // TODO Preform output operations ... end workflow - + Status status = this.stateMachine.getStatus(); - - if(status.getSignResult() != null) - { + + if (status.getSignResult() != null) { OutputComposite outputComposite = this.getSelectionComposite(); - outputComposite.setSignedDocument(status.getSignResult().getSignedDocument()); + outputComposite.setSignedDocument(status.getSignResult() + .getSignedDocument()); this.stateMachine.getGUIProvider().display(outputComposite); - - /*DocumentSource signedDocument = status.getSignResult().getSignedDocument(); - - FileOutputStream output; - try { - output = new FileOutputStream(new File("/tmp/test.pdf")); - output.write(signedDocument.getByteArray(), 0, signedDocument.getByteArray().length); - output.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }*/ + + if (!this.saved) { + this.saved = true; + String outputFolder = this.stateMachine.getConfigProvider() + .getDefaultOutputFolder(); + String fileName = status.getDocument().getName(); + if (outputFolder != null && !outputFolder.trim().equals("")) { //$NON-NLS-1$ + DocumentSource signedDocument = status.getSignResult().getSignedDocument(); + FileOutputStream output; + try { + output = new FileOutputStream(new File(outputFolder + "/" + fileName + "_signed.pdf")); //$NON-NLS-1$ //$NON-NLS-2$ + output.write(signedDocument.getByteArray(), 0, + signedDocument.getByteArray().length); + output.close(); + } catch (IOException e) { + log.error("Failed to save signed document to configured output folder.", e); //$NON-NLS-1$ + ErrorDialog dialog = new ErrorDialog(outputComposite.getShell(), SWT.NONE, "Failed to save signed document to configured output folder.", e); + dialog.open(); + } + } + } + + /* + * DocumentSource signedDocument = + * status.getSignResult().getSignedDocument(); + * + * FileOutputStream output; try { output = new FileOutputStream(new + * File("/tmp/test.pdf")); + * output.write(signedDocument.getByteArray(), 0, + * signedDocument.getByteArray().length); output.close(); } catch + * (IOException e) { // TODO Auto-generated catch block + * e.printStackTrace(); } + */ } - - //this.stateMachine.exit(); + + // this.stateMachine.exit(); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see at.asit.pdfover.gui.workflow.states.State#cleanUp() */ @Override @@ -92,12 +124,15 @@ public class OutputState extends State { this.outputComposite.dispose(); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior() */ @Override public void updateMainWindowBehavior() { - MainWindowBehavior behavior = this.stateMachine.getStatus().getBehavior(); + MainWindowBehavior behavior = this.stateMachine.getStatus() + .getBehavior(); behavior.reset(); behavior.setEnabled(Buttons.CONFIG, true); behavior.setEnabled(Buttons.OPEN, true); @@ -110,7 +145,7 @@ public class OutputState extends State { } @Override - public String toString() { + public String toString() { return this.getClass().getName(); } } -- cgit v1.2.3