summaryrefslogtreecommitdiff
path: root/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java
diff options
context:
space:
mode:
authortkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459>2012-10-01 08:30:40 +0000
committertkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459>2012-10-01 08:30:40 +0000
commit6d81b2dfa1a2ddb9192b864cc8f4585469bddadd (patch)
tree7f46021998069899e510766fa81dcc1b41c0c262 /trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java
parentde9cabd09b90c701a2c41ce761ac199c5a4a20a6 (diff)
downloadpdf-over-6d81b2dfa1a2ddb9192b864cc8f4585469bddadd.tar.gz
pdf-over-6d81b2dfa1a2ddb9192b864cc8f4585469bddadd.tar.bz2
pdf-over-6d81b2dfa1a2ddb9192b864cc8f4585469bddadd.zip
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
Diffstat (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java')
-rw-r--r--trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java91
1 files changed, 63 insertions, 28 deletions
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();
}
}