From 834b83efb6e57e926c2f09be52be59de64a3ad2b Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 10 Apr 2013 19:37:42 +0000 Subject: Refactoring: create config package git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@423 174cde9d-5d70-4d2a-aa98-46368bc2aaf7 --- .../at/asit/pdfover/gui/cliarguments/Argument.java | 2 +- .../composites/AdvancedConfigurationComposite.java | 2 +- .../gui/composites/BaseConfigurationComposite.java | 2 +- .../gui/composites/ConfigurationComposite.java | 8 +- .../composites/SimpleConfigurationComposite.java | 2 +- .../pdfover/gui/workflow/ConfigManipulator.java | 113 --- .../gui/workflow/ConfigOverlayManipulator.java | 73 -- .../asit/pdfover/gui/workflow/ConfigProvider.java | 146 ---- .../pdfover/gui/workflow/ConfigProviderImpl.java | 903 --------------------- .../gui/workflow/ConfigurationContainer.java | 233 ------ .../gui/workflow/ConfigurationContainerImpl.java | 420 ---------- .../gui/workflow/PersistentConfigProvider.java | 123 --- .../at/asit/pdfover/gui/workflow/StateMachine.java | 4 + .../pdfover/gui/workflow/StateMachineImpl.java | 5 + .../gui/workflow/config/ConfigManipulator.java | 113 +++ .../workflow/config/ConfigOverlayManipulator.java | 73 ++ .../gui/workflow/config/ConfigProvider.java | 146 ++++ .../gui/workflow/config/ConfigProviderImpl.java | 903 +++++++++++++++++++++ .../workflow/config/ConfigurationContainer.java | 233 ++++++ .../config/ConfigurationContainerImpl.java | 420 ++++++++++ .../workflow/config/PersistentConfigProvider.java | 123 +++ .../gui/workflow/states/BKUSelectionState.java | 2 +- .../pdfover/gui/workflow/states/OpenState.java | 2 +- .../pdfover/gui/workflow/states/OutputState.java | 2 +- .../gui/workflow/states/PrepareSigningState.java | 2 +- .../workflow/states/mobilebku/ATrustStatus.java | 2 +- .../gui/workflow/states/mobilebku/IAIKStatus.java | 2 +- 27 files changed, 2034 insertions(+), 2025 deletions(-) delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProvider.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainer.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainerImpl.java delete mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigManipulator.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigOverlayManipulator.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProviderImpl.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainer.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainerImpl.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/PersistentConfigProvider.java diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/Argument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/Argument.java index 761e5dc3..f1437315 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/Argument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/Argument.java @@ -17,9 +17,9 @@ package at.asit.pdfover.gui.cliarguments; import at.asit.pdfover.gui.exceptions.InitializationException; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigOverlayManipulator; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.gui.workflow.config.ConfigOverlayManipulator; /** * CLI Argument base class diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java index 8f8db82a..eaac647b 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java @@ -47,7 +47,7 @@ import at.asit.pdfover.gui.controls.Dialog.BUTTONS; import at.asit.pdfover.gui.exceptions.OutputfolderDontExistException; import at.asit.pdfover.gui.exceptions.OutputfolderNotADirectoryException; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigurationContainer; +import at.asit.pdfover.gui.workflow.config.ConfigurationContainer; import at.asit.pdfover.gui.workflow.states.State; import at.asit.pdfover.signator.BKUs; diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/BaseConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/BaseConfigurationComposite.java index 04206a87..21520a4f 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/BaseConfigurationComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/BaseConfigurationComposite.java @@ -18,8 +18,8 @@ package at.asit.pdfover.gui.composites; import org.eclipse.swt.widgets.Composite; -import at.asit.pdfover.gui.workflow.ConfigurationContainer; import at.asit.pdfover.gui.workflow.PDFSigner; +import at.asit.pdfover.gui.workflow.config.ConfigurationContainer; import at.asit.pdfover.gui.workflow.states.State; /** diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java index 73e36074..2abe24fd 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java @@ -34,11 +34,11 @@ import at.asit.pdfover.gui.exceptions.InvalidNumberException; import at.asit.pdfover.gui.exceptions.InvalidPortException; import at.asit.pdfover.gui.exceptions.ResumableException; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.ConfigurationContainer; -import at.asit.pdfover.gui.workflow.ConfigurationContainerImpl; import at.asit.pdfover.gui.workflow.PDFSigner; -import at.asit.pdfover.gui.workflow.PersistentConfigProvider; +import at.asit.pdfover.gui.workflow.config.ConfigManipulator; +import at.asit.pdfover.gui.workflow.config.ConfigurationContainer; +import at.asit.pdfover.gui.workflow.config.ConfigurationContainerImpl; +import at.asit.pdfover.gui.workflow.config.PersistentConfigProvider; import at.asit.pdfover.gui.workflow.states.State; import at.asit.pdfover.signator.SignaturePosition; diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SimpleConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SimpleConfigurationComposite.java index dfe97470..a77d7209 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SimpleConfigurationComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SimpleConfigurationComposite.java @@ -66,7 +66,7 @@ import at.asit.pdfover.gui.exceptions.InvalidNumberException; import at.asit.pdfover.gui.exceptions.InvalidPortException; import at.asit.pdfover.gui.utils.ImageConverter; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigurationContainer; +import at.asit.pdfover.gui.workflow.config.ConfigurationContainer; import at.asit.pdfover.gui.workflow.states.State; import at.asit.pdfover.signator.FileNameEmblem; import at.asit.pdfover.signator.SignatureParameter; diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java deleted file mode 100644 index 80754f4b..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -import java.io.IOException; -import java.util.Locale; - -import org.eclipse.swt.graphics.Point; - -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * An interface for setting the configuration - */ -public interface ConfigManipulator { - /** - * Sets the default bku type - * @param bku the bku type - */ - public void setDefaultBKU(BKUs bku); - - /** - * Sets the default signature position - * @param signaturePosition the default signature position - */ - public void setDefaultSignaturePosition(SignaturePosition signaturePosition); - - /** - * Sets the signature placeholder transparency - * @param transparency the signature placeholder transparency - */ - void setPlaceholderTransparency(int transparency); - - /** - * Sets the default mobile number - * @param number the default mobile number - */ - public void setDefaultMobileNumber(String number); - - /** - * Sets the default password - * @param password the default password - */ - public void setDefaultMobilePassword(String password); - - /** - * Sets the default emblem - * @param emblem the default emblem - */ - public void setDefaultEmblem(String emblem); - - /** - * Sets the proxy host - * @param host the proxy host - */ - public void setProxyHost(String host); - - /** - * Sets the proxy port - * @param port the proxy port - */ - public void setProxyPort(int port); - - /** - * Sets the default output folder - * @param outputFolder the default output folder - */ - public void setDefaultOutputFolder(String outputFolder); - - /** - * Sets the signature note text - * @param note the signature note text - */ - public void setSignatureNote(String note); - - /** - * Sets the locale to be used - * @param locale the locale - */ - public void setLocale(Locale locale); - - /** - * Sets the signature locale to be used - * @param locale the signature locale - */ - public void setSignLocale(Locale locale); - - /** - * Sets the default main window size - * @param size a Point describing the size - */ - public void setMainWindowSize(Point size); - - /** - * Saves the current configuration to the current configuration file - * @throws IOException - */ - public void saveCurrentConfiguration() throws IOException; -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java deleted file mode 100644 index a31309f3..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -import at.asit.pdfover.signator.BKUs; - -/** - * An interface for setting the configuration overlay - * - * This overlay overrides the actual configuration but will not be saved - */ -public interface ConfigOverlayManipulator { - /** - * Sets the default bku type - * @param bku the bku type - */ - public void setDefaultBKUOverlay(BKUs bku); - - /** - * Sets the default mobile number - * @param number the default mobile number - */ - public void setDefaultMobileNumberOverlay(String number); - - /** - * Sets the default password - * @param password the default password - */ - public void setDefaultMobilePasswordOverlay(String password); - - /** - * Sets the default emblem - * @param emblem the default emblem - */ - public void setDefaultEmblemOverlay(String emblem); - - /** - * Sets the proxy host - * @param host the proxy host - */ - public void setProxyHostOverlay(String host); - - /** - * Sets the proxy port - * @param port the proxy port - */ - public void setProxyPortOverlay(int port); - - /** - * Sets the default output folder - * @param outputFolder the default output folder - */ - public void setDefaultOutputFolderOverlay(String outputFolder); - - /** - * Sets the configuration file - * @param configurationFile - */ - public void setConfigurationFile(String configurationFile); -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProvider.java deleted file mode 100644 index 9f88573a..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProvider.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Locale; - -import org.eclipse.swt.graphics.Point; - -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * An interface for reading the configuration - */ -public interface ConfigProvider { - /** - * RegEx for parsing signature position - */ - public static final String SIGN_POS_REGEX = "(x=(\\d\\.?\\d?);y=(\\d\\.?\\d?);p=(\\d))|(auto)|(x=(\\d\\.?\\d?);y=(\\d\\.?\\d?))"; //$NON-NLS-1$ - - - /** - * Gets the configuration file - * @return the configuration file - */ - public String getConfigurationFile(); - - /** - * Gets the configuration directory - * @return the configuration directory - */ - public String getConfigurationDirectory(); - - /** - * Gets the default Mobile number - * @return the default mobile number - */ - public String getDefaultMobileNumber(); - - /** - * Gets the password to use for Mobile BKU - * @return the password - */ - public String getDefaultMobilePassword(); - - /** - * Gets the filename of the default emblem - * @return the emblem - */ - public String getDefaultEmblem(); - - /** - * Gets the proxy host - * @return the proxy hostname or ip address - */ - public String getProxyHost(); - - /** - * Gets the proxy port - * @return the proxy port - */ - public int getProxyPort(); - - /** - * Get the default configured BKU - * @return the default configured BKU - */ - public BKUs getDefaultBKU(); - - /** - * Get the default configured SignaturePosition - * @return the default configured SignaturePosition or null if not configured - */ - public SignaturePosition getDefaultSignaturePosition(); - - /** - * Get the transparency of the signature placeholder - * @return the transparency of the signature placeholder - */ - public int getPlaceholderTransparency(); - - /** - * Gets the default output folder for signed documents - * @return the default output folder - */ - public String getDefaultOutputFolder(); - - /** - * Gets the mobile BKU URL - * @return the mobile BKU URL - */ - public String getMobileBKUURL(); - - /** - * Gets the mobile BKU type - * @return the mobile BKU type - */ - public MobileBKUs getMobileBKUType(); - - /** - * Get the signature note text to use - * @return the signature note text - */ - public String getSignatureNote(); - - /** - * Gets the configured locale - * @return the configured locale - */ - public Locale getLocale(); - - /** - * Gets the configured locale - * @return the configured locale - */ - public Locale getSignLocale(); - - /** - * Gets the configured MainWindow size - * @return the configured MainWindow size - */ - public Point getMainWindowSize(); - - /** - * Loads the configuration from a configuration file - * @param configSource the configuration file - * @throws IOException - */ - public void loadConfiguration(InputStream configSource) throws IOException; -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java deleted file mode 100644 index ec0be92d..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java +++ /dev/null @@ -1,903 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -// Imports -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Locale; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.eclipse.swt.graphics.Point; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.asit.pdfover.gui.Constants; -import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; -import at.asit.pdfover.gui.exceptions.InvalidNumberException; -import at.asit.pdfover.gui.exceptions.InvalidPortException; -import at.asit.pdfover.gui.utils.LocaleSerializer; -import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * Implementation of the configuration provider and manipulator - */ -public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator, - ConfigOverlayManipulator, PersistentConfigProvider { - /** - * SLF4J Logger instance - **/ - private static final Logger log = LoggerFactory - .getLogger(ConfigProviderImpl.class); - - /** - * An empty property entry - */ - private static final String STRING_EMPTY = ""; //$NON-NLS-1$ - - private String configurationFile = Constants.DEFAULT_CONFIG_FILENAME; - - private ConfigurationContainer configuration; - - private ConfigurationContainer configurationOverlay; - - /** - * Constructor - */ - public ConfigProviderImpl() { - this.configuration = new ConfigurationContainerImpl(); - this.configurationOverlay = new ConfigurationContainerImpl(); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigProvider#loadConfiguration(java.io - * .InputStream) - */ - @Override - public void loadConfiguration(InputStream configSource) throws IOException { - - Properties config = new Properties(); - - config.load(configSource); - - // Set Emblem - this.setDefaultEmblem(config - .getProperty(Constants.CFG_EMBLEM)); - - // Set Mobile Phone Number - this.setDefaultMobileNumber(config - .getProperty(Constants.CFG_MOBILE_NUMBER)); - - // Set signature note - this.setSignatureNote(config - .getProperty(Constants.CFG_SIGNATURE_NOTE)); - - // Set Proxy Host - this.setProxyHost(config - .getProperty(Constants.CFG_PROXY_HOST)); - - // Set Output Folder - this.setDefaultOutputFolder(config - .getProperty(Constants.CFG_OUTPUT_FOLDER)); - - String localeString = config.getProperty(Constants.CFG_LOCALE); - - Locale targetLocale = LocaleSerializer.parseFromString(localeString); - if (targetLocale != null) { - this.setLocale(targetLocale); - } - - String signlocalString = config.getProperty(Constants.CFG_SIGN_LOCALE); - - Locale signtargetLocale = LocaleSerializer.parseFromString(signlocalString); - if (signtargetLocale != null) { - this.setSignLocale(signtargetLocale); - } - - String bkuUrl = config - .getProperty(Constants.CFG_MOBILE_BKU_URL); - - if (bkuUrl != null && !bkuUrl.isEmpty()) { - this.configuration.setMobileBKUURL(bkuUrl); - } - - String bkuType = config - .getProperty(Constants.CFG_MOBILE_BKU_TYPE); - - if (bkuType != null && !bkuType.isEmpty()) { - try { - this.configuration.setMobileBKUType(MobileBKUs.valueOf( - bkuType.trim().toUpperCase())); - } catch (IllegalArgumentException e) { - log.error("Invalid BKU type: " + bkuType); //$NON-NLS-1$ - this.configuration.setMobileBKUType(Constants.DEFAULT_MOBILE_BKU_TYPE); - } - } - - // Set Proxy Port - String proxyPortString = config - .getProperty(Constants.CFG_PROXY_PORT); - - if (proxyPortString != null && !proxyPortString.trim().isEmpty()) { - int port = Integer.parseInt(proxyPortString); - - if (port > 0 && port <= 0xFFFF) { - this.setProxyPort(port); - } else { - log.warn("Proxy port is out of range!: " + port); //$NON-NLS-1$ - } - } - - // Set Default BKU - String bkuString = config.getProperty(Constants.CFG_BKU); - BKUs defaultBKU = BKUs.NONE; - if (bkuString != null) { - try { - defaultBKU = BKUs.valueOf(bkuString); - } catch (IllegalArgumentException ex) { - log.error("Invalid BKU config value " + bkuString + " using none!"); //$NON-NLS-1$ //$NON-NLS-2$ - defaultBKU = BKUs.NONE; - } catch (NullPointerException ex) { - log.error("Invalid BKU config value " + bkuString + " using none!"); //$NON-NLS-1$ //$NON-NLS-2$ - defaultBKU = BKUs.NONE; - } - } - this.setDefaultBKU(defaultBKU); - - // Set Signature placeholder transparency - int transparency = Constants.DEFAULT_SIGNATURE_PLACEHOLDER_TRANSPARENCY; - String trans = config.getProperty(Constants.CFG_SIGNATURE_PLACEHOLDER_TRANSPARENCY); - if (trans != null) { - try { - transparency = Integer.parseInt(trans); - } catch (NumberFormatException e) { - log.debug("Couldn't parse placeholder transparency", e); //$NON-NLS-1$ - // ignore parsing exception - } - } - this.setPlaceholderTransparency(transparency); - - // Set MainWindow size - int width = Constants.DEFAULT_MAINWINDOW_WIDTH; - int height = Constants.DEFAULT_MAINWINDOW_HEIGHT; - String size = config.getProperty(Constants.CFG_MAINWINDOW_SIZE); - parse: { - if (size == null) - break parse; - int pos = size.indexOf(','); - if (pos <= 0) - break parse; - - try { - width = Integer.parseInt(size.substring(0, pos).trim()); - height = Integer.parseInt(size.substring(pos + 1).trim()); - } catch (NumberFormatException e) { - log.debug("Couldn't parse main window size", e); //$NON-NLS-1$ - // ignore parsing exception - } - } - this.configuration.setMainWindowSize(new Point(width, height)); - - // Set Signature Position - String signaturePosition = config - .getProperty(Constants.CFG_SIGNATURE_POSITION); - - SignaturePosition position = null; - - if (signaturePosition != null && !signaturePosition.trim().isEmpty()) { - - signaturePosition = signaturePosition.trim().toLowerCase(); - - Pattern pattern = Pattern.compile(SIGN_POS_REGEX); - - Matcher matcher = pattern.matcher(signaturePosition); - - if (matcher.matches()) { - if (matcher.groupCount() == 8) { - if (matcher.group(1) != null) { - // we have format: x=..;y=..;p=... - try { - // group 2 = x value - float x = Float.parseFloat(matcher.group(2)); - - // group 3 = y value - float y = Float.parseFloat(matcher.group(3)); - - // group 4 = p value - int p = Integer.parseInt(matcher.group(3)); - - position = new SignaturePosition(x, y, p); - } catch (NumberFormatException ex) { - log.error( - "Signature Position read from config failed: Not a valid number", ex); //$NON-NLS-1$ - } - } else if (matcher.group(5) != null) { - // we have format auto - position = new SignaturePosition(); - } else if (matcher.group(6) != null) { - // we have format x=...;y=...; - // group 7 = x value - float x = Float.parseFloat(matcher.group(7)); - - // group 8 = y value - float y = Float.parseFloat(matcher.group(8)); - - position = new SignaturePosition(x, y); - } - } else { - log.error("Signature Position read from config failed: wrong group Count!"); //$NON-NLS-1$ - } - } else { - log.error("Signature Position read from config failed: not matching string"); //$NON-NLS-1$ - } - - } - - this.setDefaultSignaturePosition(position); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigManipulator#saveCurrentConfiguration() - */ - @Override - public void saveCurrentConfiguration() throws IOException { - String filename = this.getConfigurationFile(); - - File configFile = new File(this.getConfigurationDirectory() - + File.separator + filename); - - Properties props = new Properties(); - props.clear(); - - props.setProperty(Constants.CFG_BKU, this.getDefaultBKUPersistent().toString()); - props.setProperty(Constants.CFG_PROXY_HOST, this.getProxyHostPersistent()); - props.setProperty(Constants.CFG_PROXY_PORT, - Integer.toString(getProxyPortPersistent())); - props.setProperty(Constants.CFG_EMBLEM, this.getDefaultEmblemPersistent()); - props.setProperty(Constants.CFG_SIGNATURE_NOTE, this.getSignatureNote()); - props.setProperty(Constants.CFG_MOBILE_NUMBER, this.getDefaultMobileNumberPersistent()); - props.setProperty(Constants.CFG_OUTPUT_FOLDER, this.getDefaultOutputFolderPersistent()); - props.setProperty(Constants.CFG_SIGNATURE_PLACEHOLDER_TRANSPARENCY, - Integer.toString(getPlaceholderTransparency())); - - Point size = this.configuration.getMainWindowSize(); - props.setProperty(Constants.CFG_MAINWINDOW_SIZE, size.x + "," + size.y); //$NON-NLS-1$ - - Locale configLocale = getLocale(); - if(configLocale != null) { - props.setProperty(Constants.CFG_LOCALE, LocaleSerializer.getParsableString(configLocale)); - } - - Locale signLocale = this.getSignLocale(); - if(signLocale != null) { - props.setProperty(Constants.CFG_SIGN_LOCALE, LocaleSerializer.getParsableString(signLocale)); - } - - SignaturePosition pos = getDefaultSignaturePosition(); - - if (pos == null) { - props.setProperty(Constants.CFG_SIGNATURE_POSITION, ""); //$NON-NLS-1$ - } else if (pos.useAutoPositioning()) { - props.setProperty(Constants.CFG_SIGNATURE_POSITION, "auto"); //$NON-NLS-1$ - } else { - props.setProperty(Constants.CFG_SIGNATURE_POSITION, - String.format((Locale) null, "x=%f;y=%f;p=%d", //$NON-NLS-1$ - pos.getX(), pos.getY(), pos.getPage())); - } - - String mobileBKUURL = getMobileBKUURL(); - if (!mobileBKUURL.equals(Constants.DEFAULT_MOBILE_BKU_URL)) - props.setProperty(Constants.CFG_MOBILE_BKU_URL, mobileBKUURL); - - MobileBKUs mobileBKUType = getMobileBKUType(); - if (mobileBKUType != Constants.DEFAULT_MOBILE_BKU_TYPE) - props.setProperty(Constants.CFG_MOBILE_BKU_TYPE, mobileBKUType.toString()); - - if (Constants.THEME != Constants.Themes.DEFAULT) - props.setProperty(Constants.CFG_THEME, Constants.THEME.name()); - - FileOutputStream outputstream = new FileOutputStream(configFile, false); - - props.store(outputstream, "Configuration file was generated!"); //$NON-NLS-1$ - - log.info("Configuration file saved to " + configFile.getAbsolutePath()); //$NON-NLS-1$ - } - - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigProvider#getConfigurationDirectory() - */ - @Override - public String getConfigurationDirectory() { - return Constants.CONFIG_DIRECTORY; - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigManipulator#setConfigurationFile(java - * .lang.String) - */ - @Override - public void setConfigurationFile(String configurationFile) { - this.configurationFile = configurationFile; - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getConfigurationFile() - */ - @Override - public String getConfigurationFile() { - return this.configurationFile; - } - - /** - * Sets the default bku type - * - * @param bku - * the bku type - */ - @Override - public void setDefaultBKU(BKUs bku) { - this.configuration.setDefaultBKU(bku); - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultBKUOverlay(at.asit.pdfover.signator.BKUs) - */ - @Override - public void setDefaultBKUOverlay(BKUs bku) { - this.configurationOverlay.setDefaultBKU(bku); - - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultBKU() - */ - @Override - public BKUs getDefaultBKU() { - BKUs bku = this.configurationOverlay.getDefaultBKU(); - if (bku == BKUs.NONE) - bku = getDefaultBKUPersistent(); - return bku; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultBKUPersistent() - */ - @Override - public BKUs getDefaultBKUPersistent() { - return this.configuration.getDefaultBKU(); - } - - /** - * Sets the default signature position - * - * @param signaturePosition - * the default signature position - */ - @Override - public void setDefaultSignaturePosition(SignaturePosition signaturePosition) { - this.configuration.setDefaultSignaturePosition(signaturePosition); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultSignaturePosition() - */ - @Override - public SignaturePosition getDefaultSignaturePosition() { - return this.configuration.getDefaultSignaturePosition(); - } - - /** - * Sets the signature placeholder transparency - * - * @param transparency - * the signature placeholder transparency - */ - @Override - public void setPlaceholderTransparency(int transparency) { - this.configuration.setPlaceholderTransparency(transparency); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigProvider#getPlaceholderTransparency() - */ - @Override - public int getPlaceholderTransparency() { - return this.configuration.getPlaceholderTransparency(); - } - - /** - * Sets the default mobile number - * - * @param number - * the default mobile number - */ - @Override - public void setDefaultMobileNumber(String number) { - try { - if (number == null || number.trim().isEmpty()) { - this.configuration.setMobileNumber(STRING_EMPTY); - } else { - this.configuration.setMobileNumber(number); - } - } catch (InvalidNumberException e) { - log.error("Error setting mobile number", e); //$NON-NLS-1$ - try { - this.configuration.setMobileNumber(STRING_EMPTY); - } catch (InvalidNumberException e1) { - // Ignore - } - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobileNumberOverlay(java.lang.String) - */ - @Override - public void setDefaultMobileNumberOverlay(String number) { - try { - if (number == null || number.trim().isEmpty()) { - this.configurationOverlay.setMobileNumber(STRING_EMPTY); - } else { - this.configurationOverlay.setMobileNumber(number); - } - } catch (InvalidNumberException e) { - log.error("Error setting mobile number", e); //$NON-NLS-1$ - try { - this.configurationOverlay.setMobileNumber(STRING_EMPTY); - } catch (InvalidNumberException e1) { - // Ignore - } - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultMobileNumber() - */ - @Override - public String getDefaultMobileNumber() { - String number = this.configurationOverlay.getMobileNumber(); - if (number == null) - number = getDefaultMobileNumberPersistent(); - return number; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobileNumberPersistent() - */ - @Override - public String getDefaultMobileNumberPersistent() { - String number = this.configuration.getMobileNumber(); - if (number == null) - number = STRING_EMPTY; - return number; - } - - /** - * Sets the default mobile password - * - * @param password - * the default password - */ - @Override - public void setDefaultMobilePassword(String password) { - if (password == null || password.trim().isEmpty()) { - this.configuration.setMobilePassword(STRING_EMPTY); - } else { - this.configuration.setMobilePassword(password); - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobilePasswordOverlay(java.lang.String) - */ - @Override - public void setDefaultMobilePasswordOverlay(String password) { - if (password == null || password.trim().isEmpty()) { - this.configurationOverlay.setMobilePassword(STRING_EMPTY); - } else { - this.configurationOverlay.setMobilePassword(password); - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultPassword() - */ - @Override - public String getDefaultMobilePassword() { - String password = this.configurationOverlay.getMobilePassword(); - if (password == null) - password = getDefaultMobilePasswordPersistent(); - return password; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobilePasswordPersistent() - */ - @Override - public String getDefaultMobilePasswordPersistent() { - String password = this.configuration.getMobilePassword(); - if (password == null) - password = STRING_EMPTY; - return password; - } - - /** - * Sets the default emblem - * - * @param emblem - * the default emblem - */ - @Override - public void setDefaultEmblem(String emblem) { - try { - if (emblem == null || emblem.trim().isEmpty()) { - this.configuration.setEmblem(STRING_EMPTY); - } else { - this.configuration.setEmblem(emblem); - } - } catch (InvalidEmblemFile e) { - log.error("Error setting emblem file", e); //$NON-NLS-1$ - try { - this.configuration.setEmblem(STRING_EMPTY); - } catch (InvalidEmblemFile e1) { - // Ignore - } - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultEmblemOverlay(java.lang.String) - */ - @Override - public void setDefaultEmblemOverlay(String emblem) { - try { - if (emblem == null || emblem.trim().isEmpty()) { - this.configurationOverlay.setEmblem(STRING_EMPTY); - } else { - this.configurationOverlay.setEmblem(emblem); - } - } catch (InvalidEmblemFile e) { - log.error("Error setting emblem file", e); //$NON-NLS-1$ - try { - this.configurationOverlay.setEmblem(STRING_EMPTY); - } catch (InvalidEmblemFile e1) { - // Ignore - } - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultEmblem() - */ - @Override - public String getDefaultEmblem() { - String emblem = this.configurationOverlay.getEmblem(); - if (emblem == null) - emblem = getDefaultEmblemPersistent(); - return emblem; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultEmblemPersistent() - */ - @Override - public String getDefaultEmblemPersistent() { - String emblem = this.configuration.getEmblem(); - if (emblem == null) - emblem = STRING_EMPTY; - return emblem; - } - - /** - * Sets the proxy host - * - * @param host - * the proxy host - */ - @Override - public void setProxyHost(String host) { - if (host == null || host.trim().isEmpty()) { - this.configuration.setProxyHost(STRING_EMPTY); - } else { - this.configuration.setProxyHost(host); - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyHostOverlay(java.lang.String) - */ - @Override - public void setProxyHostOverlay(String host) { - if (host == null || host.trim().isEmpty()) { - this.configurationOverlay.setProxyHost(STRING_EMPTY); - } else { - this.configurationOverlay.setProxyHost(host); - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getProxyHost() - */ - @Override - public String getProxyHost() { - String host = this.configurationOverlay.getProxyHost(); - if (host == null) - host = getProxyHostPersistent(); - return host; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyHostPersistent() - */ - @Override - public String getProxyHostPersistent() { - String host = this.configuration.getProxyHost(); - if (host == null) - host = STRING_EMPTY; - return host; - } - - /** - * Sets the proxy port - * - * @param port - * the proxy port - */ - @Override - public void setProxyPort(int port) { - try { - this.configuration.setProxyPort(port); - } catch (InvalidPortException e) { - log.error("Error setting proxy port" , e); //$NON-NLS-1$ - // ignore - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyPortOverlay(int) - */ - @Override - public void setProxyPortOverlay(int port) { - try { - this.configurationOverlay.setProxyPort(port); - } catch (InvalidPortException e) { - log.error("Error setting proxy port" , e); //$NON-NLS-1$ - // ignore - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getProxyPort() - */ - @Override - public int getProxyPort() { - int port = this.configurationOverlay.getProxyPort(); - if (port == -1) - port = getProxyPortPersistent(); - return port; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyPortPersistent() - */ - @Override - public int getProxyPortPersistent() { - return this.configuration.getProxyPort(); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigManipulator#setDefaultOutputFolder - * (java.lang.String) - */ - @Override - public void setDefaultOutputFolder(String outputFolder) { - if (outputFolder == null || outputFolder.trim().isEmpty()) { - this.configuration.setOutputFolder(STRING_EMPTY); - } else { - this.configuration.setOutputFolder(outputFolder); - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultOutputFolderOverlay(java.lang.String) - */ - @Override - public void setDefaultOutputFolderOverlay(String outputFolder) { - if (outputFolder == null || outputFolder.trim().isEmpty()) { - this.configurationOverlay.setOutputFolder(STRING_EMPTY); - } else { - this.configurationOverlay.setOutputFolder(outputFolder); - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultOutputFolder() - */ - @Override - public String getDefaultOutputFolder() { - String outputFolder = this.configurationOverlay.getOutputFolder(); - if (outputFolder == null) - outputFolder = getDefaultOutputFolderPersistent(); - return outputFolder; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultOutputFolderPersistent() - */ - @Override - public String getDefaultOutputFolderPersistent() { - String outputFolder = this.configuration.getOutputFolder(); - if (outputFolder == null) - outputFolder = STRING_EMPTY; - return outputFolder; - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMobileBKUURL() - */ - @Override - public String getMobileBKUURL() { - return this.configuration.getMobileBKUURL(); - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMobileBKUType() - */ - @Override - public MobileBKUs getMobileBKUType() { - return this.configuration.getMobileBKUType(); - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.ConfigManipulator#setSignatureNote(java. - * lang.String) - */ - @Override - public void setSignatureNote(String note) { - if (note == null || note.trim().isEmpty()) { - this.configuration.setSignatureNote(STRING_EMPTY); - } else { - this.configuration.setSignatureNote(note); - } - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getSignatureNote() - */ - @Override - public String getSignatureNote() { - String note = this.configuration.getSignatureNote(); - if (note == null) - note = STRING_EMPTY; - return note; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setLocale(java.util.Locale) - */ - @Override - public void setLocale(Locale locale) { - if(locale == null) { - this.configuration.setLocale(Messages.getDefaultLocale()); - } else { - this.configuration.setLocale(locale); - Locale.setDefault(locale); - Messages.setLocale(locale); - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getConfigLocale() - */ - @Override - public Locale getLocale() { - Locale locale = this.configuration.getLocale(); - if (locale == null) - locale = Messages.getDefaultLocale(); - return locale; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setSignLocale(java.util.Locale) - */ - @Override - public void setSignLocale(Locale locale) { - if(locale == null) { - this.configuration.setSignLocale(Messages.getDefaultLocale()); - } else { - this.configuration.setSignLocale(locale); - } - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getSignLocale() - */ - @Override - public Locale getSignLocale() { - Locale locale = this.configuration.getSignLocale(); - if (locale == null) - locale = Messages.getDefaultLocale(); - return locale; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setMainWindowSize(org.eclipse.swt.graphics.Point) - */ - @Override - public void setMainWindowSize(Point size) { - this.configuration.setMainWindowSize(size); - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMainWindowSize() - */ - @Override - public Point getMainWindowSize() { - return this.configuration.getMainWindowSize(); - } -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainer.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainer.java deleted file mode 100644 index 0f068f64..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainer.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -import java.util.Locale; - -import org.eclipse.swt.graphics.Point; - -import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; -import at.asit.pdfover.gui.exceptions.InvalidNumberException; -import at.asit.pdfover.gui.exceptions.InvalidPortException; -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * - */ -public interface ConfigurationContainer { - /** - * Gets the configured emblem - * @return the configured emblem - */ - public String getEmblem(); - - /** - * Sets the emblem - * @param emblem the emblem - * @throws InvalidEmblemFile - */ - public void setEmblem(String emblem) throws InvalidEmblemFile; - - /** - * Gets the mobile phone number - * @return the mobile phone number - */ - public String getMobileNumber(); - - /** - * Sets the mobile phone number - * @param number the mobile phone number - * @throws InvalidNumberException - */ - public void setMobileNumber(String number) throws InvalidNumberException; - - /** - * Gets the mobile phone number - * @return the mobile phone number - */ - public String getMobilePassword(); - - /** - * Sets the mobile phone password - * @param password the mobile phone password - */ - public void setMobilePassword(String password); - - /** - * Gets the proxy host - * @return the proxy host - */ - public String getProxyHost(); - - /** - * Sets the proxy host - * @param host the proxy host - */ - public void setProxyHost(String host); - - /** - * Gets the signature note - * @return the signature note - */ - public String getSignatureNote(); - - /** - * Sets the signature note - * @param note the signature note - */ - public void setSignatureNote(String note); - - /** - * Gets the proxy port - * - * if port is -1 no port is selected - * - * @return the proxy port - */ - public int getProxyPort(); - - /** - * Sets the proxy port - * - * set to -1 for no port - * - * @param port the proxy port - * @throws InvalidPortException - */ - public void setProxyPort(int port) throws InvalidPortException; - - /** - * Gets the automatic position - * @return the automatic position - */ - public boolean getAutomaticPosition(); - - /** - * Sets the automatic position - * @param automatic the automatic position - */ - public void setAutomaticPosition(boolean automatic); - - /** - * Gets the transparency of the placeholder - * @return transparency of the placeholder (0-255) - */ - public int getPlaceholderTransparency(); - - /** - * Sets the transparency of the placeholder - * @param transparency transparency of the placeholder (0-255) - */ - public void setPlaceholderTransparency(int transparency); - - /** - * Gets the default BKU - * @return the default BKU - */ - public BKUs getDefaultBKU(); - - /** - * Sets the default BKU - * @param defaultBKU the default BKU - */ - public void setDefaultBKU(BKUs defaultBKU); - - /** - * Gets the default output folder - * @return the default output folder - */ - public String getOutputFolder(); - - /** - * Sets the default output folder - * @param folder the default output folder - */ - public void setOutputFolder(String folder); - - /** - * Gets the locale - * @return the locale - */ - public Locale getLocale(); - - /** - * Sets the locale - * @param locale the locale - */ - public void setLocale(Locale locale); - - /** - * Gets the signature locale - * @return the signature locale - */ - public Locale getSignLocale(); - - /** - * Sets the signature locale - * @param locale the signature locale - */ - public void setSignLocale(Locale locale); - - /** - * Gets the mobile BKU URL - * @return the mobile BKU URL - */ - public String getMobileBKUURL(); - - /** - * Sets the mobile BKU URL - * @param bkuUrl the mobile BKU URL - */ - public void setMobileBKUURL(String bkuUrl); - - /** - * Gets the mobile BKU type - * @return the mobile BKU type - */ - public MobileBKUs getMobileBKUType(); - - /** - * Sets the mobile BKU type - * @param bkuType the mobile BKU type - */ - public void setMobileBKUType(MobileBKUs bkuType); - - /** - * Gets the default signature position - * @return the default signature position - */ - public SignaturePosition getDefaultSignaturePosition(); - - /** - * Gets the default signature position - * @param signaturePosition the default signature position - */ - public void setDefaultSignaturePosition(SignaturePosition signaturePosition); - - /** - * Gets the main window size - * @return the main window size - */ - public Point getMainWindowSize(); - - /** - * Sets the main window size - * @param size the main window size - */ - public void setMainWindowSize(Point size); -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainerImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainerImpl.java deleted file mode 100644 index 03bfc221..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigurationContainerImpl.java +++ /dev/null @@ -1,420 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -// Imports -import java.io.File; -import java.io.FileNotFoundException; -import java.util.Locale; - -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Display; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.asit.pdfover.gui.Constants; -import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; -import at.asit.pdfover.gui.exceptions.InvalidNumberException; -import at.asit.pdfover.gui.exceptions.InvalidPortException; -import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUHelper; -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * - */ -public class ConfigurationContainerImpl implements ConfigurationContainer { - /** - * SLF4J Logger instance - **/ - @SuppressWarnings("unused") - private static final Logger log = LoggerFactory - .getLogger(ConfigurationContainerImpl.class); - - - /** the emblem File */ - protected String emblemFile = null; - - /** The mobile phone number */ - protected String mobileNumber = null; - - /** The mobile phone password */ - protected String mobilePassword = null; - - /** Holds the proxy Host */ - protected String proxyHost = null; - - /** Holds the signatureNote */ - protected String signatureNote = null; - - /** Holds the proxy port number */ - protected int proxyPort = -1; - - /** Holds the locale */ - protected Locale locale = null; - - /** Holds the signature locale */ - protected Locale signLocale = null; - - /** Holds the output folder */ - protected String folder = null; - - /** Holds the default BKU to use */ - protected BKUs defaultBKU = BKUs.NONE; - - /** Holds the automatic positioning value */ - protected boolean automaticPositioning = false; - - /** Holds the transparency of the signature placeholder */ - protected int placeholderTransparency = Constants.DEFAULT_SIGNATURE_PLACEHOLDER_TRANSPARENCY; - - /** Holds the mobile BKU URL */ - protected String mobileBKUURL = Constants.DEFAULT_MOBILE_BKU_URL; - - /** Holds the mobile BKU type */ - protected MobileBKUs mobileBKUType = Constants.DEFAULT_MOBILE_BKU_TYPE; - - /** Holds the main window size */ - protected Point mainWindowSize = null; - - /** Holds the default signature position */ - protected SignaturePosition defaultSignaturePosition = null; - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getEmblem() - */ - @Override - public String getEmblem() { - return this.emblemFile; - } - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setEmblem(java.lang.String) - */ - @Override - public void setEmblem(String emblemFile) throws InvalidEmblemFile { - if (emblemFile == null || emblemFile.trim().isEmpty()) { - // Ok to set no file ... - } else { - File imageFile = new File(emblemFile); - if (!imageFile.exists()) { - throw new InvalidEmblemFile(imageFile, - new FileNotFoundException(emblemFile)); - } - - try { - Image img = new Image(Display.getDefault(), new ImageData( - emblemFile)); - - img.dispose(); - } catch (Exception ex) { - throw new InvalidEmblemFile(imageFile, ex); - } - } - - this.emblemFile = emblemFile; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getNumber() - */ - @Override - public String getMobileNumber() { - return this.mobileNumber; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setNumber(java.lang.String) - */ - @Override - public void setMobileNumber(String number) throws InvalidNumberException { - if(number == null || number.trim().isEmpty()) { - this.mobileNumber = null; - return; - } - try { - this.mobileNumber = MobileBKUHelper.normalizeMobileNumber(number); - } catch (InvalidNumberException e) { - throw new InvalidNumberException(Messages.getString("error.InvalidPhoneNumber")); //$NON-NLS-1$ - } - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getDefaultMobilePassword() - */ - @Override - public String getMobilePassword() { - return this.mobilePassword; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setDefaultMobilePassword(java.lang.String) - */ - @Override - public void setMobilePassword(String password) { - this.mobilePassword = password; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getProxyHost() - */ - @Override - public String getProxyHost() { - return this.proxyHost; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setProxyHost(java.lang.String) - */ - @Override - public void setProxyHost(String host) { - this.proxyHost = host; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getProxyPort() - */ - @Override - public int getProxyPort() { - return this.proxyPort; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setProxyPort(int) - */ - @Override - public void setProxyPort(int port) throws InvalidPortException { - if(port > 0 && port <= 0xFFFF) { - this.proxyPort = port; - return; - } - if(port == -1) { - this.proxyPort = -1; - return; - } - throw new InvalidPortException(port); - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getAutomaticPosition() - */ - @Override - public boolean getAutomaticPosition() { - return this.automaticPositioning; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setAutomaticPosition(boolean) - */ - @Override - public void setAutomaticPosition(boolean automatic) { - this.automaticPositioning = automatic; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getPlaceholderTransparency() - */ - @Override - public int getPlaceholderTransparency() { - return this.placeholderTransparency; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setPlaceholderTransparency(int) - */ - @Override - public void setPlaceholderTransparency(int transparency) { - this.placeholderTransparency = transparency; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getBKUSelection() - */ - @Override - public BKUs getDefaultBKU() { - return this.defaultBKU; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setBKUSelection(at.asit.pdfover.signator.BKUs) - */ - @Override - public void setDefaultBKU(BKUs bkuSelection) { - this.defaultBKU = bkuSelection; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getOutputFolder() - */ - @Override - public String getOutputFolder() { - return this.folder; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setOutputFolder(java.lang.String) - */ - @Override - public void setOutputFolder(String folder) { - this.folder = folder; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignatureNote() - */ - @Override - public String getSignatureNote() { - return this.signatureNote; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignatureNote(java.lang.String) - */ - @Override - public void setSignatureNote(String note) { - this.signatureNote = note; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getLocale() - */ - @Override - public Locale getLocale() { - return this.locale; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setLocale(java.util.Locale) - */ - @Override - public void setLocale(Locale locale) { - this.locale = locale; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignLocale() - */ - @Override - public Locale getSignLocale() { - return this.signLocale; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignLocale(java.util.Locale) - */ - @Override - public void setSignLocale(Locale locale) { - this.signLocale = locale; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMobileBkURL() - */ - @Override - public String getMobileBKUURL() { - return this.mobileBKUURL; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMobileBkURL(java.lang.String) - */ - @Override - public void setMobileBKUURL(String bkuUrl) { - this.mobileBKUURL = bkuUrl; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMobileBKUType() - */ - @Override - public MobileBKUs getMobileBKUType() { - return this.mobileBKUType; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMobileBKUType(at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs) - */ - @Override - public void setMobileBKUType(MobileBKUs bkuType) { - this.mobileBKUType = bkuType; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignaturePosition() - */ - @Override - public SignaturePosition getDefaultSignaturePosition() { - return this.defaultSignaturePosition; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignaturePosition(at.asit.pdfover.signator.SignaturePosition) - */ - @Override - public void setDefaultSignaturePosition(SignaturePosition signaturePosition) { - this.defaultSignaturePosition = signaturePosition; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMainWindowSize() - */ - @Override - public Point getMainWindowSize() { - return this.mainWindowSize; - } - - - /* (non-Javadoc) - * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMainWindowSize(org.eclipse.swt.graphics.Point) - */ - @Override - public void setMainWindowSize(Point size) { - this.mainWindowSize = size; - } -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java deleted file mode 100644 index a0469d0d..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui.workflow; - -import java.util.Locale; - -import org.eclipse.swt.graphics.Point; - -import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; -import at.asit.pdfover.signator.BKUs; -import at.asit.pdfover.signator.SignaturePosition; - -/** - * An interface for reading the persistent configuration - * - * This reads the configuration that will be saved - */ -public interface PersistentConfigProvider { - /** - * Get the default configured BKU - * @return the default configured BKU - */ - public BKUs getDefaultBKUPersistent(); - - /** - * Gets the default Mobile number - * @return the default mobile number - */ - public String getDefaultMobileNumberPersistent(); - - /** - * Gets the password to use for Mobile BKU - * @return the password - */ - public String getDefaultMobilePasswordPersistent(); - - /** - * Gets the filename of the default emblem - * @return the emblem - */ - public String getDefaultEmblemPersistent(); - - /** - * Gets the proxy host - * @return the proxy hostname or ip address - */ - public String getProxyHostPersistent(); - - /** - * Gets the proxy port - * @return the proxy port - */ - public int getProxyPortPersistent(); - - /** - * Gets the default output folder for signed documents - * @return the default output folder - */ - public String getDefaultOutputFolderPersistent(); - - // Declare the other configuration getters for convenience - - /** - * Get the default configured SignaturePosition - * @return the default configured SignaturePosition or null if not configured - */ - public SignaturePosition getDefaultSignaturePosition(); - - /** - * Get the transparency of the signature placeholder - * @return the transparency of the signature placeholder - */ - public int getPlaceholderTransparency(); - - /** - * Gets the mobile BKU URL - * @return the mobile BKU URL - */ - public String getMobileBKUURL(); - - /** - * Gets the mobile BKU type - * @return the mobile BKU type - */ - public MobileBKUs getMobileBKUType(); - - /** - * Get the signature note text to use - * @return the signature note text - */ - public String getSignatureNote(); - - /** - * Gets the configured locale - * @return the configured locale - */ - public Locale getLocale(); - - /** - * Gets the configured locale - * @return the configured locale - */ - public Locale getSignLocale(); - - /** - * Gets the configured MainWindow size - * @return the configured MainWindow size - */ - public Point getMainWindowSize(); -} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java index a054daaf..6075ffee 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java @@ -15,6 +15,10 @@ */ package at.asit.pdfover.gui.workflow; +import at.asit.pdfover.gui.workflow.config.ConfigManipulator; +import at.asit.pdfover.gui.workflow.config.ConfigOverlayManipulator; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; +import at.asit.pdfover.gui.workflow.config.PersistentConfigProvider; import at.asit.pdfover.gui.workflow.states.State; /** diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java index 1da947f9..324e9a30 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java @@ -28,6 +28,11 @@ import at.asit.pdfover.gui.MainWindow; import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.controls.Dialog.BUTTONS; import at.asit.pdfover.gui.utils.Messages; +import at.asit.pdfover.gui.workflow.config.ConfigManipulator; +import at.asit.pdfover.gui.workflow.config.ConfigOverlayManipulator; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; +import at.asit.pdfover.gui.workflow.config.ConfigProviderImpl; +import at.asit.pdfover.gui.workflow.config.PersistentConfigProvider; import at.asit.pdfover.gui.workflow.states.PrepareConfigurationState; import at.asit.pdfover.gui.workflow.states.State; diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigManipulator.java new file mode 100644 index 00000000..58b9e453 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigManipulator.java @@ -0,0 +1,113 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +import java.io.IOException; +import java.util.Locale; + +import org.eclipse.swt.graphics.Point; + +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * An interface for setting the configuration + */ +public interface ConfigManipulator { + /** + * Sets the default bku type + * @param bku the bku type + */ + public void setDefaultBKU(BKUs bku); + + /** + * Sets the default signature position + * @param signaturePosition the default signature position + */ + public void setDefaultSignaturePosition(SignaturePosition signaturePosition); + + /** + * Sets the signature placeholder transparency + * @param transparency the signature placeholder transparency + */ + void setPlaceholderTransparency(int transparency); + + /** + * Sets the default mobile number + * @param number the default mobile number + */ + public void setDefaultMobileNumber(String number); + + /** + * Sets the default password + * @param password the default password + */ + public void setDefaultMobilePassword(String password); + + /** + * Sets the default emblem + * @param emblem the default emblem + */ + public void setDefaultEmblem(String emblem); + + /** + * Sets the proxy host + * @param host the proxy host + */ + public void setProxyHost(String host); + + /** + * Sets the proxy port + * @param port the proxy port + */ + public void setProxyPort(int port); + + /** + * Sets the default output folder + * @param outputFolder the default output folder + */ + public void setDefaultOutputFolder(String outputFolder); + + /** + * Sets the signature note text + * @param note the signature note text + */ + public void setSignatureNote(String note); + + /** + * Sets the locale to be used + * @param locale the locale + */ + public void setLocale(Locale locale); + + /** + * Sets the signature locale to be used + * @param locale the signature locale + */ + public void setSignLocale(Locale locale); + + /** + * Sets the default main window size + * @param size a Point describing the size + */ + public void setMainWindowSize(Point size); + + /** + * Saves the current configuration to the current configuration file + * @throws IOException + */ + public void saveCurrentConfiguration() throws IOException; +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigOverlayManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigOverlayManipulator.java new file mode 100644 index 00000000..cc134229 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigOverlayManipulator.java @@ -0,0 +1,73 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +import at.asit.pdfover.signator.BKUs; + +/** + * An interface for setting the configuration overlay + * + * This overlay overrides the actual configuration but will not be saved + */ +public interface ConfigOverlayManipulator { + /** + * Sets the default bku type + * @param bku the bku type + */ + public void setDefaultBKUOverlay(BKUs bku); + + /** + * Sets the default mobile number + * @param number the default mobile number + */ + public void setDefaultMobileNumberOverlay(String number); + + /** + * Sets the default password + * @param password the default password + */ + public void setDefaultMobilePasswordOverlay(String password); + + /** + * Sets the default emblem + * @param emblem the default emblem + */ + public void setDefaultEmblemOverlay(String emblem); + + /** + * Sets the proxy host + * @param host the proxy host + */ + public void setProxyHostOverlay(String host); + + /** + * Sets the proxy port + * @param port the proxy port + */ + public void setProxyPortOverlay(int port); + + /** + * Sets the default output folder + * @param outputFolder the default output folder + */ + public void setDefaultOutputFolderOverlay(String outputFolder); + + /** + * Sets the configuration file + * @param configurationFile + */ + public void setConfigurationFile(String configurationFile); +} 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 new file mode 100644 index 00000000..bfa5ce15 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProvider.java @@ -0,0 +1,146 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Locale; + +import org.eclipse.swt.graphics.Point; + +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * An interface for reading the configuration + */ +public interface ConfigProvider { + /** + * RegEx for parsing signature position + */ + public static final String SIGN_POS_REGEX = "(x=(\\d\\.?\\d?);y=(\\d\\.?\\d?);p=(\\d))|(auto)|(x=(\\d\\.?\\d?);y=(\\d\\.?\\d?))"; //$NON-NLS-1$ + + + /** + * Gets the configuration file + * @return the configuration file + */ + public String getConfigurationFile(); + + /** + * Gets the configuration directory + * @return the configuration directory + */ + public String getConfigurationDirectory(); + + /** + * Gets the default Mobile number + * @return the default mobile number + */ + public String getDefaultMobileNumber(); + + /** + * Gets the password to use for Mobile BKU + * @return the password + */ + public String getDefaultMobilePassword(); + + /** + * Gets the filename of the default emblem + * @return the emblem + */ + public String getDefaultEmblem(); + + /** + * Gets the proxy host + * @return the proxy hostname or ip address + */ + public String getProxyHost(); + + /** + * Gets the proxy port + * @return the proxy port + */ + public int getProxyPort(); + + /** + * Get the default configured BKU + * @return the default configured BKU + */ + public BKUs getDefaultBKU(); + + /** + * Get the default configured SignaturePosition + * @return the default configured SignaturePosition or null if not configured + */ + public SignaturePosition getDefaultSignaturePosition(); + + /** + * Get the transparency of the signature placeholder + * @return the transparency of the signature placeholder + */ + public int getPlaceholderTransparency(); + + /** + * Gets the default output folder for signed documents + * @return the default output folder + */ + public String getDefaultOutputFolder(); + + /** + * Gets the mobile BKU URL + * @return the mobile BKU URL + */ + public String getMobileBKUURL(); + + /** + * Gets the mobile BKU type + * @return the mobile BKU type + */ + public MobileBKUs getMobileBKUType(); + + /** + * Get the signature note text to use + * @return the signature note text + */ + public String getSignatureNote(); + + /** + * Gets the configured locale + * @return the configured locale + */ + public Locale getLocale(); + + /** + * Gets the configured locale + * @return the configured locale + */ + public Locale getSignLocale(); + + /** + * Gets the configured MainWindow size + * @return the configured MainWindow size + */ + public Point getMainWindowSize(); + + /** + * Loads the configuration from a configuration file + * @param configSource the configuration file + * @throws IOException + */ + public void loadConfiguration(InputStream configSource) throws IOException; +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProviderImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProviderImpl.java new file mode 100644 index 00000000..52865222 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigProviderImpl.java @@ -0,0 +1,903 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +// Imports +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Locale; +import java.util.Properties; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.eclipse.swt.graphics.Point; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.Constants; +import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; +import at.asit.pdfover.gui.exceptions.InvalidNumberException; +import at.asit.pdfover.gui.exceptions.InvalidPortException; +import at.asit.pdfover.gui.utils.LocaleSerializer; +import at.asit.pdfover.gui.utils.Messages; +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * Implementation of the configuration provider and manipulator + */ +public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator, + ConfigOverlayManipulator, PersistentConfigProvider { + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(ConfigProviderImpl.class); + + /** + * An empty property entry + */ + private static final String STRING_EMPTY = ""; //$NON-NLS-1$ + + private String configurationFile = Constants.DEFAULT_CONFIG_FILENAME; + + private ConfigurationContainer configuration; + + private ConfigurationContainer configurationOverlay; + + /** + * Constructor + */ + public ConfigProviderImpl() { + this.configuration = new ConfigurationContainerImpl(); + this.configurationOverlay = new ConfigurationContainerImpl(); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigProvider#loadConfiguration(java.io + * .InputStream) + */ + @Override + public void loadConfiguration(InputStream configSource) throws IOException { + + Properties config = new Properties(); + + config.load(configSource); + + // Set Emblem + this.setDefaultEmblem(config + .getProperty(Constants.CFG_EMBLEM)); + + // Set Mobile Phone Number + this.setDefaultMobileNumber(config + .getProperty(Constants.CFG_MOBILE_NUMBER)); + + // Set signature note + this.setSignatureNote(config + .getProperty(Constants.CFG_SIGNATURE_NOTE)); + + // Set Proxy Host + this.setProxyHost(config + .getProperty(Constants.CFG_PROXY_HOST)); + + // Set Output Folder + this.setDefaultOutputFolder(config + .getProperty(Constants.CFG_OUTPUT_FOLDER)); + + String localeString = config.getProperty(Constants.CFG_LOCALE); + + Locale targetLocale = LocaleSerializer.parseFromString(localeString); + if (targetLocale != null) { + this.setLocale(targetLocale); + } + + String signlocalString = config.getProperty(Constants.CFG_SIGN_LOCALE); + + Locale signtargetLocale = LocaleSerializer.parseFromString(signlocalString); + if (signtargetLocale != null) { + this.setSignLocale(signtargetLocale); + } + + String bkuUrl = config + .getProperty(Constants.CFG_MOBILE_BKU_URL); + + if (bkuUrl != null && !bkuUrl.isEmpty()) { + this.configuration.setMobileBKUURL(bkuUrl); + } + + String bkuType = config + .getProperty(Constants.CFG_MOBILE_BKU_TYPE); + + if (bkuType != null && !bkuType.isEmpty()) { + try { + this.configuration.setMobileBKUType(MobileBKUs.valueOf( + bkuType.trim().toUpperCase())); + } catch (IllegalArgumentException e) { + log.error("Invalid BKU type: " + bkuType); //$NON-NLS-1$ + this.configuration.setMobileBKUType(Constants.DEFAULT_MOBILE_BKU_TYPE); + } + } + + // Set Proxy Port + String proxyPortString = config + .getProperty(Constants.CFG_PROXY_PORT); + + if (proxyPortString != null && !proxyPortString.trim().isEmpty()) { + int port = Integer.parseInt(proxyPortString); + + if (port > 0 && port <= 0xFFFF) { + this.setProxyPort(port); + } else { + log.warn("Proxy port is out of range!: " + port); //$NON-NLS-1$ + } + } + + // Set Default BKU + String bkuString = config.getProperty(Constants.CFG_BKU); + BKUs defaultBKU = BKUs.NONE; + if (bkuString != null) { + try { + defaultBKU = BKUs.valueOf(bkuString); + } catch (IllegalArgumentException ex) { + log.error("Invalid BKU config value " + bkuString + " using none!"); //$NON-NLS-1$ //$NON-NLS-2$ + defaultBKU = BKUs.NONE; + } catch (NullPointerException ex) { + log.error("Invalid BKU config value " + bkuString + " using none!"); //$NON-NLS-1$ //$NON-NLS-2$ + defaultBKU = BKUs.NONE; + } + } + this.setDefaultBKU(defaultBKU); + + // Set Signature placeholder transparency + int transparency = Constants.DEFAULT_SIGNATURE_PLACEHOLDER_TRANSPARENCY; + String trans = config.getProperty(Constants.CFG_SIGNATURE_PLACEHOLDER_TRANSPARENCY); + if (trans != null) { + try { + transparency = Integer.parseInt(trans); + } catch (NumberFormatException e) { + log.debug("Couldn't parse placeholder transparency", e); //$NON-NLS-1$ + // ignore parsing exception + } + } + this.setPlaceholderTransparency(transparency); + + // Set MainWindow size + int width = Constants.DEFAULT_MAINWINDOW_WIDTH; + int height = Constants.DEFAULT_MAINWINDOW_HEIGHT; + String size = config.getProperty(Constants.CFG_MAINWINDOW_SIZE); + parse: { + if (size == null) + break parse; + int pos = size.indexOf(','); + if (pos <= 0) + break parse; + + try { + width = Integer.parseInt(size.substring(0, pos).trim()); + height = Integer.parseInt(size.substring(pos + 1).trim()); + } catch (NumberFormatException e) { + log.debug("Couldn't parse main window size", e); //$NON-NLS-1$ + // ignore parsing exception + } + } + this.configuration.setMainWindowSize(new Point(width, height)); + + // Set Signature Position + String signaturePosition = config + .getProperty(Constants.CFG_SIGNATURE_POSITION); + + SignaturePosition position = null; + + if (signaturePosition != null && !signaturePosition.trim().isEmpty()) { + + signaturePosition = signaturePosition.trim().toLowerCase(); + + Pattern pattern = Pattern.compile(SIGN_POS_REGEX); + + Matcher matcher = pattern.matcher(signaturePosition); + + if (matcher.matches()) { + if (matcher.groupCount() == 8) { + if (matcher.group(1) != null) { + // we have format: x=..;y=..;p=... + try { + // group 2 = x value + float x = Float.parseFloat(matcher.group(2)); + + // group 3 = y value + float y = Float.parseFloat(matcher.group(3)); + + // group 4 = p value + int p = Integer.parseInt(matcher.group(3)); + + position = new SignaturePosition(x, y, p); + } catch (NumberFormatException ex) { + log.error( + "Signature Position read from config failed: Not a valid number", ex); //$NON-NLS-1$ + } + } else if (matcher.group(5) != null) { + // we have format auto + position = new SignaturePosition(); + } else if (matcher.group(6) != null) { + // we have format x=...;y=...; + // group 7 = x value + float x = Float.parseFloat(matcher.group(7)); + + // group 8 = y value + float y = Float.parseFloat(matcher.group(8)); + + position = new SignaturePosition(x, y); + } + } else { + log.error("Signature Position read from config failed: wrong group Count!"); //$NON-NLS-1$ + } + } else { + log.error("Signature Position read from config failed: not matching string"); //$NON-NLS-1$ + } + + } + + this.setDefaultSignaturePosition(position); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigManipulator#saveCurrentConfiguration() + */ + @Override + public void saveCurrentConfiguration() throws IOException { + String filename = this.getConfigurationFile(); + + File configFile = new File(this.getConfigurationDirectory() + + File.separator + filename); + + Properties props = new Properties(); + props.clear(); + + props.setProperty(Constants.CFG_BKU, this.getDefaultBKUPersistent().toString()); + props.setProperty(Constants.CFG_PROXY_HOST, this.getProxyHostPersistent()); + props.setProperty(Constants.CFG_PROXY_PORT, + Integer.toString(getProxyPortPersistent())); + props.setProperty(Constants.CFG_EMBLEM, this.getDefaultEmblemPersistent()); + props.setProperty(Constants.CFG_SIGNATURE_NOTE, this.getSignatureNote()); + props.setProperty(Constants.CFG_MOBILE_NUMBER, this.getDefaultMobileNumberPersistent()); + props.setProperty(Constants.CFG_OUTPUT_FOLDER, this.getDefaultOutputFolderPersistent()); + props.setProperty(Constants.CFG_SIGNATURE_PLACEHOLDER_TRANSPARENCY, + Integer.toString(getPlaceholderTransparency())); + + Point size = this.configuration.getMainWindowSize(); + props.setProperty(Constants.CFG_MAINWINDOW_SIZE, size.x + "," + size.y); //$NON-NLS-1$ + + Locale configLocale = getLocale(); + if(configLocale != null) { + props.setProperty(Constants.CFG_LOCALE, LocaleSerializer.getParsableString(configLocale)); + } + + Locale signLocale = this.getSignLocale(); + if(signLocale != null) { + props.setProperty(Constants.CFG_SIGN_LOCALE, LocaleSerializer.getParsableString(signLocale)); + } + + SignaturePosition pos = getDefaultSignaturePosition(); + + if (pos == null) { + props.setProperty(Constants.CFG_SIGNATURE_POSITION, ""); //$NON-NLS-1$ + } else if (pos.useAutoPositioning()) { + props.setProperty(Constants.CFG_SIGNATURE_POSITION, "auto"); //$NON-NLS-1$ + } else { + props.setProperty(Constants.CFG_SIGNATURE_POSITION, + String.format((Locale) null, "x=%f;y=%f;p=%d", //$NON-NLS-1$ + pos.getX(), pos.getY(), pos.getPage())); + } + + String mobileBKUURL = getMobileBKUURL(); + if (!mobileBKUURL.equals(Constants.DEFAULT_MOBILE_BKU_URL)) + props.setProperty(Constants.CFG_MOBILE_BKU_URL, mobileBKUURL); + + MobileBKUs mobileBKUType = getMobileBKUType(); + if (mobileBKUType != Constants.DEFAULT_MOBILE_BKU_TYPE) + props.setProperty(Constants.CFG_MOBILE_BKU_TYPE, mobileBKUType.toString()); + + if (Constants.THEME != Constants.Themes.DEFAULT) + props.setProperty(Constants.CFG_THEME, Constants.THEME.name()); + + FileOutputStream outputstream = new FileOutputStream(configFile, false); + + props.store(outputstream, "Configuration file was generated!"); //$NON-NLS-1$ + + log.info("Configuration file saved to " + configFile.getAbsolutePath()); //$NON-NLS-1$ + } + + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigProvider#getConfigurationDirectory() + */ + @Override + public String getConfigurationDirectory() { + return Constants.CONFIG_DIRECTORY; + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigManipulator#setConfigurationFile(java + * .lang.String) + */ + @Override + public void setConfigurationFile(String configurationFile) { + this.configurationFile = configurationFile; + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getConfigurationFile() + */ + @Override + public String getConfigurationFile() { + return this.configurationFile; + } + + /** + * Sets the default bku type + * + * @param bku + * the bku type + */ + @Override + public void setDefaultBKU(BKUs bku) { + this.configuration.setDefaultBKU(bku); + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultBKUOverlay(at.asit.pdfover.signator.BKUs) + */ + @Override + public void setDefaultBKUOverlay(BKUs bku) { + this.configurationOverlay.setDefaultBKU(bku); + + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultBKU() + */ + @Override + public BKUs getDefaultBKU() { + BKUs bku = this.configurationOverlay.getDefaultBKU(); + if (bku == BKUs.NONE) + bku = getDefaultBKUPersistent(); + return bku; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultBKUPersistent() + */ + @Override + public BKUs getDefaultBKUPersistent() { + return this.configuration.getDefaultBKU(); + } + + /** + * Sets the default signature position + * + * @param signaturePosition + * the default signature position + */ + @Override + public void setDefaultSignaturePosition(SignaturePosition signaturePosition) { + this.configuration.setDefaultSignaturePosition(signaturePosition); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultSignaturePosition() + */ + @Override + public SignaturePosition getDefaultSignaturePosition() { + return this.configuration.getDefaultSignaturePosition(); + } + + /** + * Sets the signature placeholder transparency + * + * @param transparency + * the signature placeholder transparency + */ + @Override + public void setPlaceholderTransparency(int transparency) { + this.configuration.setPlaceholderTransparency(transparency); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigProvider#getPlaceholderTransparency() + */ + @Override + public int getPlaceholderTransparency() { + return this.configuration.getPlaceholderTransparency(); + } + + /** + * Sets the default mobile number + * + * @param number + * the default mobile number + */ + @Override + public void setDefaultMobileNumber(String number) { + try { + if (number == null || number.trim().isEmpty()) { + this.configuration.setMobileNumber(STRING_EMPTY); + } else { + this.configuration.setMobileNumber(number); + } + } catch (InvalidNumberException e) { + log.error("Error setting mobile number", e); //$NON-NLS-1$ + try { + this.configuration.setMobileNumber(STRING_EMPTY); + } catch (InvalidNumberException e1) { + // Ignore + } + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobileNumberOverlay(java.lang.String) + */ + @Override + public void setDefaultMobileNumberOverlay(String number) { + try { + if (number == null || number.trim().isEmpty()) { + this.configurationOverlay.setMobileNumber(STRING_EMPTY); + } else { + this.configurationOverlay.setMobileNumber(number); + } + } catch (InvalidNumberException e) { + log.error("Error setting mobile number", e); //$NON-NLS-1$ + try { + this.configurationOverlay.setMobileNumber(STRING_EMPTY); + } catch (InvalidNumberException e1) { + // Ignore + } + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultMobileNumber() + */ + @Override + public String getDefaultMobileNumber() { + String number = this.configurationOverlay.getMobileNumber(); + if (number == null) + number = getDefaultMobileNumberPersistent(); + return number; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobileNumberPersistent() + */ + @Override + public String getDefaultMobileNumberPersistent() { + String number = this.configuration.getMobileNumber(); + if (number == null) + number = STRING_EMPTY; + return number; + } + + /** + * Sets the default mobile password + * + * @param password + * the default password + */ + @Override + public void setDefaultMobilePassword(String password) { + if (password == null || password.trim().isEmpty()) { + this.configuration.setMobilePassword(STRING_EMPTY); + } else { + this.configuration.setMobilePassword(password); + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobilePasswordOverlay(java.lang.String) + */ + @Override + public void setDefaultMobilePasswordOverlay(String password) { + if (password == null || password.trim().isEmpty()) { + this.configurationOverlay.setMobilePassword(STRING_EMPTY); + } else { + this.configurationOverlay.setMobilePassword(password); + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultPassword() + */ + @Override + public String getDefaultMobilePassword() { + String password = this.configurationOverlay.getMobilePassword(); + if (password == null) + password = getDefaultMobilePasswordPersistent(); + return password; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobilePasswordPersistent() + */ + @Override + public String getDefaultMobilePasswordPersistent() { + String password = this.configuration.getMobilePassword(); + if (password == null) + password = STRING_EMPTY; + return password; + } + + /** + * Sets the default emblem + * + * @param emblem + * the default emblem + */ + @Override + public void setDefaultEmblem(String emblem) { + try { + if (emblem == null || emblem.trim().isEmpty()) { + this.configuration.setEmblem(STRING_EMPTY); + } else { + this.configuration.setEmblem(emblem); + } + } catch (InvalidEmblemFile e) { + log.error("Error setting emblem file", e); //$NON-NLS-1$ + try { + this.configuration.setEmblem(STRING_EMPTY); + } catch (InvalidEmblemFile e1) { + // Ignore + } + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultEmblemOverlay(java.lang.String) + */ + @Override + public void setDefaultEmblemOverlay(String emblem) { + try { + if (emblem == null || emblem.trim().isEmpty()) { + this.configurationOverlay.setEmblem(STRING_EMPTY); + } else { + this.configurationOverlay.setEmblem(emblem); + } + } catch (InvalidEmblemFile e) { + log.error("Error setting emblem file", e); //$NON-NLS-1$ + try { + this.configurationOverlay.setEmblem(STRING_EMPTY); + } catch (InvalidEmblemFile e1) { + // Ignore + } + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultEmblem() + */ + @Override + public String getDefaultEmblem() { + String emblem = this.configurationOverlay.getEmblem(); + if (emblem == null) + emblem = getDefaultEmblemPersistent(); + return emblem; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultEmblemPersistent() + */ + @Override + public String getDefaultEmblemPersistent() { + String emblem = this.configuration.getEmblem(); + if (emblem == null) + emblem = STRING_EMPTY; + return emblem; + } + + /** + * Sets the proxy host + * + * @param host + * the proxy host + */ + @Override + public void setProxyHost(String host) { + if (host == null || host.trim().isEmpty()) { + this.configuration.setProxyHost(STRING_EMPTY); + } else { + this.configuration.setProxyHost(host); + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyHostOverlay(java.lang.String) + */ + @Override + public void setProxyHostOverlay(String host) { + if (host == null || host.trim().isEmpty()) { + this.configurationOverlay.setProxyHost(STRING_EMPTY); + } else { + this.configurationOverlay.setProxyHost(host); + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getProxyHost() + */ + @Override + public String getProxyHost() { + String host = this.configurationOverlay.getProxyHost(); + if (host == null) + host = getProxyHostPersistent(); + return host; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyHostPersistent() + */ + @Override + public String getProxyHostPersistent() { + String host = this.configuration.getProxyHost(); + if (host == null) + host = STRING_EMPTY; + return host; + } + + /** + * Sets the proxy port + * + * @param port + * the proxy port + */ + @Override + public void setProxyPort(int port) { + try { + this.configuration.setProxyPort(port); + } catch (InvalidPortException e) { + log.error("Error setting proxy port" , e); //$NON-NLS-1$ + // ignore + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyPortOverlay(int) + */ + @Override + public void setProxyPortOverlay(int port) { + try { + this.configurationOverlay.setProxyPort(port); + } catch (InvalidPortException e) { + log.error("Error setting proxy port" , e); //$NON-NLS-1$ + // ignore + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getProxyPort() + */ + @Override + public int getProxyPort() { + int port = this.configurationOverlay.getProxyPort(); + if (port == -1) + port = getProxyPortPersistent(); + return port; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyPortPersistent() + */ + @Override + public int getProxyPortPersistent() { + return this.configuration.getProxyPort(); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigManipulator#setDefaultOutputFolder + * (java.lang.String) + */ + @Override + public void setDefaultOutputFolder(String outputFolder) { + if (outputFolder == null || outputFolder.trim().isEmpty()) { + this.configuration.setOutputFolder(STRING_EMPTY); + } else { + this.configuration.setOutputFolder(outputFolder); + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultOutputFolderOverlay(java.lang.String) + */ + @Override + public void setDefaultOutputFolderOverlay(String outputFolder) { + if (outputFolder == null || outputFolder.trim().isEmpty()) { + this.configurationOverlay.setOutputFolder(STRING_EMPTY); + } else { + this.configurationOverlay.setOutputFolder(outputFolder); + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getDefaultOutputFolder() + */ + @Override + public String getDefaultOutputFolder() { + String outputFolder = this.configurationOverlay.getOutputFolder(); + if (outputFolder == null) + outputFolder = getDefaultOutputFolderPersistent(); + return outputFolder; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultOutputFolderPersistent() + */ + @Override + public String getDefaultOutputFolderPersistent() { + String outputFolder = this.configuration.getOutputFolder(); + if (outputFolder == null) + outputFolder = STRING_EMPTY; + return outputFolder; + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMobileBKUURL() + */ + @Override + public String getMobileBKUURL() { + return this.configuration.getMobileBKUURL(); + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMobileBKUType() + */ + @Override + public MobileBKUs getMobileBKUType() { + return this.configuration.getMobileBKUType(); + } + + /* + * (non-Javadoc) + * + * @see + * at.asit.pdfover.gui.workflow.ConfigManipulator#setSignatureNote(java. + * lang.String) + */ + @Override + public void setSignatureNote(String note) { + if (note == null || note.trim().isEmpty()) { + this.configuration.setSignatureNote(STRING_EMPTY); + } else { + this.configuration.setSignatureNote(note); + } + } + + /* + * (non-Javadoc) + * + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getSignatureNote() + */ + @Override + public String getSignatureNote() { + String note = this.configuration.getSignatureNote(); + if (note == null) + note = STRING_EMPTY; + return note; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setLocale(java.util.Locale) + */ + @Override + public void setLocale(Locale locale) { + if(locale == null) { + this.configuration.setLocale(Messages.getDefaultLocale()); + } else { + this.configuration.setLocale(locale); + Locale.setDefault(locale); + Messages.setLocale(locale); + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getConfigLocale() + */ + @Override + public Locale getLocale() { + Locale locale = this.configuration.getLocale(); + if (locale == null) + locale = Messages.getDefaultLocale(); + return locale; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setSignLocale(java.util.Locale) + */ + @Override + public void setSignLocale(Locale locale) { + if(locale == null) { + this.configuration.setSignLocale(Messages.getDefaultLocale()); + } else { + this.configuration.setSignLocale(locale); + } + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getSignLocale() + */ + @Override + public Locale getSignLocale() { + Locale locale = this.configuration.getSignLocale(); + if (locale == null) + locale = Messages.getDefaultLocale(); + return locale; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigManipulator#setMainWindowSize(org.eclipse.swt.graphics.Point) + */ + @Override + public void setMainWindowSize(Point size) { + this.configuration.setMainWindowSize(size); + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigProvider#getMainWindowSize() + */ + @Override + public Point getMainWindowSize() { + return this.configuration.getMainWindowSize(); + } +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainer.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainer.java new file mode 100644 index 00000000..21a635a5 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainer.java @@ -0,0 +1,233 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +import java.util.Locale; + +import org.eclipse.swt.graphics.Point; + +import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; +import at.asit.pdfover.gui.exceptions.InvalidNumberException; +import at.asit.pdfover.gui.exceptions.InvalidPortException; +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * + */ +public interface ConfigurationContainer { + /** + * Gets the configured emblem + * @return the configured emblem + */ + public String getEmblem(); + + /** + * Sets the emblem + * @param emblem the emblem + * @throws InvalidEmblemFile + */ + public void setEmblem(String emblem) throws InvalidEmblemFile; + + /** + * Gets the mobile phone number + * @return the mobile phone number + */ + public String getMobileNumber(); + + /** + * Sets the mobile phone number + * @param number the mobile phone number + * @throws InvalidNumberException + */ + public void setMobileNumber(String number) throws InvalidNumberException; + + /** + * Gets the mobile phone number + * @return the mobile phone number + */ + public String getMobilePassword(); + + /** + * Sets the mobile phone password + * @param password the mobile phone password + */ + public void setMobilePassword(String password); + + /** + * Gets the proxy host + * @return the proxy host + */ + public String getProxyHost(); + + /** + * Sets the proxy host + * @param host the proxy host + */ + public void setProxyHost(String host); + + /** + * Gets the signature note + * @return the signature note + */ + public String getSignatureNote(); + + /** + * Sets the signature note + * @param note the signature note + */ + public void setSignatureNote(String note); + + /** + * Gets the proxy port + * + * if port is -1 no port is selected + * + * @return the proxy port + */ + public int getProxyPort(); + + /** + * Sets the proxy port + * + * set to -1 for no port + * + * @param port the proxy port + * @throws InvalidPortException + */ + public void setProxyPort(int port) throws InvalidPortException; + + /** + * Gets the automatic position + * @return the automatic position + */ + public boolean getAutomaticPosition(); + + /** + * Sets the automatic position + * @param automatic the automatic position + */ + public void setAutomaticPosition(boolean automatic); + + /** + * Gets the transparency of the placeholder + * @return transparency of the placeholder (0-255) + */ + public int getPlaceholderTransparency(); + + /** + * Sets the transparency of the placeholder + * @param transparency transparency of the placeholder (0-255) + */ + public void setPlaceholderTransparency(int transparency); + + /** + * Gets the default BKU + * @return the default BKU + */ + public BKUs getDefaultBKU(); + + /** + * Sets the default BKU + * @param defaultBKU the default BKU + */ + public void setDefaultBKU(BKUs defaultBKU); + + /** + * Gets the default output folder + * @return the default output folder + */ + public String getOutputFolder(); + + /** + * Sets the default output folder + * @param folder the default output folder + */ + public void setOutputFolder(String folder); + + /** + * Gets the locale + * @return the locale + */ + public Locale getLocale(); + + /** + * Sets the locale + * @param locale the locale + */ + public void setLocale(Locale locale); + + /** + * Gets the signature locale + * @return the signature locale + */ + public Locale getSignLocale(); + + /** + * Sets the signature locale + * @param locale the signature locale + */ + public void setSignLocale(Locale locale); + + /** + * Gets the mobile BKU URL + * @return the mobile BKU URL + */ + public String getMobileBKUURL(); + + /** + * Sets the mobile BKU URL + * @param bkuUrl the mobile BKU URL + */ + public void setMobileBKUURL(String bkuUrl); + + /** + * Gets the mobile BKU type + * @return the mobile BKU type + */ + public MobileBKUs getMobileBKUType(); + + /** + * Sets the mobile BKU type + * @param bkuType the mobile BKU type + */ + public void setMobileBKUType(MobileBKUs bkuType); + + /** + * Gets the default signature position + * @return the default signature position + */ + public SignaturePosition getDefaultSignaturePosition(); + + /** + * Gets the default signature position + * @param signaturePosition the default signature position + */ + public void setDefaultSignaturePosition(SignaturePosition signaturePosition); + + /** + * Gets the main window size + * @return the main window size + */ + public Point getMainWindowSize(); + + /** + * Sets the main window size + * @param size the main window size + */ + public void setMainWindowSize(Point size); +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainerImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainerImpl.java new file mode 100644 index 00000000..0729cb51 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/ConfigurationContainerImpl.java @@ -0,0 +1,420 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +// Imports +import java.io.File; +import java.io.FileNotFoundException; +import java.util.Locale; + +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Display; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.Constants; +import at.asit.pdfover.gui.exceptions.InvalidEmblemFile; +import at.asit.pdfover.gui.exceptions.InvalidNumberException; +import at.asit.pdfover.gui.exceptions.InvalidPortException; +import at.asit.pdfover.gui.utils.Messages; +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUHelper; +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * + */ +public class ConfigurationContainerImpl implements ConfigurationContainer { + /** + * SLF4J Logger instance + **/ + @SuppressWarnings("unused") + private static final Logger log = LoggerFactory + .getLogger(ConfigurationContainerImpl.class); + + + /** the emblem File */ + protected String emblemFile = null; + + /** The mobile phone number */ + protected String mobileNumber = null; + + /** The mobile phone password */ + protected String mobilePassword = null; + + /** Holds the proxy Host */ + protected String proxyHost = null; + + /** Holds the signatureNote */ + protected String signatureNote = null; + + /** Holds the proxy port number */ + protected int proxyPort = -1; + + /** Holds the locale */ + protected Locale locale = null; + + /** Holds the signature locale */ + protected Locale signLocale = null; + + /** Holds the output folder */ + protected String folder = null; + + /** Holds the default BKU to use */ + protected BKUs defaultBKU = BKUs.NONE; + + /** Holds the automatic positioning value */ + protected boolean automaticPositioning = false; + + /** Holds the transparency of the signature placeholder */ + protected int placeholderTransparency = Constants.DEFAULT_SIGNATURE_PLACEHOLDER_TRANSPARENCY; + + /** Holds the mobile BKU URL */ + protected String mobileBKUURL = Constants.DEFAULT_MOBILE_BKU_URL; + + /** Holds the mobile BKU type */ + protected MobileBKUs mobileBKUType = Constants.DEFAULT_MOBILE_BKU_TYPE; + + /** Holds the main window size */ + protected Point mainWindowSize = null; + + /** Holds the default signature position */ + protected SignaturePosition defaultSignaturePosition = null; + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getEmblem() + */ + @Override + public String getEmblem() { + return this.emblemFile; + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setEmblem(java.lang.String) + */ + @Override + public void setEmblem(String emblemFile) throws InvalidEmblemFile { + if (emblemFile == null || emblemFile.trim().isEmpty()) { + // Ok to set no file ... + } else { + File imageFile = new File(emblemFile); + if (!imageFile.exists()) { + throw new InvalidEmblemFile(imageFile, + new FileNotFoundException(emblemFile)); + } + + try { + Image img = new Image(Display.getDefault(), new ImageData( + emblemFile)); + + img.dispose(); + } catch (Exception ex) { + throw new InvalidEmblemFile(imageFile, ex); + } + } + + this.emblemFile = emblemFile; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getNumber() + */ + @Override + public String getMobileNumber() { + return this.mobileNumber; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setNumber(java.lang.String) + */ + @Override + public void setMobileNumber(String number) throws InvalidNumberException { + if(number == null || number.trim().isEmpty()) { + this.mobileNumber = null; + return; + } + try { + this.mobileNumber = MobileBKUHelper.normalizeMobileNumber(number); + } catch (InvalidNumberException e) { + throw new InvalidNumberException(Messages.getString("error.InvalidPhoneNumber")); //$NON-NLS-1$ + } + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getDefaultMobilePassword() + */ + @Override + public String getMobilePassword() { + return this.mobilePassword; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setDefaultMobilePassword(java.lang.String) + */ + @Override + public void setMobilePassword(String password) { + this.mobilePassword = password; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getProxyHost() + */ + @Override + public String getProxyHost() { + return this.proxyHost; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setProxyHost(java.lang.String) + */ + @Override + public void setProxyHost(String host) { + this.proxyHost = host; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getProxyPort() + */ + @Override + public int getProxyPort() { + return this.proxyPort; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setProxyPort(int) + */ + @Override + public void setProxyPort(int port) throws InvalidPortException { + if(port > 0 && port <= 0xFFFF) { + this.proxyPort = port; + return; + } + if(port == -1) { + this.proxyPort = -1; + return; + } + throw new InvalidPortException(port); + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getAutomaticPosition() + */ + @Override + public boolean getAutomaticPosition() { + return this.automaticPositioning; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setAutomaticPosition(boolean) + */ + @Override + public void setAutomaticPosition(boolean automatic) { + this.automaticPositioning = automatic; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getPlaceholderTransparency() + */ + @Override + public int getPlaceholderTransparency() { + return this.placeholderTransparency; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setPlaceholderTransparency(int) + */ + @Override + public void setPlaceholderTransparency(int transparency) { + this.placeholderTransparency = transparency; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getBKUSelection() + */ + @Override + public BKUs getDefaultBKU() { + return this.defaultBKU; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setBKUSelection(at.asit.pdfover.signator.BKUs) + */ + @Override + public void setDefaultBKU(BKUs bkuSelection) { + this.defaultBKU = bkuSelection; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#getOutputFolder() + */ + @Override + public String getOutputFolder() { + return this.folder; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.composites.ConfigurationContainer#setOutputFolder(java.lang.String) + */ + @Override + public void setOutputFolder(String folder) { + this.folder = folder; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignatureNote() + */ + @Override + public String getSignatureNote() { + return this.signatureNote; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignatureNote(java.lang.String) + */ + @Override + public void setSignatureNote(String note) { + this.signatureNote = note; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getLocale() + */ + @Override + public Locale getLocale() { + return this.locale; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setLocale(java.util.Locale) + */ + @Override + public void setLocale(Locale locale) { + this.locale = locale; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignLocale() + */ + @Override + public Locale getSignLocale() { + return this.signLocale; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignLocale(java.util.Locale) + */ + @Override + public void setSignLocale(Locale locale) { + this.signLocale = locale; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMobileBkURL() + */ + @Override + public String getMobileBKUURL() { + return this.mobileBKUURL; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMobileBkURL(java.lang.String) + */ + @Override + public void setMobileBKUURL(String bkuUrl) { + this.mobileBKUURL = bkuUrl; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMobileBKUType() + */ + @Override + public MobileBKUs getMobileBKUType() { + return this.mobileBKUType; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMobileBKUType(at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs) + */ + @Override + public void setMobileBKUType(MobileBKUs bkuType) { + this.mobileBKUType = bkuType; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getSignaturePosition() + */ + @Override + public SignaturePosition getDefaultSignaturePosition() { + return this.defaultSignaturePosition; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setSignaturePosition(at.asit.pdfover.signator.SignaturePosition) + */ + @Override + public void setDefaultSignaturePosition(SignaturePosition signaturePosition) { + this.defaultSignaturePosition = signaturePosition; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#getMainWindowSize() + */ + @Override + public Point getMainWindowSize() { + return this.mainWindowSize; + } + + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.ConfigurationContainer#setMainWindowSize(org.eclipse.swt.graphics.Point) + */ + @Override + public void setMainWindowSize(Point size) { + this.mainWindowSize = size; + } +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/PersistentConfigProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/PersistentConfigProvider.java new file mode 100644 index 00000000..f79d7d56 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config/PersistentConfigProvider.java @@ -0,0 +1,123 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow.config; + +import java.util.Locale; + +import org.eclipse.swt.graphics.Point; + +import at.asit.pdfover.gui.workflow.states.mobilebku.MobileBKUs; +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * An interface for reading the persistent configuration + * + * This reads the configuration that will be saved + */ +public interface PersistentConfigProvider { + /** + * Get the default configured BKU + * @return the default configured BKU + */ + public BKUs getDefaultBKUPersistent(); + + /** + * Gets the default Mobile number + * @return the default mobile number + */ + public String getDefaultMobileNumberPersistent(); + + /** + * Gets the password to use for Mobile BKU + * @return the password + */ + public String getDefaultMobilePasswordPersistent(); + + /** + * Gets the filename of the default emblem + * @return the emblem + */ + public String getDefaultEmblemPersistent(); + + /** + * Gets the proxy host + * @return the proxy hostname or ip address + */ + public String getProxyHostPersistent(); + + /** + * Gets the proxy port + * @return the proxy port + */ + public int getProxyPortPersistent(); + + /** + * Gets the default output folder for signed documents + * @return the default output folder + */ + public String getDefaultOutputFolderPersistent(); + + // Declare the other configuration getters for convenience + + /** + * Get the default configured SignaturePosition + * @return the default configured SignaturePosition or null if not configured + */ + public SignaturePosition getDefaultSignaturePosition(); + + /** + * Get the transparency of the signature placeholder + * @return the transparency of the signature placeholder + */ + public int getPlaceholderTransparency(); + + /** + * Gets the mobile BKU URL + * @return the mobile BKU URL + */ + public String getMobileBKUURL(); + + /** + * Gets the mobile BKU type + * @return the mobile BKU type + */ + public MobileBKUs getMobileBKUType(); + + /** + * Get the signature note text to use + * @return the signature note text + */ + public String getSignatureNote(); + + /** + * Gets the configured locale + * @return the configured locale + */ + public Locale getLocale(); + + /** + * Gets the configured locale + * @return the configured locale + */ + public Locale getSignLocale(); + + /** + * Gets the configured MainWindow size + * @return the configured MainWindow size + */ + public Point getMainWindowSize(); +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java index 797ce925..14d06d47 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/BKUSelectionState.java @@ -23,9 +23,9 @@ import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.MainWindow.Buttons; import at.asit.pdfover.gui.MainWindowBehavior; import at.asit.pdfover.gui.composites.BKUSelectionComposite; -import at.asit.pdfover.gui.workflow.ConfigProvider; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; import at.asit.pdfover.signator.BKUs; /** 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 bc8a9e83..faea77a0 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 @@ -23,9 +23,9 @@ import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.MainWindow.Buttons; import at.asit.pdfover.gui.MainWindowBehavior; import at.asit.pdfover.gui.composites.DataSourceSelectComposite; -import at.asit.pdfover.gui.workflow.ConfigProvider; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; /** * Selects the data source for the signature process. diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java index 4d2b75f5..967d255e 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OutputState.java @@ -26,9 +26,9 @@ import at.asit.pdfover.gui.composites.OutputComposite; import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.controls.Dialog.BUTTONS; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigProvider; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; /** * Produces the output of the signature process. (save file, open file) diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java index 1fdc4228..5f731470 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java @@ -26,9 +26,9 @@ import at.asit.pdfover.gui.composites.WaitingComposite; import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.controls.Dialog.BUTTONS; import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigProvider; import at.asit.pdfover.gui.workflow.StateMachine; import at.asit.pdfover.gui.workflow.Status; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; import at.asit.pdfover.signator.BKUs; import at.asit.pdfover.signator.FileNameEmblem; import at.asit.pdfover.signator.PDFFileDocumentSource; diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustStatus.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustStatus.java index d5beaf2d..c4705227 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustStatus.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/ATrustStatus.java @@ -19,7 +19,7 @@ package at.asit.pdfover.gui.workflow.states.mobilebku; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import at.asit.pdfover.gui.workflow.ConfigProvider; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; /** * A-Trust MobileBKUStatus implementation diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/IAIKStatus.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/IAIKStatus.java index df399375..52aacf82 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/IAIKStatus.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/IAIKStatus.java @@ -19,7 +19,7 @@ package at.asit.pdfover.gui.workflow.states.mobilebku; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import at.asit.pdfover.gui.workflow.ConfigProvider; +import at.asit.pdfover.gui.workflow.config.ConfigProvider; /** * IAIK MobileBKUStatus implementation -- cgit v1.2.3