diff options
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/config')
7 files changed, 2011 insertions, 0 deletions
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(); +} |