| /** |
| * |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| */ |
| package org.eclipse.osbp.preferences.ui.data; |
| |
| import java.io.File; |
| import java.io.FileInputStream; |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.nio.file.Files; |
| import java.nio.file.Paths; |
| import java.util.HashMap; |
| import java.util.HashSet; |
| import java.util.Locale; |
| import java.util.Map; |
| import java.util.Set; |
| import java.util.TreeMap; |
| import java.util.TreeSet; |
| import java.util.stream.Stream; |
| |
| import org.apache.commons.io.IOUtils; |
| import org.apache.commons.lang3.StringUtils; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.core.runtime.IPath; |
| import org.eclipse.core.runtime.preferences.IScopeContext; |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.util.IPropertyChangeListener; |
| import org.eclipse.osbp.preferences.DataSourceConfiguration; |
| import org.eclipse.osbp.preferences.IProductConfigurationPrefs; |
| import org.eclipse.osbp.preferences.LocaleUtils; |
| import org.eclipse.osbp.preferences.PersistenceUnitConfiguration; |
| import org.eclipse.osbp.preferences.Preference; |
| import org.eclipse.osbp.preferences.ProductConfiguration; |
| import org.eclipse.osbp.preferences.ProductConfigurationDefaultPrefs; |
| import org.eclipse.osbp.preferences.ProductConfigurationPrefs; |
| import org.eclipse.osbp.preferences.ui.component.APreferencePage; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| public class ProductConfigurationStore implements IPreferenceStore { |
| |
| private static final Logger LOGGER = LoggerFactory.getLogger(ProductConfigurationStore.class); |
| private static ProductConfigurationStore sInstance; |
| private static Map<String,IProject> osbpProductProjects = new TreeMap<>(); |
| private static Map<String,IProject> availableProductProjects = new TreeMap<>(); |
| |
| private ProductConfigurationPrefs prefs; |
| private final IProductConfigurationPrefs defaultPrefs; |
| |
| private Set<APreferencePage> prefsChangedListener = new HashSet<>(); |
| |
| public static Map<String,IProject> getAvailableApplicationProjects() { |
| return getAvailableApplicationProjects(false); |
| } |
| |
| public static Map<String,IProject> getAvailableApplicationProjects(boolean reload) { |
| boolean initial = (reload || osbpProductProjects.isEmpty() || sInstance == null); |
| if (initial) { |
| availableProductProjects.clear(); |
| for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) { |
| if (project.isOpen()) { |
| IResource resource = ProductConfigurationPrefs.getPrefsFile(project); |
| if ((resource != null) && resource.exists()) { |
| availableProductProjects.put(project.getName(), project); |
| } |
| } |
| } |
| osbpProductProjects.clear(); |
| osbpProductProjects.putAll(availableProductProjects); |
| osbpProductProjects.put(ProductConfiguration.WORKSPACE_NAME, null); |
| } |
| return availableProductProjects; |
| } |
| |
| public static String[][] getProjectNames() { |
| getAvailableApplicationProjects(); |
| String[][] namesValues = new String[osbpProductProjects.size()][2]; |
| namesValues[0][0] = ProductConfiguration.WORKSPACE_NAME; |
| namesValues[0][1] = ProductConfiguration.WORKSPACE_NAME; |
| int i = 1; |
| for (String name : osbpProductProjects.keySet()) { |
| if (!name.equals(ProductConfiguration.WORKSPACE_NAME)) { |
| namesValues[i][0] = name; |
| namesValues[i][1] = name; |
| i++; |
| } |
| } |
| return namesValues; |
| } |
| |
| public ProductConfigurationPrefs getProductConfigurationPrefs() { |
| return prefs; |
| } |
| |
| public IProject getProject() { |
| return prefs.getProject(); |
| } |
| |
| private boolean showLanguageSelectInRespectiveLocaleOnPages() { |
| return false; // showLanguageSelectInRespectiveLocale(); |
| } |
| |
| public void sortLocalesOnDisplayNameOnPages(Locale[] locales) { |
| LocaleUtils.sortLocalesOnDisplayName(locales, showLanguageSelectInRespectiveLocaleOnPages()); |
| } |
| |
| private void setProductConfigurationPrefs(ProductConfigurationPrefs prefs) { |
| LOGGER.error(prefs.getInformation()+" # now actual product configuration"); |
| this.prefs = prefs; |
| this.prefs.forceReloadConfiguration(); |
| for (APreferencePage listener : prefsChangedListener) { |
| listener.productConfigurationPrefsChanged(); |
| } |
| } |
| |
| public void addProductConfigurationPrefsChangedListener(APreferencePage listener) { |
| prefsChangedListener.add(listener); |
| } |
| |
| public void removeProductConfigurationPrefsChangedListener(APreferencePage listener) { |
| prefsChangedListener.remove(listener); |
| if (prefsChangedListener.isEmpty()) { |
| sInstance = null; |
| } |
| } |
| |
| public final boolean isWorkspaceSelected() { |
| if (prefs != null) { |
| return ProductConfiguration.WORKSPACE_NAME.equals(prefs.getName()); |
| } |
| else { |
| return true; |
| } |
| } |
| |
| |
| public final void selectOsbpProductProject(IProject project) { |
| if (osbpProductProjects.containsValue(project)) { |
| selectOsbpProductProject(project.getName()); |
| } |
| else { |
| selectOsbpProductProject(ProductConfiguration.WORKSPACE_NAME); |
| } |
| } |
| |
| public final void selectOsbpProductProject(String name) { |
| IProject project = osbpProductProjects.get(name); |
| IScopeContext scopeContext = null; |
| ProductConfigurationPrefs prefs = null; |
| if (project != null) { |
| scopeContext = new ProductProjectScope(project); |
| } |
| if (scopeContext instanceof ProductProjectScope) { |
| prefs = new ProductConfigurationPrefs(name, scopeContext, project); |
| } |
| else if (scopeContext != null) { |
| prefs = new ProductConfigurationPrefs(name, scopeContext); |
| } |
| if (prefs != null) { |
| setProductConfigurationPrefs(prefs); |
| } |
| else { |
| setProductConfigurationPrefs(ProductConfiguration.prefs()); |
| } |
| } |
| |
| public final static ProductConfigurationStore instance() { |
| getProjectNames(); |
| if (sInstance == null) { |
| sInstance = new ProductConfigurationStore(ProductConfiguration.prefs()); |
| } |
| return sInstance; |
| } |
| |
| protected ProductConfigurationStore(ProductConfigurationPrefs prefs) { |
| defaultPrefs = new ProductConfigurationDefaultPrefs(); |
| this.prefs = prefs; |
| } |
| |
| public String[][] getDataSourcesSelectItems() { |
| String[] dataSourceNames = new TreeSet<String>(prefs.getDataSourceNames()).toArray(new String[0]); |
| String[][] namesValues = new String[dataSourceNames.length][2]; |
| for (int i = 0; i < dataSourceNames.length; i++) { |
| namesValues[i][0] = dataSourceNames[i]; |
| namesValues[i][1] = dataSourceNames[i]; |
| } |
| return namesValues; |
| } |
| |
| @Override |
| public boolean getBoolean(String name) { |
| return getBoolean(prefs, name); |
| } |
| |
| private boolean getBoolean(IProductConfigurationPrefs prefsUsed, String name) { |
| switch (Preference.by(name)) { |
| case LOCALIZATION_AUTOCREATE: return prefsUsed.willLanguagesAutocreate(); |
| // case LOCALIZATION_AUTOTRANSLATE: return prefsUsed.isLanguagesAutotranslate(); |
| case LOCALIZATION_SHOW_SELECT_IN_RESPECTIVE_LOCALE: return prefsUsed.showLanguageSelectInRespectiveLocale(); |
| case AUTHENTICATION_AUTOLOGIN: return prefsUsed.hasAutoLogin(); |
| case AUTHENTICATION_ENCRYPT_PASSWORDS: return prefsUsed.hasEncryptPasswords(); |
| case AUTHENTICATION_NO_REMEMBER_ME: return prefsUsed.hasNoRememberMe(); |
| case AUTHENTICATION_VIA_USERNAME: return prefsUsed.getIdentifyByUsername(); |
| case EMAIL_SSL_ON_CONNECT: return prefsUsed.isEmailUseSslOnConnect(); |
| case DEMO_TOOLS_LANGUAGE: return prefsUsed.hasDemoToolsLanguage(); |
| case DEMO_TOOLS_STRATEGY: return prefsUsed.hasDemoToolsStrategy(); |
| case DEMO_TOOLS_THEME: return prefsUsed.hasDemoToolsTheme(); |
| case DEMO_TOOLS_PRINTSERVICE: return prefsUsed.hasToolsPrintService(); |
| case PROJECT_WIZARD_ABSOLUTE_LOCATION: return prefsUsed.projectWizardUsesAbsoluteLocation(); |
| case BPM_ENGINE_HIBERNATE_SHOW_SQL: return prefsUsed.isBpmEngineHibernateShowSql(); |
| case BPM_ENGINE_HIBERNATE_FORMAT_SQL: return prefsUsed.isBpmEngineHibernateFormatSql(); |
| } |
| LOGGER.error("no Product Configuration boolean attribute "+name+" found"); |
| return false; |
| } |
| |
| @Override |
| public void setValue(String name, boolean value) { |
| switch (Preference.by(name)) { |
| case LOCALIZATION_AUTOCREATE: prefs.setLanguagesAutocreate(value); return; |
| // case LOCALIZATION_AUTOTRANSLATE: prefs.setLanguagesAutotranslate(value);return; |
| case LOCALIZATION_SHOW_SELECT_IN_RESPECTIVE_LOCALE: prefs.setShowLanguageSelectInRespectiveLocale(value); return; |
| case AUTHENTICATION_AUTOLOGIN: prefs.setAutoLogin(value); return; |
| case AUTHENTICATION_ENCRYPT_PASSWORDS: prefs.setEncryptPasswords(value); return; |
| case AUTHENTICATION_NO_REMEMBER_ME: prefs.setNoRememberMe(value); return; |
| case AUTHENTICATION_VIA_USERNAME: prefs.setIdentifyByUsername(value); return; |
| case EMAIL_SSL_ON_CONNECT: prefs.setEmailUseSslOnConnect(value); return; |
| case DEMO_TOOLS_LANGUAGE: prefs.setDemoToolsLanguage(value); return; |
| case DEMO_TOOLS_STRATEGY: prefs.setDemoToolsStrategy(value); return; |
| case DEMO_TOOLS_THEME: prefs.setDemoToolsTheme(value); return; |
| case DEMO_TOOLS_PRINTSERVICE: prefs.setToolsPrintService(value); return; |
| case PROJECT_WIZARD_ABSOLUTE_LOCATION: prefs.setProjectWizardUsingAbsoluteLocation(value); return; |
| case BPM_ENGINE_HIBERNATE_SHOW_SQL: prefs.setBpmEngineHibernateShowSql(value); return; |
| case BPM_ENGINE_HIBERNATE_FORMAT_SQL: prefs.setBpmEngineHibernateFormatSql(value); return; |
| } |
| LOGGER.error("no Product Configuration boolean attribute "+name+" found, could not set "+value); |
| } |
| |
| @Override |
| public int getInt(String name) { |
| return getInt(prefs, name); |
| } |
| |
| private int getInt(IProductConfigurationPrefs prefsUsed, String name) { |
| switch (Preference.by(name)) { |
| case ACTIVEMQ_BROKER_PORT: return prefsUsed.getActiveMqBrokerServerPort(); |
| case BPM_ENGINE_PORT: return prefsUsed.getBpmServerPort(); |
| case BPM_ENGINE_TIMEOUT: return prefsUsed.getBpmResponseTimeout(); |
| case EMAIL_SMTP_PORT: return prefsUsed.getEmailSmtpPort(); |
| case DTO_REALM_PORTAL_ID: return prefsUsed.getDtoRealmPortalId(); |
| case LDAP_REALM_PORTAL_ID: return prefsUsed.getLdapRealmPortalId(); |
| case AUTHENTICATION_MAX_LOGIN_ATTEMPS: return prefsUsed.getMaxLoginAttempts(); |
| case HYBRID_AUTH_SERVICE_PORT: return prefsUsed.getAuthRESTfulPort(); |
| case HYBRID_REFRESH_PERSPECTIVE_ACTIVE: return prefsUsed.getHybridRefresherMilliSecsActive(); |
| case HYBRID_REFRESH_PERSPECTIVE_INACTIVE: return prefsUsed.getHybridRefresherMilliSecsInactive(); |
| case BPM_ENGINE_HIBERNATE_MAX_FETCH_DEPTH: return prefsUsed.getBpmEngineHibernateMaxFetchDepth(); |
| } |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public void setValue(String name, int value) { |
| switch (Preference.by(name)) { |
| case ACTIVEMQ_BROKER_PORT: prefs.setActiveMqBrokerServerPort(value); return; |
| case BPM_ENGINE_PORT: prefs.setBpmServerPort(value); return; |
| case BPM_ENGINE_TIMEOUT: prefs.setBpmResponseTimeout(value); return; |
| case EMAIL_SMTP_PORT: prefs.setEmailSmtpPort(value); return; |
| case DTO_REALM_PORTAL_ID: prefs.setDtoRealmPortalId(value); return; |
| case LDAP_REALM_PORTAL_ID: prefs.setLdapRealmPortalId(value); return; |
| case AUTHENTICATION_MAX_LOGIN_ATTEMPS: prefs.setMaxLoginAttempts(value); return; |
| case HYBRID_AUTH_SERVICE_PORT: prefs.setAuthRESTfulApiPort(value); return; |
| case HYBRID_REFRESH_PERSPECTIVE_ACTIVE: prefs.setHybridRefresherMilliSecsActive(value); return; |
| case HYBRID_REFRESH_PERSPECTIVE_INACTIVE: prefs.setHybridRefresherMilliSecsInactive(value); return; |
| case BPM_ENGINE_HIBERNATE_MAX_FETCH_DEPTH: prefs.setBpmEngineHibernateMaxFetchDepth(value); return; |
| } |
| LOGGER.error("no Product Configuration integer attribute "+name+" found, could not set "+value); |
| } |
| |
| public String getString(Preference preference) { |
| return getString(preference.toString()); |
| } |
| |
| @Override |
| public String getString(String name) { |
| return getString(prefs, name); |
| } |
| |
| private String getDesktopUrlPath(String businessBundleClassName) { |
| return getUrlPath(businessBundleClassName, false); |
| } |
| |
| private String getMobileUrlPath(String businessBundleClassName) { |
| return getUrlPath(businessBundleClassName, true); |
| } |
| |
| private final static String JETTY_PARAMETER_PORT = "-Dorg.eclipse.osbp.ecview.jetty.port="; |
| private final static String JETTY_PARAMETER_PATH = "-Dorg.eclipse.osbp.ecview.jetty.contextpath="; |
| |
| private String getUrlPath(String businessBundleClassName, boolean asMobile) { |
| String urlPath = ""; |
| if ((businessBundleClassName != null) && !businessBundleClassName.isEmpty()) { |
| IPath path = prefs.getProjectPath(); |
| if (path != null) { |
| path = path.append(businessBundleClassName+".product"); |
| File file = path.toFile(); |
| if (file.exists() && file.isFile()) { |
| try { |
| String content; |
| InputStream fisSourceFile = new FileInputStream(file); |
| content = IOUtils.toString(fisSourceFile, "UTF-8"); |
| if (content != null) { |
| content = content.replace("\r", " "); |
| content = content.replace("\n", " "); |
| content = content.replace("\n", " "); |
| String portNo = ""; |
| String baseUrl = ""; |
| if (content.contains(JETTY_PARAMETER_PORT)) { |
| portNo = content.substring(content.indexOf(JETTY_PARAMETER_PORT)+JETTY_PARAMETER_PORT.length()).split(" ")[0]; |
| } |
| if (content.contains(JETTY_PARAMETER_PATH)) { |
| baseUrl = content.substring(content.indexOf(JETTY_PARAMETER_PATH)+JETTY_PARAMETER_PATH.length()).split(" ")[0]; |
| } |
| if (!portNo.isEmpty() && !baseUrl.isEmpty()) { |
| urlPath = "localhost:"+portNo+baseUrl; |
| } |
| } |
| } |
| catch (Exception e) {} |
| } |
| } |
| } |
| if (!urlPath.isEmpty() && asMobile) { |
| urlPath += "mobile"; |
| } |
| return urlPath; |
| } |
| |
| public String getProductFileName() { |
| String businessBundleClassName = prefs.getBusinessBundleClassNameReadOnly(); |
| if (!businessBundleClassName.isEmpty()) { |
| businessBundleClassName += ".product"; |
| } |
| return businessBundleClassName; |
| } |
| |
| private String getString(IProductConfigurationPrefs prefsUsed, String name) { |
| switch (Preference.by(name)) { |
| case FILE_LOCATION: return prefs.getPreferencesFile(); |
| case FILE_EDITOR: return prefs.getPreferencesFile(); |
| case FILE_NAME: return ProductConfigurationPrefs.PRODUCT_PREFERENCES; |
| case PRODUCT_FILE: { |
| String businessBundleClassName = prefs.getBusinessBundleClassNameReadOnly(); |
| if (!businessBundleClassName.isEmpty()) { |
| businessBundleClassName += ".product"; |
| } |
| return businessBundleClassName; |
| } |
| case DESKTOP_URL_PATH: return getDesktopUrlPath(prefs.getBusinessBundleClassNameReadOnly()); |
| case MOBILE_URL_PATH: return getMobileUrlPath(prefs.getBusinessBundleClassNameReadOnly()); |
| case SHOW_PRODUCT_CONFIGURATION: return prefs.getName(); |
| case SELECT_PRODUCT_CONFIGURATION: return prefs.getName(); |
| // |
| case ACTIVEMQ_BROKER_SERVER: return prefsUsed.getActiveMqBrokerServerName(); |
| case BPM_ENGINE_SERVER: return prefsUsed.getBpmServerIp(); |
| case BPM_ENGINE_HIBERNATE_SCHEMA_NAME: return prefsUsed.getBpmEngineHibernateSchemaName(prefsUsed.getBpmEnginePersistenceUnit()); |
| case EMAIL_SERVER: return prefsUsed.getEmailServerIp(); |
| case AUTHENTICATION_ADMIN_EMAIL: return prefsUsed.getAdminEmail(); |
| case AUTHENTICATION_ADMIN_USERNAME: return prefsUsed.getAdminEmailUsername(); |
| case AUTHENTICATION_ADMIN_PASSWORD: return prefsUsed.getAdminEmailPassword(); |
| case AUTHENTICATION_ORGANIZATION_ID: return prefsUsed.getAuthenticationOrganizationId(); |
| // case DATASOURCE_AUTHENTICATION: return prefsUsed.getDataSourceNameForAuthentication(); |
| // case DATASOURCE_BLOB: return prefsUsed.getDataSourceNameForBLOB(); |
| // case DATASOURCE_BPM: return prefsUsed.getDataSourceNameForBPM(); |
| // case DATASOURCE_BUSINESSDATA: return prefsUsed.getDataSourceNameForBusinessData(); |
| case EXCHANGE_RATES_EURO_BASED_DAILY: return prefsUsed.getEuroXRefRatesURLDaily(); |
| case EXCHANGE_RATES_EURO_BASED_PREVIOUS: return prefsUsed.getEuroXRefRatesURLPrevious(); |
| case JAVA_POS_CONFIGURATION: return prefsUsed.getJavaPosConfiguration(); |
| case FILE_CONTENT: { |
| Stream<String> lines=null; |
| try { |
| lines = Files.lines(Paths.get(getString(Preference.FILE_LOCATION), ".settings", getString(Preference.FILE_NAME)+".prefs")); |
| return StringUtils.join(lines.toArray(), "\r\n"); |
| } catch (IOException e) { |
| return ""; |
| } finally { |
| if( lines != null) |
| lines.close(); |
| } |
| } |
| // case LOCALIZATION_GOOGLE_API_KEY: return prefsUsed.getLanguagesGoogleApiKey(); |
| // case LOCALIZATION_GOOGLE_HTTP_REFERRER: return prefsUsed.getLanguagesGoogleHttpReferrer(); |
| case LOCALIZATION_SUPPORTED_LANGUAGES: { |
| HashSet<Locale> helper = new HashSet<>(); |
| for (Locale locale : prefsUsed.getLanguages().values()) { |
| if (locale != null) { |
| helper.add(locale); |
| } |
| } |
| Locale[] locales = helper.toArray(new Locale[0]); |
| sortLocalesOnDisplayNameOnPages(locales); |
| String retcode = null; |
| for (Locale locale : locales) { |
| if (locale != null) { |
| if (retcode == null) { |
| retcode = getLanguageDisplayName(locale, showLanguageSelectInRespectiveLocaleOnPages()); |
| } |
| else { |
| retcode += CONFIGURATION_ITEM_SEPARATOR+getLanguageDisplayName(locale, showLanguageSelectInRespectiveLocaleOnPages()); |
| } |
| } |
| } |
| return retcode; |
| } |
| case DATASOURCES: return DataSourceConfiguration.serialize(prefsUsed.getDataSources()); |
| case PERSISTENCE_UNITS: return PersistenceUnitConfiguration.serialize(prefsUsed.getPersistenceUnits()); |
| case LDAP_CONTEXT_FACTORY_URL: return prefsUsed.getLdapContextFactoryUrl(); |
| case LDAP_USER_DN_TEMPLATE: return prefsUsed.getLdapUserDnTemplate(); |
| } |
| LOGGER.error("no Product Configuration string attribute "+name+" found"); |
| return ""; |
| } |
| |
| public final String getLanguageDisplayName(Locale locale) { |
| return getLanguageDisplayName(locale, prefs.showLanguageSelectInRespectiveLocale()); |
| } |
| |
| public final String getLanguageDisplayName(Locale locale, boolean showLanguageSelectInRespectiveLocale) { |
| return LocaleUtils.getDisplayName(locale, showLanguageSelectInRespectiveLocale)+" "+LANGUAGE_DESCRIPTION_SEPARATOR+" "+locale.toString(); |
| } |
| |
| public final static String CONFIGURATION_ITEM_SEPARATOR = ";"; |
| public final static String LANGUAGE_DESCRIPTION_SEPARATOR = "="; |
| |
| @Override |
| public void setValue(String name, String value) { |
| switch (Preference.by(name)) { |
| case SHOW_PRODUCT_CONFIGURATION: /* NOOP */ return; |
| case SELECT_PRODUCT_CONFIGURATION: selectOsbpProductProject(value); return; |
| case ACTIVEMQ_BROKER_SERVER: prefs.setActiveMqBrokerServerName(value); return; |
| case BPM_ENGINE_SERVER: prefs.setBpmServerIp(value); return; |
| case BPM_ENGINE_HIBERNATE_SCHEMA_NAME: prefs.setBpmEngineHibernateSchemaName(value); return; |
| case EMAIL_SERVER: prefs.setEmailServerIp(value); return; |
| case AUTHENTICATION_ADMIN_EMAIL: prefs.setAdminEmail(value); return; |
| case AUTHENTICATION_ADMIN_USERNAME: prefs.setAdminEmailUsername(value); return; |
| case AUTHENTICATION_ADMIN_PASSWORD: prefs.setAdminEmailPassword(value); return; |
| case AUTHENTICATION_ORGANIZATION_ID: prefs.setAuthenticationOrganizationId(value); return; |
| //case AUTHENTICATION_LDAP_DN_TEMPLATE: break; |
| //case AUTHENTICATION_LDAP_SERVER: break; |
| // case DATASOURCE_AUTHENTICATION: prefs.setDataSourceForAuthentication(value); return; |
| // case DATASOURCE_BLOB: prefs.setDataSourceForBLOB(value); return; |
| // case DATASOURCE_BPM: prefs.setDataSourceForBPM(value); return; |
| // case DATASOURCE_BUSINESSDATA: prefs.setDataSourceForBusinessData(value); return; |
| case EXCHANGE_RATES_EURO_BASED_DAILY: prefs.setEuroForeignExchangeReferenceRatesURLDaily(value); return; |
| case EXCHANGE_RATES_EURO_BASED_PREVIOUS: prefs.setEuroForeignExchangeReferenceRatesURLPrevious(value); return; |
| case JAVA_POS_CONFIGURATION: prefs.setJavaPosConfiguration(value); return; |
| case FILE_CONTENT: return; |
| case FILE_LOCATION: return; |
| case FILE_NAME: return; |
| // case LOCALIZATION_GOOGLE_API_KEY: prefs.setLanguagesGoogleApiKey(value); return; |
| // case LOCALIZATION_GOOGLE_HTTP_REFERRER: prefs.setLanguagesGoogleHttpReferrer(value); return; |
| case LOCALIZATION_SUPPORTED_LANGUAGES: { |
| Map<String, Locale> locales = new HashMap<String, Locale>(); |
| String[] localesISO = value.split(CONFIGURATION_ITEM_SEPARATOR); |
| for(String localeISO : localesISO) { |
| try { |
| Locale locale = null; |
| String[] lParts = localeISO.split(LANGUAGE_DESCRIPTION_SEPARATOR)[1].trim().split("_"); |
| if (lParts.length == 1) { |
| locale = new Locale(lParts[0]); |
| } else if (lParts.length == 2) { |
| locale = new Locale(lParts[0], lParts[1]); |
| } else if (lParts.length == 3) { |
| locale = new Locale(lParts[0], lParts[1], lParts[2]); |
| } |
| locales.put(localeISO, locale); |
| } |
| catch (Exception e) { |
| LOGGER.error("could not set lanuage "+localeISO, e); |
| } |
| } |
| prefs.setLanguages(locales); |
| return; |
| } |
| case DATASOURCES: prefs.setDataSources(DataSourceConfiguration.deserialize(value)); return; |
| case PERSISTENCE_UNITS: prefs.setPersistenceUnits(PersistenceUnitConfiguration.deserialize(value)); return; |
| case LDAP_CONTEXT_FACTORY_URL: prefs.setLdapContextFactoryUrl(value); return; |
| case LDAP_USER_DN_TEMPLATE: prefs.setLdapUserDnTemplate(value); return; |
| } |
| LOGGER.error("no Product Configuration string attribute "+name+" found, could not set "+value); |
| } |
| |
| // --- unused methods --- |
| |
| @Override |
| public void addPropertyChangeListener(IPropertyChangeListener listener) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public boolean contains(String name) { |
| // TODO Auto-generated method stub |
| return false; |
| } |
| |
| @Override |
| public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public boolean getDefaultBoolean(String name) { |
| return getBoolean(defaultPrefs, name); |
| } |
| |
| @Override |
| public double getDefaultDouble(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public float getDefaultFloat(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public int getDefaultInt(String name) { |
| return getInt(defaultPrefs, name); |
| } |
| |
| @Override |
| public long getDefaultLong(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public String getDefaultString(String name) { |
| return getString(defaultPrefs, name); |
| } |
| |
| @Override |
| public double getDouble(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public float getFloat(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public long getLong(String name) { |
| LOGGER.error("no Product Configuration integer attribute "+name+" found"); |
| return 0; |
| } |
| |
| @Override |
| public boolean isDefault(String name) { |
| return false; |
| } |
| |
| @Override |
| public boolean needsSaving() { |
| return false; |
| } |
| |
| @Override |
| public void putValue(String name, String value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void removePropertyChangeListener(IPropertyChangeListener listener) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, double value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, float value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, int value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, long value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, String defaultObject) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setDefault(String name, boolean value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setToDefault(String name) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setValue(String name, double value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setValue(String name, float value) { |
| // TODO Auto-generated method stub |
| } |
| |
| @Override |
| public void setValue(String name, long value) { |
| // TODO Auto-generated method stub |
| } |
| } |