@Override public List<ErrorData> isValidSettings(Map<Integer, Object> settings) { List<ErrorData> errorDataList = new ArrayList<ErrorData>(); TOptionSettingsBean optionSettingsBean = (TOptionSettingsBean) settings.get(mapParameterCode); if (optionSettingsBean == null || optionSettingsBean.getList() == null) { errorDataList.add(new ErrorData("customSelectSimple.error.noList")); } return errorDataList; }
/** * Gets the data specific to configuring the field Specifically useful when select lists should be * present at configuration time * * @param projectID * @param locale * @param fieldConfigID * @return */ protected List<ILabelBean> getLists(Integer projectID, Locale locale, Integer fieldConfigID) { Integer currentValue = null; if (fieldConfigID != null) { TOptionSettingsBean optionSettingsBean = OptionSettingsBL.loadByConfigAndParameter(fieldConfigID, null); if (optionSettingsBean != null) { currentValue = optionSettingsBean.getList(); } } return (List) ListBL.getSelectsOfType(projectID, TListBean.LIST_TYPE.SIMPLE, null, currentValue); }
/** * Gets the specific JSON string for a field * * @param configID ID of the direct or nearest fallback configuration * @param treeConfigIDTokens a decoded node * @param personBean * @param locale * @param bundleName * @return */ @Override public String getSettingsJSON( Integer configID, TreeConfigIDTokens treeConfigIDTokens, TPersonBean personBean, Locale locale, String bundleName) { TOptionSettingsBean optionSettingsBean = OptionSettingsBL.loadByConfigAndParameter(configID, parameterCode); StringBuilder stringBuilder = new StringBuilder(); if (optionSettingsBean != null) { JSONUtility.appendIntegerValue( stringBuilder, FieldConfigJSON.JSON_FIELDS.OPTION_SETTINGS_LIST_PREFIX + "[0]." + FieldConfigJSON.JSON_FIELDS.OPTION_SETTINGS_LIST, optionSettingsBean.getList()); } JSONUtility.appendILabelBeanList( stringBuilder, FieldConfigJSON.JSON_FIELDS.OPTION_SETTINGS_LISTS, getLists(treeConfigIDTokens.getProjectID(), locale, configID)); return stringBuilder.append(getLocalizationJSON(locale, bundleName)).toString(); }
/** * Copy all the settings regarding a field configuration to an other field configuration Used only * by override (for rendering the settings to the user the getSettingsJSON() is used) * * @param srcSettings * @param destSettings * @param destConfigID */ @Override public void copySettings( Map<Integer, Object> srcSettings, Map<Integer, Object> destSettings, Integer destConfigID) { TOptionSettingsBean srcOptionSettingsBean = (TOptionSettingsBean) srcSettings.get(mapParameterCode); TOptionSettingsBean destOptionSettingsBean = (TOptionSettingsBean) destSettings.get(mapParameterCode); if (destOptionSettingsBean == null) { destOptionSettingsBean = new TOptionSettingsBean(); destOptionSettingsBean.setConfig(destConfigID); destSettings.put(mapParameterCode, destOptionSettingsBean); } // only if there are specific source settings if (srcOptionSettingsBean != null) { destOptionSettingsBean.setList(srcOptionSettingsBean.getList()); destOptionSettingsBean.setParameterCode(srcOptionSettingsBean.getParameterCode()); } }
/** * Saves the configuration settings for a field * * @param settings * @param configID */ @Override public void saveSettings(Map<Integer, Object> settings, Integer configID) { TOptionSettingsBean optionSettingsBean = (TOptionSettingsBean) settings.get(mapParameterCode); optionSettingsBean.setConfig(configID); OptionSettingsBL.save(optionSettingsBean); }