public void setValues(final UIPortlet uiPortlet) throws Exception { uiPortlet_ = uiPortlet; invokeGetBindingBean(uiPortlet_); String icon = uiPortlet.getIcon(); if (icon == null || icon.length() < 0) { icon = "PortletIcon"; } getChild(UIFormInputIconSelector.class).setSelectedIcon(icon); getChild(UIFormInputThemeSelector.class) .getChild(UIItemThemeSelector.class) .setSelectedTheme(uiPortlet.getSuitedTheme(null)); if (hasEditMode()) { uiPortlet.setCurrentPortletMode(PortletMode.EDIT); } else { Map<String, String> portletPreferenceMaps = new HashMap<String, String>(); org.gatein.pc.api.Portlet portlet = uiPortlet.getProducedOfferedPortlet(); Set<String> keySet = portlet.getInfo().getPreferences().getKeys(); for (String key : keySet) { PreferenceInfo preferenceInfo = portlet.getInfo().getPreferences().getPreference(key); if (!preferenceInfo.isReadOnly()) { String ppValue = (preferenceInfo.getDefaultValue().size() > 0) ? preferenceInfo.getDefaultValue().get(0) : ""; portletPreferenceMaps.put(key, ppValue); } } Portlet pp = uiPortlet.getPreferences(); if (pp != null) { for (Preference pref : pp) { if (!pref.isReadOnly()) { portletPreferenceMaps.put( pref.getName(), (pref.getValues().size() > 0) ? pref.getValues().get(0) : ""); } } } if (portletPreferenceMaps.size() > 0) { Set<String> ppKeySet = portletPreferenceMaps.keySet(); UIFormInputSet uiPortletPrefSet = getChildById(FIELD_PORTLET_PREF); uiPortletPrefSet.getChildren().clear(); for (String ppKey : ppKeySet) { String ppValue = portletPreferenceMaps.get(ppKey); UIFormStringInput preferenceStringInput = new UIFormStringInput(ppKey, null, ppValue); preferenceStringInput.setLabel(ppKey); preferenceStringInput.addValidator(MandatoryValidator.class); uiPortletPrefSet.addUIFormInput(preferenceStringInput); } uiPortletPrefSet.setRendered(true); setSelectedTab(FIELD_PORTLET_PREF); return; } setSelectedTab("PortletSetting"); } }
@SuppressWarnings("unchecked") public UIPortletForm() throws Exception { super("UIPortletForm"); UIFormInputSet uiPortletPrefSet = new UIFormInputSet(FIELD_PORTLET_PREF).setRendered(false); addUIFormInput(uiPortletPrefSet); UIFormInputSet uiSettingSet = new UIFormInputSet("PortletSetting"); uiSettingSet .addUIFormInput(new UIFormInputInfo("displayName", "displayName", null)) .addUIFormInput( new UIFormStringInput("title", "title", null) .addValidator(StringLengthValidator.class, 3, 60) .addValidator(NotHTMLTagValidator.class, "UIPortletForm.msg.InvalidPortletTitle")) .addUIFormInput( new UIFormStringInput("width", "width", null) .addValidator( ExpressionValidator.class, "(^([1-9]\\d*)px$)?", "UIPortletForm.msg.InvalidWidthHeight")) .addUIFormInput( new UIFormStringInput("height", "height", null) .addValidator( ExpressionValidator.class, "(^([1-9]\\d*)px$)?", "UIPortletForm.msg.InvalidWidthHeight")) .addUIFormInput(new UICheckBoxInput("showInfoBar", "showInfoBar", false)) .addUIFormInput(new UICheckBoxInput("showPortletMode", "showPortletMode", false)) .addUIFormInput(new UICheckBoxInput("showWindowState", "showWindowState", false)) .addUIFormInput( new UIFormTextAreaInput("description", "description", null) .addValidator( NotHTMLTagValidator.class, "UIPortletForm.msg.InvalidPortletDescription")); addUIFormInput(uiSettingSet); UIFormInputIconSelector uiIconSelector = new UIFormInputIconSelector("Icon", "icon"); addUIFormInput(uiIconSelector); UIFormInputThemeSelector uiThemeSelector = new UIFormInputThemeSelector(FIELD_THEME, null); SkinService skinService = getApplicationComponent(SkinService.class); uiThemeSelector.getChild(UIItemThemeSelector.class).setValues(skinService.getPortletThemes()); addUIFormInput(uiThemeSelector); UIListPermissionSelector uiListPermissionSelector = createUIComponent(UIListPermissionSelector.class, null, null); uiListPermissionSelector.configure("UIAccessPermission", "accessPermissions"); uiListPermissionSelector.addValidator(EmptyIteratorValidator.class); UIFormInputSet uiPermissionSet = createUIComponent(UIFormInputSet.class, "PortletPermission", null); uiPermissionSet.addChild(uiListPermissionSelector); addUIFormInput(uiPermissionSet); }
private void savePreferences() throws Exception { UIFormInputSet uiPortletPrefSet = getChildById(FIELD_PORTLET_PREF); List<UIFormStringInput> uiFormInputs = new ArrayList<UIFormStringInput>(3); uiPortletPrefSet.findComponentOfType(uiFormInputs, UIFormStringInput.class); if (uiFormInputs.size() < 1) { return; } PropertyChange[] propertyChanges = new PropertyChange[uiFormInputs.size()]; for (int i = 0; i < uiFormInputs.size(); i++) { String name = uiFormInputs.get(i).getName(); String value = uiFormInputs.get(i).getValue(); propertyChanges[i] = PropertyChange.newUpdate(name, value); } // Now save it uiPortlet_.update(propertyChanges); }