summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2014-02-03 15:29:43 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2014-02-03 15:29:43 +0000
commitafb1fa29ae33467c62d4927fa0b58d339cbdd6e7 (patch)
tree43e21af23e31bab0004697b095358a1e1e154d13 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java
parent521431920bb0079a618ffe5d72bd6280608fc13f (diff)
downloadpdf-over-afb1fa29ae33467c62d4927fa0b58d339cbdd6e7.tar.gz
pdf-over-afb1fa29ae33467c62d4927fa0b58d339cbdd6e7.tar.bz2
pdf-over-afb1fa29ae33467c62d4927fa0b58d339cbdd6e7.zip
Check for updates on startup (configurable)
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@506 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java43
1 files changed, 41 insertions, 2 deletions
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 bb715712..63c54c71 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
@@ -16,14 +16,20 @@
package at.asit.pdfover.gui.workflow.states;
//Imports
+import java.awt.Desktop;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URI;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.log4j.PropertyConfigurator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.program.Program;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,12 +49,16 @@ import at.asit.pdfover.gui.cliarguments.ProxyPassArgument;
import at.asit.pdfover.gui.cliarguments.ProxyPortArgument;
import at.asit.pdfover.gui.cliarguments.ProxyUserArgument;
import at.asit.pdfover.gui.cliarguments.SkipFinishArgument;
-import at.asit.pdfover.gui.controls.ErrorDialog;
+import at.asit.pdfover.gui.controls.Dialog;
import at.asit.pdfover.gui.controls.Dialog.BUTTONS;
+import at.asit.pdfover.gui.controls.Dialog.ICON;
+import at.asit.pdfover.gui.controls.ErrorDialog;
import at.asit.pdfover.gui.exceptions.InitializationException;
import at.asit.pdfover.gui.utils.Messages;
import at.asit.pdfover.gui.utils.Unzipper;
+import at.asit.pdfover.gui.utils.VersionComparator;
import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUHelper;
import at.asit.pdfover.signator.Signator;
/**
@@ -104,7 +114,6 @@ public class PrepareConfigurationState extends State {
getStateMachine().getConfigProvider().getConfigurationDirectory() + FILE_SEPARATOR + filename));
log.info("Loaded config from file : " + filename); //$NON-NLS-1$
-
} catch (FileNotFoundException ex) {
if (filename.equals(Constants.DEFAULT_CONFIG_FILENAME)) {
// we only check for resource config file if it is the
@@ -329,6 +338,36 @@ public class PrepareConfigurationState extends State {
getStateMachine().exit();
}
+ // Check for updates
+ if (getStateMachine().getConfigProvider().getUpdateCheck() && Constants.APP_VERSION != null) {
+ HttpClient client = MobileBKUHelper.getHttpClient();
+ GetMethod method = new GetMethod(Constants.CURRENT_RELEASE_URL);
+ try {
+ client.executeMethod(method);
+ String version = method.getResponseBodyAsString().trim();
+
+ if (VersionComparator.before(Constants.APP_VERSION, version)) {
+ Dialog info = new Dialog(getStateMachine()
+ .getGUIProvider().getMainShell(),
+ Messages.getString("version_check.UpdateTitle"), //$NON-NLS-1$
+ String.format(Messages.getString("version_check.UpdateText"), //$NON-NLS-1$
+ version),
+ BUTTONS.OK_CANCEL, ICON.INFORMATION);
+ if (info.open() == SWT.OK)
+ {
+ if (Desktop.isDesktopSupported()) {
+ Desktop.getDesktop().browse(new URI(Constants.UPDATE_URL));
+ } else {
+ log.info("SWT Desktop is not supported on this platform"); //$NON-NLS-1$
+ Program.launch(Constants.UPDATE_URL);
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("Error downloading update information: ", e); //$NON-NLS-1$
+ }
+ }
+
// Set usedSignerLib ...
getStateMachine().getPDFSigner().setUsedPDFSignerLibrary(
Signator.Signers.PDFAS);