📄 userpropertymanagerejb.java
字号:
String fieldsValue = getUserProperty(FIELDS_FOR_GRID_PROP_PREFIX + entity, user); if(fieldsValue != null) { fields = StringHelper.split(fieldsValue, ";"); } return fields; } /** * Sets collections of fields represented in grid * * @param user User object * @param entity Entity name * @param fields Fields names to set. */ public UserPropertyID setFieldsForGrid(User user, String entity, String[] fields) { String fieldsValue = StringHelper.join(fields, ";"); return setUserProperty(FIELDS_FOR_GRID_PROP_PREFIX + entity, fieldsValue, user); } /** * Delete all dialog ui settings for the given user * @param user user */ public void deleteDialogUISettings(User user) { deletePropsStartsWith(user, DIALOG_SETTINGS_PROP_PREFIX); } /** * Updates the given dialog ui settings without any cleaning for the given user. * @param user user * @param settingsToSave settings to save */ public void updateDialogUISettings(User user, DialogSetting settingsToSave) { setUserProperty(getSerizlizedDialogSettingKey(settingsToSave), getSerializedDialogSettingValue(settingsToSave), user); } /** * We delete all user settings and recreate it again to optimize future all props loading. * * @param user user * @param settingsToSave settings to save */ public void resetDialogUISettings(User user, Collection<DialogSetting> settingsToSave) { deleteDialogUISettings(user); for(DialogSetting dialogSetting : settingsToSave) { setUserProperty(getSerizlizedDialogSettingKey(dialogSetting), getSerializedDialogSettingValue(dialogSetting), user); } } public Collection<DialogSetting> loadDialogsUISettings(User user) { Collection<DialogSetting> ret = new LinkedList<DialogSetting>(); Map<String, String> uiProps = ConfigPropertyFactory.getInstance().getUserPropertyConfigDAO(). loadUserPropertiesLike(user, DIALOG_SETTINGS_PROP_PREFIX); for(String uiElementId : uiProps.keySet()) { DialogSetting setting = deserializeDialogSettings(uiElementId, uiProps.get(uiElementId)); if(setting != null) { ret.add(setting); } } return ret; } public void deleteGridSettings(User user) { deletePropsStartsWith(user, GRID_SETTINGS_PROP_PREFIX); } public void updateGridSettings(User user, GridSetting settingsToSave) { setUserProperty(getSerizlizedGridSettingKey(settingsToSave), getSerializedGridSettingValue(settingsToSave), user); } public Collection<GridSetting> loadGridSettings(User user) { Collection<GridSetting> ret = new LinkedList<GridSetting>(); Map<String, String> uiProps = ConfigPropertyFactory.getInstance().getUserPropertyConfigDAO(). loadUserPropertiesLike(user, GRID_SETTINGS_PROP_PREFIX); for(String uiElementId : uiProps.keySet()) { GridSetting setting = deserializeGridSettings(uiElementId, uiProps.get(uiElementId)); if(setting != null) { ret.add(setting); } } return ret; } private void deletePropsStartsWith(User user, String propStarting) { ConfigPropertyFactory.getInstance().getUserPropertyConfigDAO().deleteUserPropertiesLike(user, propStarting); //clear all cache for user, because we need to be sure, that procedure updateUserProperty(key, value) works properly and store it in DB. Cache cache = ConfigPropertyFactory.getInstance().getUserPropertyConfigCache(); Collection<UserPropertyID> toDelete = new LinkedList<UserPropertyID>(); for(Object objKey : cache.keys()) { UserPropertyID key = (UserPropertyID) objKey; if(key.getUserId() == user.getUserID() && key.getId().startsWith(propStarting)) { toDelete.add(key); } } for(UserPropertyID key : toDelete) { cache.remove(key); } } private String getSerializedDialogSettingValue(DialogSetting dialogSetting) { return dialogSetting.getLeft() + DIVIDER_UI_SETTINGS_CHAR + dialogSetting.getTop() + DIVIDER_UI_SETTINGS_CHAR + dialogSetting.getWidth() + DIVIDER_UI_SETTINGS_CHAR + dialogSetting.getHeight(); } private String getSerizlizedDialogSettingKey(DialogSetting dialogSetting) { return DIALOG_SETTINGS_PROP_PREFIX + dialogSetting.getFormId() + DIVIDER_UI_SETTINGS_CHAR + dialogSetting.getFieldId(); } private DialogSetting deserializeDialogSettings(String uiElementId, String uiElementValue) { String formAndField = uiElementId.substring(DIALOG_SETTINGS_PROP_PREFIX.length()); String formAndFieldArr[] = formAndField.split(DIVIDER_UI_SETTINGS_CHAR); String sizes[] = uiElementValue.split(DIVIDER_UI_SETTINGS_CHAR); DialogSetting ret = null; if((formAndFieldArr.length >= 2) && (sizes.length >= 4)) { try { int left = Integer.parseInt(sizes[0]); int top = Integer.parseInt(sizes[1]); int width = Integer.parseInt(sizes[2]); int height = Integer.parseInt(sizes[3]); ret = new DialogSettingImpl(formAndFieldArr[0], formAndFieldArr[1], left, top, width, height); } catch (Exception e) { //do nothing just return the null value } } return ret; } private String getSerializedGridSettingValue(GridSetting settings) { StringBuffer ret = new StringBuffer(Boolean.toString(settings.isCounterOn()) + DIVIDER_UI_SETTINGS_CHAR + Integer.toString(settings.getPageSize()) + DIVIDER_UI_SETTINGS_CHAR); Map<String, Integer> columnWidths = settings.getColumnWidths(); if(columnWidths != null) { for(String columnName : columnWidths.keySet()) { ret.append(columnName).append(DIVIDER_UI_SETTINGS_CHAR).append(columnWidths.get(columnName)).append(DIVIDER_UI_SETTINGS_CHAR); } } return ret.toString(); } private String getSerizlizedGridSettingKey(GridSetting setting) { return GRID_SETTINGS_PROP_PREFIX + setting.getFormID(); } private GridSetting deserializeGridSettings(String gridElementId, String gridElementValue) { String formId = gridElementId.substring(GRID_SETTINGS_PROP_PREFIX.length()); String params[] = gridElementValue.split(DIVIDER_UI_SETTINGS_CHAR); GridSettingDefImpl setts = null; if(params.length >= 2) { try { boolean isCounter = Boolean.parseBoolean(params[0]); int pageSize = Integer.parseInt(params[1]); Map<String, Integer> columnsWidth = new HashMap<String, Integer>(); for(int i = 2; i < params.length - 1; i=i+2) { String columnName = params[i]; String columnWidth = params[i + 1]; Integer width = Integer.parseInt(columnWidth); columnsWidth.put(columnName, width); } setts = new GridSettingDefImpl(formId, isCounter, pageSize, columnsWidth); } catch (Exception e) { //do nothing just return the null value } } return setts; } private static class DialogSettingImpl implements DialogSetting { private String formId; private String fieldId; private int left; private int top; private int width; private int height; public DialogSettingImpl(String formId, String fieldId, int left, int top, int width, int height) { this.formId = formId; this.fieldId = fieldId; this.left = left; this.top = top; this.width = width; this.height = height; } public String getFormId() { return formId; } public String getFieldId() { return fieldId; } public int getLeft() { return left; } public int getTop() { return top; } public int getWidth() { return width; } public int getHeight() { return height; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -