// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.designer.core.ui.projectsetting; import java.util.List; import org.eclipse.gef.commands.CommandStack; import org.eclipse.jface.preference.IPreferenceStore; import org.talend.commons.exception.PersistenceException; import org.talend.commons.ui.runtime.exception.ExceptionHandler; import org.talend.core.CorePlugin; import org.talend.core.context.Context; import org.talend.core.context.RepositoryContext; import org.talend.core.language.ECodeLanguage; import org.talend.core.language.LanguageManager; import org.talend.core.model.general.Project; import org.talend.core.model.metadata.builder.connection.Connection; import org.talend.core.model.param.ERepositoryCategoryType; import org.talend.core.model.process.EComponentCategory; import org.talend.core.model.process.EParameterFieldType; import org.talend.core.model.process.Element; import org.talend.core.model.process.IElement; import org.talend.core.model.process.IElementParameter; import org.talend.core.model.process.IProcess2; import org.talend.core.model.properties.ConnectionItem; import org.talend.core.model.properties.ImplicitContextSettings; import org.talend.core.model.properties.Item; import org.talend.core.model.properties.PropertiesFactory; import org.talend.core.model.properties.Property; import org.talend.core.model.properties.StatAndLogsSettings; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.designer.core.DesignerPlugin; import org.talend.designer.core.model.components.EParameterName; import org.talend.designer.core.model.components.ElementParameter; import org.talend.designer.core.model.components.EmfComponent; import org.talend.designer.core.model.process.jobsettings.JobSettingsConstants; import org.talend.designer.core.model.process.jobsettings.JobSettingsConstants.ContextLoadInfo; import org.talend.designer.core.model.process.statsandlogs.StatsAndLogsManager; import org.talend.designer.core.model.utils.emf.talendfile.ParametersType; import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory; import org.talend.designer.core.ui.AbstractMultiPageTalendEditor; import org.talend.designer.core.ui.editor.cmd.ChangeValuesFromRepository; import org.talend.designer.core.ui.preferences.StatsAndLogsConstants; import org.talend.designer.core.ui.views.jobsettings.ExtraComposite; import org.talend.designer.core.ui.views.jobsettings.ImplicitContextLoadHelper; import org.talend.designer.core.ui.views.statsandlogs.StatsAndLogsComposite; import org.talend.repository.ProjectManager; import org.talend.repository.model.IProxyRepositoryFactory; /** * DOC aimingchen class global comment. Detailled comment */ public class ProjectSettingManager extends Utils { private static final String IMPLICIT_GROUP = "IMPLICIT_GROUP"; //$NON-NLS-1$ // public static final String CONNECTION_ITEM_LABEL = "_CONNECTION_ITEM_LABEL"; private static final String CONTEXTLOAD_CONDITION = EParameterName.IMPLICIT_TCONTEXTLOAD.getName() + " == 'true'"; //$NON-NLS-1$ private static IPreferenceStore preferenceStore = DesignerPlugin.getDefault().getPreferenceStore(); private static String languagePrefix = LanguageManager.getCurrentLanguage().toString() + "_"; //$NON-NLS-1$ public static void saveProject() { RepositoryContext repositoryContext = (RepositoryContext) CorePlugin.getContext().getProperty( Context.REPOSITORY_CONTEXT_KEY); IProxyRepositoryFactory prf = CorePlugin.getDefault().getProxyRepositoryFactory(); try { prf.saveProject(repositoryContext.getProject()); } catch (Exception e) { ExceptionHandler.process(e); } } /** * * Load ImplicitContextLoad Preference setting to Project only Load Once * * @param pro */ private static void loadImplicitContextLoadPreferenceToProject(Project pro) { TalendFileFactory talendF = TalendFileFactory.eINSTANCE; ImplicitContextSettings implicit = PropertiesFactory.eINSTANCE.createImplicitContextSettings(); pro.getEmfProject().setImplicitContextSettings(implicit); implicit.setParameters(talendF.createParametersType()); ParametersType pType = implicit.getParameters(); IElement elem = pro.getInitialContextLoad(); if (elem == null) { elem = new ImplicitContextLoadElement(); ProjectSettingManager.createImplicitContextLoadParameters((ImplicitContextLoadElement) elem); pro.setInitialContextLoad(elem); } ElementParameter2ParameterType.saveElementParameters((Element) elem, pType); } /** * * create implicitContextLoad Element for project * * @param pro * @return */ public static Element createImplicitContextLoadElement(Project pro) { ImplicitContextSettings implicit = pro.getEmfProject().getImplicitContextSettings(); if (implicit == null) { loadImplicitContextLoadPreferenceToProject(pro); } Element elem = (Element) pro.getInitialContextLoad(); if (elem == null) { elem = new ImplicitContextLoadElement(); ProjectSettingManager.createImplicitContextLoadParameters((ImplicitContextLoadElement) elem); pro.setInitialContextLoad(elem); } return elem; } /** * * create StatsAndLogsElement for project * * @param pro * @return */ public static Element createStatsAndLogsElement(Project pro) { StatAndLogsSettings stats = pro.getEmfProject().getStatAndLogsSettings(); // load Project's StatsAndLogsSetting to StatsAndLogsElement if (stats == null) { StatsAndLogsHelper.loadPreferenceToProject(pro); } else { // 10927 if (stats.getParameters() == null) { stats.setParameters(TalendFileFactory.eINSTANCE.createParametersType()); } } Element elem = (Element) pro.getStatsAndLog(); if (elem == null) { elem = new StatsAndLogsElement(); StatsAndLogsHelper.createStatsAndLogsParameters((StatsAndLogsElement) elem); pro.setStatsAndLog(elem); } return elem; } public static void saveStatsAndLogToProjectSettings(Element process, Project pro) { createStatsAndLogsElement(pro); ParametersType stats = pro.getEmfProject().getStatAndLogsSettings().getParameters(); // load the project settings to process ElementParameter2ParameterType.saveElementParameters(process, stats); saveProject(); } public static void saveImplicitValuesToProjectSettings(Element process, Project pro) { createImplicitContextLoadElement(pro); ParametersType implicitType = pro.getEmfProject().getImplicitContextSettings().getParameters(); // load the project settings to process ElementParameter2ParameterType.saveElementParameters(process, implicitType); saveProject(); } public static void reloadStatsAndLogFromProjectSettings(Element process, Project pro, StatsAndLogsComposite statsComposite) { createStatsAndLogsElement(pro); ParametersType stats = pro.getEmfProject().getStatAndLogsSettings().getParameters(); // load the project settings to process ElementParameter2ParameterType.loadElementParameters(process, stats, EParameterName.PROPERTY_TYPE.getName() + ":" //$NON-NLS-N$ + EParameterName.PROPERTY_TYPE.getName()); // change repository item // TODO // StatsAndLogsHelper.changeRepositoryConnection(process, statsComposite); } public static void reloadStatsAndLogFromProjectSettings(ParametersType processType, Project pro) { createStatsAndLogsElement(pro); ParametersType stats = pro.getEmfProject().getStatAndLogsSettings().getParameters(); ElementParameter2ParameterType.loadElementParameters(processType, stats, EParameterName.STATANDLOG_USE_PROJECT_SETTINGS); } public static void reloadImplicitValuesFromProjectSettings(Element process, Project pro, ExtraComposite extraComposite) { createImplicitContextLoadElement(pro); ParametersType implicitType = pro.getEmfProject().getImplicitContextSettings().getParameters(); // load the project settings to process ElementParameter2ParameterType.loadElementParameters(process, implicitType, JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTY_TYPE.getName()) + ":" + EParameterName.PROPERTY_TYPE.getName()); // TODO // changeImplicitContextRepositoryItem(process, extraComposite); } public static void reloadImplicitValuesFromProjectSettings(ParametersType processType, Project pro) { createImplicitContextLoadElement(pro); ParametersType implicitType = pro.getEmfProject().getImplicitContextSettings().getParameters(); ElementParameter2ParameterType.loadElementParameters(processType, implicitType, EParameterName.IMPLICITCONTEXT_USE_PROJECT_SETTINGS); } static void changeImplicitContextRepositoryItem(Element process, ExtraComposite extraComposite) { // change repository item String propertyType = (String) ElementParameter2ParameterType.getParameterValue(process, JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTY_TYPE.getName())); String id = (String) (ElementParameter2ParameterType.getParameterValue(process, EParameterName.PROPERTY_TYPE.getName())); Connection repositoryConnection = null; /* 16969 */ IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance(); Item item = null; try { IRepositoryViewObject repobj = factory.getLastVersion(id); if (repobj != null) { Property tmpproperty = repobj.getProperty(); if (tmpproperty != null) { item = tmpproperty.getItem(); } } } catch (PersistenceException e) { ExceptionHandler.process(e); } if (item != null && item instanceof ConnectionItem) { repositoryConnection = ((ConnectionItem) item).getConnection(); } else { repositoryConnection = null; } ChangeValuesFromRepository cmd1 = new ChangeValuesFromRepository(process, repositoryConnection, ImplicitContextLoadHelper.getExtraParameterName(EParameterName.PROPERTY_TYPE) + ":" + EParameterName.PROPERTY_TYPE.getName(), propertyType); //$NON-NLS-1$ ChangeValuesFromRepository cmd2 = new ChangeValuesFromRepository(process, repositoryConnection, ImplicitContextLoadHelper.getExtraParameterName(EParameterName.PROPERTY_TYPE) + ":" + EParameterName.REPOSITORY_PROPERTY_TYPE.getName(), id); //$NON-NLS-1$ AbstractMultiPageTalendEditor part = (AbstractMultiPageTalendEditor) ((IProcess2) process).getEditor(); if (part instanceof AbstractMultiPageTalendEditor) { Object adapter = (part).getTalendEditor().getAdapter(CommandStack.class); if (adapter != null) { CommandStack commandStack = ((CommandStack) adapter); commandStack.execute(cmd1); commandStack.execute(cmd2); } } } /** * * when create a new job default use project settings * * @param pItem */ public static void defaultUseProjectSetting(org.talend.designer.core.ui.editor.process.Process process) { if (process == null) return; ImplicitContextSettings implicit = ProjectManager.getInstance().getCurrentProject().getEmfProject() .getImplicitContextSettings(); Boolean bImplicit = false; if (implicit != null) { String v = ElementParameter2ParameterType.getParameterValue(implicit.getParameters(), EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getName()); if (v != null && Boolean.valueOf(v)) { bImplicit = Boolean.valueOf(v); } } if (bImplicit) { ElementParameter2ParameterType.setParameterValue(process, EParameterName.IMPLICITCONTEXT_USE_PROJECT_SETTINGS.getName(), bImplicit); reloadImplicitValuesFromProjectSettings(process, ProjectManager.getInstance().getCurrentProject(), null); } // stat and log StatAndLogsSettings stat = ProjectManager.getInstance().getCurrentProject().getEmfProject().getStatAndLogsSettings(); Boolean bStat = false; if (stat != null) { String v = ElementParameter2ParameterType.getParameterValue(stat.getParameters(), EParameterName.STATS_DEFAULT_PROJECTSETTING.getName()); if (v != null || Boolean.valueOf(v)) { bStat = Boolean.valueOf(v); } } if (bStat) { ElementParameter2ParameterType.setParameterValue(process, EParameterName.STATANDLOG_USE_PROJECT_SETTINGS.getName(), bStat); reloadStatsAndLogFromProjectSettings(process, ProjectManager.getInstance().getCurrentProject(), null); } } /** * * create parameter for ImplicitContextLoad. */ private static void createImplicitContextLoadParameters(Element elem) { ElementParameter param; List<IElementParameter> paramList = (List<IElementParameter>) elem.getElementParameters(); param = new ElementParameter(elem); param.setName(EParameterName.UPDATE_COMPONENTS.getName()); param.setValue(Boolean.FALSE); param.setDisplayName(EParameterName.UPDATE_COMPONENTS.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.STATSANDLOGS); param.setNumRow(1); param.setReadOnly(true); param.setRequired(false); param.setShow(false); paramList.add(param); param = new ElementParameter(elem); param.setName(EParameterName.IMPLICIT_TCONTEXTLOAD.getName()); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.IMPLICIT_TCONTEXTLOAD))); param.setGroupDisplayName(EParameterName.IMPLICIT_TCONTEXTLOAD.getDisplayName()); param.setDisplayName(EParameterName.IMPLICIT_TCONTEXTLOAD.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setGroup(IMPLICIT_GROUP); param.setNumRow(3); param.setShow(true); paramList.add(param); param = new ElementParameter(elem); param.setName(EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getName()); param.setValue(Boolean.TRUE); param.setGroupDisplayName(EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getDisplayName()); param.setDisplayName(EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setGroup(IMPLICIT_GROUP); param.setNumRow(3); param.setShow(false); paramList.add(param); // on files param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.FROM_FILE_FLAG.getName())); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.FROM_FILE_FLAG))); param.setDisplayName(EParameterName.FROM_FILE_FLAG.getDisplayName()); param.setFieldType(EParameterFieldType.RADIO); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(4); param.setShowIf(JobSettingsConstants.addBrackets(CONTEXTLOAD_CONDITION)); param.setGroup(IMPLICIT_GROUP); paramList.add(param); // on database param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.FROM_DATABASE_FLAG.getName())); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.FROM_DATABASE_FLAG))); param.setDisplayName(EParameterName.FROM_DATABASE_FLAG.getDisplayName()); param.setFieldType(EParameterFieldType.RADIO); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(5); param.setShowIf(JobSettingsConstants.addBrackets(CONTEXTLOAD_CONDITION)); param.setGroup(IMPLICIT_GROUP); paramList.add(param); // on file createExtraOnFileParameters(elem); // on database createExtraOnDBParameters(elem); // tContextLoad createExtraContextLoadParameters(elem); } private static void createExtraOnFileParameters(Element elem) { ElementParameter param; List<IElementParameter> paramList = (List<IElementParameter>) elem.getElementParameters(); // // set Implicit tContextLoad file // String fileName = ElementParameterParser.parse(elem, "__COMP_DEFAULT_FILE_DIR__/in.csv"); //$NON-NLS-1$ // IPath path = Path.fromOSString(fileName); // fileName = TalendTextUtils.addQuotes(path.toPortableString()); // set Implicit tContextLoad file param = new ElementParameter(elem); param.setName(EParameterName.IMPLICIT_TCONTEXTLOAD_FILE.getName()); param.setValue(addQuotes(replaceSlash(preferenceStore .getString(getPreferenceName(EParameterName.IMPLICIT_TCONTEXTLOAD_FILE))))); param.setDisplayName(EParameterName.IMPLICIT_TCONTEXTLOAD_FILE.getDisplayName()); param.setFieldType(EParameterFieldType.FILE); param.setCategory(EComponentCategory.EXTRA); param.setGroup(IMPLICIT_GROUP); param.setNumRow(31); String condition = JobSettingsConstants.addBrackets(CONTEXTLOAD_CONDITION) + " and " //$NON-NLS-1$ + JobSettingsConstants.addBrackets(JobSettingsConstants.getExtraParameterName(EParameterName.FROM_FILE_FLAG .getName()) + " == 'true'"); //$NON-NLS-1$ param.setShowIf(condition); paramList.add(param); param = new ElementParameter(elem); param.setName(EParameterName.FIELDSEPARATOR.getName()); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.FIELDSEPARATOR)))); param.setDisplayName(EParameterName.FIELDSEPARATOR.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setGroup(IMPLICIT_GROUP); param.setNumRow(32); param.setShowIf(condition); paramList.add(param); } private static void createExtraOnDBParameters(Element elem) { ElementParameter param; List<IElementParameter> paramList = (List<IElementParameter>) elem.getElementParameters(); // checks current language, if it is perl, set languageType to 0(default value), otherwise to 1. int languageType = 0; if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) { languageType = 1; } final String onDBCondition = JobSettingsConstants.getExtraParameterName(EParameterName.FROM_DATABASE_FLAG.getName()) + " == 'true'"; //$NON-NLS-1$ final String dbCondition = JobSettingsConstants.addBrackets(CONTEXTLOAD_CONDITION) + " and " + JobSettingsConstants.addBrackets(onDBCondition); //$NON-NLS-1$ // property type ElementParameter parentPropertyType = new ElementParameter(elem); parentPropertyType.setName(JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTY_TYPE.getName())); parentPropertyType.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName()); parentPropertyType.setValue(preferenceStore.getString(getPreferenceName(EParameterName.PROPERTY_TYPE))); parentPropertyType.setCategory(EComponentCategory.EXTRA); parentPropertyType.setFieldType(EParameterFieldType.PROPERTY_TYPE); parentPropertyType.setRepositoryValue(ERepositoryCategoryType.DATABASE.getName()); parentPropertyType.setNumRow(41); parentPropertyType.setShowIf(dbCondition); parentPropertyType.setGroup(IMPLICIT_GROUP); paramList.add(parentPropertyType); param = new ElementParameter(elem); param.setName(EParameterName.PROPERTY_TYPE.getName()); param.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName()); param.setListItemsDisplayName(new String[] { EmfComponent.TEXT_BUILTIN, EmfComponent.TEXT_REPOSITORY }); param.setListItemsDisplayCodeName(new String[] { EmfComponent.BUILTIN, EmfComponent.REPOSITORY }); param.setListItemsValue(new String[] { EmfComponent.BUILTIN, EmfComponent.REPOSITORY }); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.PROPERTY_TYPE))); param.setCategory(EComponentCategory.EXTRA); param.setFieldType(EParameterFieldType.TECHNICAL); param.setRepositoryValue(ERepositoryCategoryType.DATABASE.getName()); param.setNumRow(41); param.setShowIf(dbCondition); param.setGroup(IMPLICIT_GROUP); param.setParentParameter(parentPropertyType); // paramList.add(param); // repository property type param = new ElementParameter(elem); param.setName(EParameterName.REPOSITORY_PROPERTY_TYPE.getName()); param.setDisplayName(EParameterName.REPOSITORY_PROPERTY_TYPE.getDisplayName()); param.setListItemsDisplayName(new String[] {}); param.setListItemsValue(new String[] {}); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.REPOSITORY_PROPERTY_TYPE)// + // CONNECTION_ITEM_LABEL )); //$NON-NLS-1$ param.setCategory(EComponentCategory.EXTRA); param.setFieldType(EParameterFieldType.TECHNICAL); param.setShow(false); param.setRequired(true); param.setNumRow(41); param.setGroup(IMPLICIT_GROUP); param.setParentParameter(parentPropertyType); // paramList.add(param); // dbType final String dbTypeName = JobSettingsConstants.getExtraParameterName(EParameterName.DB_TYPE.getName()); param = new ElementParameter(elem); param.setName(dbTypeName); param.setDisplayName(EParameterName.DB_TYPE.getDisplayName()); param.setFieldType(EParameterFieldType.CLOSED_LIST); param.setCategory(EComponentCategory.EXTRA); param.setListItemsDisplayName(StatsAndLogsConstants.DISPLAY_DBNAMES[languageType]); param.setListItemsValue(JobSettingsConstants.DB_INPUT_COMPONENTS[languageType]); param.setListRepositoryItems(StatsAndLogsConstants.REPOSITORY_ITEMS[languageType]); param.setListItemsDisplayCodeName(StatsAndLogsConstants.CODE_LIST[languageType]); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.DB_TYPE))); param.setNumRow(42); param.setRepositoryValue("TYPE"); //$NON-NLS-1$ param.setRequired(true); param.setShowIf(dbCondition); param.setGroup(IMPLICIT_GROUP); paramList.add(param); // dbVersion final String dbVersionName = JobSettingsConstants.getExtraParameterName(EParameterName.DB_VERSION.getName()); param = new ElementParameter(elem); param.setName(dbVersionName); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.DB_VERSION))); param.setDisplayName(EParameterName.DB_VERSION.getDisplayName()); param.setFieldType(EParameterFieldType.CLOSED_LIST); param.setCategory(EComponentCategory.EXTRA); param.setListItemsDisplayName(StatsAndLogsConstants.DB_VERSION_DISPLAY); param.setListItemsValue(StatsAndLogsConstants.DB_VERSION_DRIVER); param.setListItemsDisplayCodeName(StatsAndLogsConstants.DB_VERSION_CODE); param.setNumRow(42); param.setRepositoryValue("DB_VERSION"); //$NON-NLS-1$ param.setRequired(true); param.setShowIf(dbCondition + " and (" + dbTypeName + " == 'OCLE' or " + dbTypeName + " == 'OCLE_OCI' or " + dbTypeName + " =='ACCESS' or " + dbTypeName + " =='MYSQL')"); //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // host param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.HOST.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.HOST)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.HOST.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(43); param.setRepositoryValue("SERVER_NAME"); //$NON-NLS-1$ String dbCon = dbTypeName + " != 'SQLITE'" + " and " + dbTypeName + " != 'ACCESS'" + " and " + dbTypeName + " != 'OCLE_OCI' "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$ //$NON-NLS-5$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // port param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.PORT.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.PORT)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.PORT.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(43); param.setRepositoryValue("PORT"); //$NON-NLS-1$ dbCon = dbTypeName + " != 'SQLITE'" + " and " + dbTypeName + " != 'ACCESS'" + " and " + dbTypeName + " != 'FIREBIRD'" + " and " + dbTypeName + " != 'OCLE_OCI' "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$//$NON-NLS-6$ //$NON-NLS-7$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // dbName param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.DBNAME.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.DBNAME)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.DBNAME.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(44); param.setRepositoryValue("SID"); //$NON-NLS-1$ dbCon = dbTypeName + " != 'SQLITE'" + " and " + dbTypeName + " != 'ACCESS'" + " and " + dbTypeName + " != 'FIREBIRD' " + " and " + dbTypeName + " != 'OCLE_OCI' "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$//$NON-NLS-6$ //$NON-NLS-7$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // local service name param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.LOCAL_SERVICE_NAME.getName())); param.setValue(StatsAndLogsManager.addQuotes("")); param.setDisplayName(EParameterName.LOCAL_SERVICE_NAME.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(44); param.setRepositoryValue("SID"); //$NON-NLS-1$ dbCon = dbTypeName + " == 'OCLE_OCI' "; //$NON-NLS-1$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) { // additional parameters param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTIES.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.PROPERTIES)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.PROPERTIES.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(44); param.setRepositoryValue("PROPERTIES_STRING"); //$NON-NLS-1$ dbCon = dbTypeName + " == 'MSSQL'" + " or " + dbTypeName + " == 'MYSQL'" + " or " + dbTypeName //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + " == 'INFORMIX'" + " or " + dbTypeName + " == 'OCLE'" + " or " + dbTypeName + " == 'OCLE_OCI'" + " or " + dbTypeName + " == 'SYBASE'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); } // schema param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.SCHEMA_DB.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.SCHEMA_DB)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.SCHEMA_DB.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(44); param.setRepositoryValue("SCHEMA"); //$NON-NLS-1$ final String schemaCondition = JobSettingsConstants .addBrackets(dbTypeName + " =='OCLE' or " + dbTypeName + " =='OCLE_OCI' or " + dbTypeName + " =='POSTGRESQL' or " + dbTypeName + " =='POSTGRESPLUS' or " + dbTypeName + " =='MSSQL' or " + dbTypeName + " =='INFORMIX'"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$//$NON-NLS-6$ param.setShowIf(schemaCondition + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // username param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.USER.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.USER)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.USER.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(45); param.setRequired(true); param.setRepositoryValue("USERNAME"); //$NON-NLS-1$ dbCon = dbTypeName + " != 'SQLITE'"; //$NON-NLS-1$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // password param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.PASS.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.PASS)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.PASS.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(45); param.setRequired(true); param.setRepositoryValue("PASSWORD"); //$NON-NLS-1$ dbCon = dbTypeName + " != 'SQLITE'"; //$NON-NLS-1$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // databse file path param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.DBFILE.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.DBFILE)))); param.setDisplayName(EParameterName.DBFILE.getDisplayName()); param.setFieldType(EParameterFieldType.FILE); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(46); param.setRepositoryValue("FILE"); //$NON-NLS-1$ dbCon = dbTypeName + " == 'SQLITE'" + " or " + dbTypeName + " == 'ACCESS'" + " or " + dbTypeName + " == 'FIREBIRD'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ param.setShowIf(JobSettingsConstants.addBrackets(dbCon) + " and " + dbCondition); //$NON-NLS-1$ param.setGroup(IMPLICIT_GROUP); paramList.add(param); // table param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.DBTABLE.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.DBTABLE)))); //$NON-NLS-1$ param.setDisplayName(EParameterName.DBTABLE.getDisplayName()); param.setFieldType(EParameterFieldType.DBTABLE); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(47); param.setShowIf(dbCondition); param.setGroup(IMPLICIT_GROUP); paramList.add(param); // query condition param = new ElementParameter(elem); param.setName(JobSettingsConstants.getExtraParameterName(EParameterName.QUERY_CONDITION.getName())); param.setValue(addQuotes(preferenceStore.getString(getPreferenceName(EParameterName.QUERY_CONDITION)))); param.setDisplayName(EParameterName.QUERY_CONDITION.getDisplayName()); param.setFieldType(EParameterFieldType.TEXT); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(48); param.setShowIf(dbCondition); param.setGroup(IMPLICIT_GROUP); paramList.add(param); } private static void createExtraContextLoadParameters(Element elem) { ElementParameter param; List<IElementParameter> paramList = (List<IElementParameter>) elem.getElementParameters(); if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) { final String[] itemValues = new String[] { ContextLoadInfo.ERROR.getDisplayName(), ContextLoadInfo.WARNING.getDisplayName(), ContextLoadInfo.INFO.getDisplayName() }; // param = new ElementParameter(elem); param.setName(EParameterName.LOAD_NEW_VARIABLE.getName()); param.setDisplayName(EParameterName.LOAD_NEW_VARIABLE.getDisplayName()); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.LOAD_NEW_VARIABLE))); param.setListItemsDisplayName(itemValues); param.setListItemsValue(itemValues); param.setFieldType(EParameterFieldType.CLOSED_LIST); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(80); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); // param = new ElementParameter(elem); param.setName(EParameterName.NOT_LOAD_OLD_VARIABLE.getName()); param.setDisplayName(EParameterName.NOT_LOAD_OLD_VARIABLE.getDisplayName()); param.setValue(preferenceStore.getString(getPreferenceName(EParameterName.NOT_LOAD_OLD_VARIABLE))); param.setListItemsDisplayName(itemValues); param.setListItemsValue(itemValues); param.setFieldType(EParameterFieldType.CLOSED_LIST); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(81); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); } // print operations param = new ElementParameter(elem); param.setName(EParameterName.PRINT_OPERATIONS.getName()); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.PRINT_OPERATIONS))); param.setDisplayName(EParameterName.PRINT_OPERATIONS.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(82); param.setRequired(true); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) { // disable error param = new ElementParameter(elem); param.setName(EParameterName.DISABLE_ERROR.getName()); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.DISABLE_ERROR))); param.setDisplayName(EParameterName.DISABLE_ERROR.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(83); param.setRequired(true); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); } // disable warnings param = new ElementParameter(elem); param.setName(EParameterName.DISABLE_WARNINGS.getName()); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.DISABLE_WARNINGS))); param.setDisplayName(EParameterName.DISABLE_WARNINGS.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(83); param.setRequired(true); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); if (LanguageManager.getCurrentLanguage().equals(ECodeLanguage.JAVA)) { // disable info param = new ElementParameter(elem); param.setName(EParameterName.DISABLE_INFO.getName()); param.setValue(preferenceStore.getBoolean(getPreferenceName(EParameterName.DISABLE_INFO))); param.setDisplayName(EParameterName.DISABLE_INFO.getDisplayName()); param.setFieldType(EParameterFieldType.CHECK); param.setCategory(EComponentCategory.EXTRA); param.setNumRow(83); param.setRequired(true); param.setShowIf(CONTEXTLOAD_CONDITION); param.setGroup(IMPLICIT_GROUP); paramList.add(param); } } private static String getPreferenceName(EParameterName param) { return languagePrefix + ImplicitContextLoadHelper.getExtraParameterName(param); } }