From portal-commits at lists.jboss.org Fri Apr 27 08:54:43 2007 Content-Type: multipart/mixed; boundary="===============6341730883981198464==" MIME-Version: 1.0 From: portal-commits at lists.jboss.org To: portal-commits at lists.jboss.org Subject: [portal-commits] JBoss Portal SVN: r7103 - in trunk/core-admin/src: resources/portal-admin-war/WEB-INF/jsf/common and 1 other directory. Date: Fri, 27 Apr 2007 08:54:42 -0400 Message-ID: --===============6341730883981198464== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: julien(a)jboss.com Date: 2007-04-27 08:54:42 -0400 (Fri, 27 Apr 2007) New Revision: 7103 Added: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesInfo.= java Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectMan= agerBean.java trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean.= java trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.ja= va trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.ja= va trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/editP= roperties.xhtml Log: - extended portal object property metadata prototype - extended the portal object UI property management Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalOb= jectManagerBean.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectMa= nagerBean.java 2007-04-27 12:28:37 UTC (rev 7102) +++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectMa= nagerBean.java 2007-04-27 12:54:42 UTC (rev 7103) @@ -485,7 +485,7 @@ } = // - selectedProperties =3D new PropertiesBean(this, true); + selectedProperties =3D new PropertiesBean(this); = // Collection pages =3D getSelectedObject().getChildren(PortalObject.PA= GE_MASK); Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/Properti= esBean.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean= .java 2007-04-27 12:28:37 UTC (rev 7102) +++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean= .java 2007-04-27 12:54:42 UTC (rev 7103) @@ -22,19 +22,14 @@ *************************************************************************= *****/ package org.jboss.portal.core.admin.ui; = -import org.jboss.portal.common.i18n.LocalizedString; -import org.jboss.portal.core.impl.model.portal.WindowImpl; import org.jboss.portal.core.model.portal.PortalObject; -import org.jboss.portal.theme.ThemeConstants; -import org.jboss.portal.theme.impl.render.dynamic.DynaRenderOptions; = import javax.faces.model.SelectItem; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Iterator; import java.util.Map; -import java.util.Locale; +import java.util.HashMap; = /** * @author Julien Viet @@ -45,99 +40,69 @@ { = /** . */ - List entries; + List entryList; = /** . */ - int selectedIndex; + Map entryMap; = /** . */ - private boolean mutable; + int selectedIndex; = /** . */ final PortalObjectManagerBean pomgr; = - public PropertiesBean(PortalObjectManagerBean pomgr, boolean mutable) + /** . */ + private final PropertiesInfo info; + + /** . */ + private List items; + + public PropertiesBean(PortalObjectManagerBean pomgr) { // Get the selected object PortalObject selectedObject =3D pomgr.getSelectedObject(); = - // Look at declared properties - List entries =3D new ArrayList(); - for (Iterator i =3D selectedObject.getDeclaredProperties().entrySet(= ).iterator(); i.hasNext();) - { - Map.Entry entry =3D (Map.Entry)i.next(); - String value =3D (String)entry.getValue(); - String name =3D (String)entry.getKey(); + // + PropertiesInfo info =3D new PropertiesInfo(selectedObject); = - // - String type =3D "java.lang.String"; - LocalizedString displayName =3D new LocalizedString(name, Locale.= ENGLISH); + // + List entryList =3D new ArrayList(info.getNames().size()); + Map entryMap =3D new HashMap(info.getNames().size()); = - // - if (name.equals(ThemeConstants.PORTAL_PROP_LAYOUT)) - { - continue; - } - else if (name.equals(ThemeConstants.PORTAL_PROP_THEME)) - { - continue; - } - else if (name.equals(ThemeConstants.PORTAL_PROP_RENDERSET)) - { - continue; - } - else if (name.equals(ThemeConstants.PORTAL_PROP_REGION)) - { - continue; - } - else if (name.equals(WindowImpl.PORTAL_PROP_WINDOW_CONTENT_TYPE)) - { - continue; - } - else if (name.equals(ThemeConstants.PORTAL_PROP_ORDER)) - { - displayName =3D new LocalizedString("Order", Locale.ENGLISH); - } - else if (name.equals(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAME= )) - { - displayName =3D new LocalizedString("Default child name", Loca= le.ENGLISH); - } - else if (name.equals(DynaRenderOptions.PARTIAL_REFRESH_ENABLED)) - { - displayName =3D new LocalizedString("Partial Refresh Enabled",= Locale.ENGLISH); - type =3D "java.lang.Boolean"; - } = - // + for (Iterator i =3D selectedObject.getProperties().keySet().iterator= ();i.hasNext();) + { + String propertyName =3D (String)i.next(); + String propertyValue =3D selectedObject.getProperty(propertyName); = - if (!mutable) - { - throw new IllegalStateException("Cannot add non mutable entry = to a mutable preferences bean"); - } - // - PropertyInfo info =3D new PropertyInfo(name, displayName, type, f= alse); + PropertyInfo propertyInfo =3D info.getPropertyInfo(propertyName); = // - PropertyBean propertyBean =3D new PropertyBean(this, info, value); + boolean inherited =3D !selectedObject.getDeclaredProperties().con= tainsKey(propertyName); = - // - entries.add(propertyBean); + // If null it is probably an inherited property that does not hav= e meaning for that particular object + if (propertyInfo !=3D null) + { + + // Filter, keep only public properties + if (propertyInfo.getScope() =3D=3D PropertyInfo.PUBLIC_SCOPE) + { + PropertyBean propertyBean =3D new PropertyBean(this, proper= tyInfo, inherited, propertyValue); + entryList.add(propertyBean); + entryMap.put(propertyName, propertyBean); + } + } } - Collections.sort(entries); = // + this.info =3D info; this.pomgr =3D pomgr; - this.entries =3D entries; + this.entryList =3D entryList; + this.entryMap =3D entryMap; this.selectedIndex =3D -1; - this.mutable =3D mutable; } = - public boolean isMutable() - { - return mutable; - } - public int getSelectedIndex() { return selectedIndex; @@ -145,7 +110,7 @@ = public void setSelectedIndex(int selectedIndex) { - if (selectedIndex < 0 || selectedIndex >=3D entries.size()) + if (selectedIndex < 0 || selectedIndex >=3D entryList.size()) { throw new IllegalArgumentException(); } @@ -159,31 +124,47 @@ = public PreferenceBean getSelectedEntry() { - if (selectedIndex < 0 || selectedIndex >=3D entries.size()) + if (selectedIndex < 0 || selectedIndex >=3D entryList.size()) { return null; } - return (PreferenceBean)entries.get(selectedIndex); + return (PreferenceBean)entryList.get(selectedIndex); } = public List getEntries() { - return entries; + return entryList; } = public int getSize() { - return entries.size(); + return entryList.size(); } = public SelectItem[] getPropertyItems() { - List items =3D new ArrayList(); - // items.add(new SelectItem(DynaRenderOptions.DND_ENABLED, "DnD enab= led")); - items.add(new SelectItem(DynaRenderOptions.PARTIAL_REFRESH_ENABLED, = "Partial Refresh Enabled")); - items.add(new SelectItem(ThemeConstants.PORTAL_PROP_ORDER, "Order")); - items.add(new SelectItem(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAM= E, "Default child name")); + if (items =3D=3D null) + { + items =3D new ArrayList(); + for (Iterator i =3D info.getNames().iterator();i.hasNext();) + { + String propertyName =3D (String)i.next(); + + // Add only missing property + if (!entryMap.containsKey(propertyName)) + { + PropertyInfo propertyInfo =3D info.getPropertyInfo(property= Name); + + // Add only property user can change state + if (propertyInfo.getScope() =3D=3D PropertyInfo.PUBLIC_SCOP= E && propertyInfo.getAccessMode() =3D=3D PropertyInfo.READ_WRITE_ACCESS_MOD= E) + { + items.add(new SelectItem(propertyInfo.getName(), propert= yInfo.getDisplayName().getDefaultString())); + } + } + } + } + + // return (SelectItem[])items.toArray(new SelectItem[items.size()]); } - } Added: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesI= nfo.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesInfo= .java (rev 0) +++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesInfo= .java 2007-04-27 12:54:42 UTC (rev 7103) @@ -0,0 +1,159 @@ +/*************************************************************************= ***** + * JBoss, a division of Red Hat = * + * Copyright 2006, Red Hat Middleware, LLC, and individual = * + * contributors as indicated by the @authors tag. See the = * + * copyright.txt in the distribution for a full listing of = * + * individual contributors. = * + * = * + * This is free software; you can redistribute it and/or modify it = * + * under the terms of the GNU Lesser General Public License as = * + * published by the Free Software Foundation; either version 2.1 of = * + * the License, or (at your option) any later version. = * + * = * + * This software is distributed in the hope that it will be useful, = * + * but WITHOUT ANY WARRANTY; without even the implied warranty of = * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU = * + * Lesser General Public License for more details. = * + * = * + * You should have received a copy of the GNU Lesser General Public = * + * License along with this software; if not, write to the Free = * + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA = * + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. = * + *************************************************************************= *****/ +package org.jboss.portal.core.admin.ui; + +import org.jboss.portal.core.model.portal.PortalObject; +import org.jboss.portal.core.impl.model.portal.WindowImpl; +import org.jboss.portal.common.i18n.LocalizedString; +import org.jboss.portal.theme.ThemeConstants; +import org.jboss.portal.theme.impl.render.dynamic.DynaRenderOptions; + +import java.util.Iterator; +import java.util.Map; +import java.util.Locale; +import java.util.HashMap; +import java.util.Set; + +/** + * @author Julien Viet + * @version $Revision: 1.1 $ + */ +public class PropertiesInfo +{ + + // + + public static final PropertyInfo THEME_LAYOUT_ID =3D new PropertyInfo(T= hemeConstants.PORTAL_PROP_LAYOUT, new LocalizedString("Layout id", Locale.E= NGLISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS_MODE, PropertyI= nfo.PRIVATE_SCOPE); + public static final PropertyInfo THEME_THEME_ID =3D new PropertyInfo(Th= emeConstants.PORTAL_PROP_THEME, new LocalizedString("Theme id", Locale.ENGL= ISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS_MODE, PropertyInfo= .PRIVATE_SCOPE); + public static final PropertyInfo THEME_RENDER_SET_ID =3D new PropertyIn= fo(ThemeConstants.PORTAL_PROP_RENDERSET, new LocalizedString("Renderset id"= , Locale.ENGLISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS_MODE,= PropertyInfo.PRIVATE_SCOPE); + public static final PropertyInfo THEME_RENDER_REGION_ID =3D new Propert= yInfo(ThemeConstants.PORTAL_PROP_REGION, new LocalizedString("Region id", L= ocale.ENGLISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS_MODE, Pr= opertyInfo.PRIVATE_SCOPE); + public static final PropertyInfo THEME_RENDER_REGION_ORDER =3D new Prop= ertyInfo(ThemeConstants.PORTAL_PROP_ORDER, new LocalizedString("Region orde= r", Locale.ENGLISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS_MOD= E, PropertyInfo.PUBLIC_SCOPE); + + // + + public static final PropertyInfo AJAX_PARTIAL_REFRESH =3D new PropertyI= nfo(DynaRenderOptions.PARTIAL_REFRESH_ENABLED, new LocalizedString("Partial= refresh", Locale.ENGLISH), "java.lang.Boolean", PropertyInfo.READ_WRITE_AC= CESS_MODE, PropertyInfo.PUBLIC_SCOPE); + + // + + public static final PropertyInfo WINDOW_CONTENT_TYPE =3D new PropertyIn= fo(WindowImpl.PORTAL_PROP_WINDOW_CONTENT_TYPE, new LocalizedString("Content= type", Locale.ENGLISH), "java.lang.String", PropertyInfo.READ_WRITE_ACCESS= _MODE, PropertyInfo.PRIVATE_SCOPE); + public static final PropertyInfo DEFAULT_CHILD_NAME =3D new PropertyInf= o(WindowImpl.PORTAL_PROP_DEFAULT_OBJECT_NAME, new LocalizedString("Default = child name", Locale.ENGLISH), "java.lang.String", PropertyInfo.READ_WRITE_A= CCESS_MODE, PropertyInfo.PUBLIC_SCOPE); + public static final PropertyInfo PAGE_ORDER =3D new PropertyInfo("order= ", new LocalizedString("Tab order", Locale.ENGLISH), "java.lang.String", Pr= opertyInfo.READ_WRITE_ACCESS_MODE, PropertyInfo.PUBLIC_SCOPE); + + /** . */ + private static final Map CONTEXT_PROPERTIES =3D new HashMap(); + + /** . */ + private static final Map PORTAL_PROPERTIES =3D new HashMap(); + + /** . */ + private static final Map PAGE_PROPERTIES =3D new HashMap(); + + /** . */ + private static final Map WINDOW_PROPERTIES =3D new HashMap(); + + /** . */ + private static final Map ALL_PROPERTIES =3D new HashMap(); + + static + { + PORTAL_PROPERTIES.put(THEME_LAYOUT_ID.getName(), THEME_LAYOUT_ID); + PORTAL_PROPERTIES.put(THEME_THEME_ID.getName(), THEME_THEME_ID); + PORTAL_PROPERTIES.put(THEME_RENDER_SET_ID.getName(), THEME_RENDER_SE= T_ID); + PORTAL_PROPERTIES.put(DEFAULT_CHILD_NAME.getName(), DEFAULT_CHILD_NA= ME); + PORTAL_PROPERTIES.put(AJAX_PARTIAL_REFRESH.getName(), AJAX_PARTIAL_R= EFRESH); + + // + PAGE_PROPERTIES.put(THEME_LAYOUT_ID.getName(), THEME_LAYOUT_ID); + PAGE_PROPERTIES.put(THEME_THEME_ID.getName(), THEME_THEME_ID); + PAGE_PROPERTIES.put(THEME_RENDER_SET_ID.getName(), THEME_RENDER_SET_= ID); + PAGE_PROPERTIES.put(DEFAULT_CHILD_NAME.getName(), DEFAULT_CHILD_NAME= ); + PAGE_PROPERTIES.put(PAGE_ORDER.getName(), PAGE_ORDER); + PAGE_PROPERTIES.put(AJAX_PARTIAL_REFRESH.getName(), AJAX_PARTIAL_REF= RESH); + + // + WINDOW_PROPERTIES.put(AJAX_PARTIAL_REFRESH.getName(), AJAX_PARTIAL_R= EFRESH); + WINDOW_PROPERTIES.put(THEME_RENDER_REGION_ID.getName(), THEME_RENDER= _REGION_ID); + WINDOW_PROPERTIES.put(THEME_RENDER_REGION_ORDER.getName(), THEME_REN= DER_REGION_ORDER); + WINDOW_PROPERTIES.put(WINDOW_CONTENT_TYPE.getName(), WINDOW_CONTENT_= TYPE); + + // + ALL_PROPERTIES.putAll(CONTEXT_PROPERTIES); + ALL_PROPERTIES.putAll(PORTAL_PROPERTIES); + ALL_PROPERTIES.putAll(PAGE_PROPERTIES); + ALL_PROPERTIES.putAll(WINDOW_PROPERTIES); + } + + /** . */ + private Map entries; + + public PropertiesInfo(PortalObject portalObject) + { + Map objectProps =3D null; + switch(portalObject.getType()) + { + case PortalObject.TYPE_CONTEXT: + objectProps =3D CONTEXT_PROPERTIES; + break; + case PortalObject.TYPE_PORTAL: + objectProps =3D PORTAL_PROPERTIES; + break; + case PortalObject.TYPE_PAGE: + objectProps =3D PAGE_PROPERTIES; + break; + case PortalObject.TYPE_WINDOW: + objectProps =3D WINDOW_PROPERTIES; + break; + } + + // Add predefined properties + Map entries =3D new HashMap(objectProps); + + // + for (Iterator i =3D portalObject.getDeclaredProperties().entrySet().= iterator(); i.hasNext();) + { + Map.Entry entry =3D (Map.Entry)i.next(); + String name =3D (String)entry.getKey(); + + // Add additional properties + if (!ALL_PROPERTIES.containsKey(name)) + { + LocalizedString displayName =3D new LocalizedString(name, Loca= le.ENGLISH); + PropertyInfo info =3D new PropertyInfo(name, displayName, "jav= a.lang.String", PropertyInfo.READ_WRITE_ACCESS_MODE, PropertyInfo.PUBLIC_SC= OPE); + entries.put(name, info); + } + } + + // + this.entries =3D entries; + } + + public Set getNames() + { + return entries.keySet(); + } + + public PropertyInfo getPropertyInfo(String name) + { + return (PropertyInfo)entries.get(name); + } +} Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/Property= Bean.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.j= ava 2007-04-27 12:28:37 UTC (rev 7102) +++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.j= ava 2007-04-27 12:54:42 UTC (rev 7103) @@ -41,11 +41,15 @@ = /** . */ private final PropertyInfo info; + + /** . */ + private final boolean inherited; = - public PropertyBean(PropertiesBean container, PropertyInfo info, String= value) + public PropertyBean(PropertiesBean container, PropertyInfo info, boolea= n inherited, String value) { this.container =3D container; this.info =3D info; + this.inherited =3D inherited; this.value =3D value; } = @@ -56,7 +60,7 @@ = public boolean isReadOnly() { - return info.isReadOnly(); + return info.getAccessMode() =3D=3D PropertyInfo.READ_ONLY_ACCESS_MOD= E; } = public LocalizedString getDisplayName() @@ -64,6 +68,11 @@ return info.getDisplayName(); } = + public boolean isInherited() + { + return inherited; + } + public Object getValue() { if (info.getType().equals("java.lang.Boolean")) Modified: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/Property= Info.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.j= ava 2007-04-27 12:28:37 UTC (rev 7102) +++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.j= ava 2007-04-27 12:54:42 UTC (rev 7103) @@ -32,10 +32,22 @@ { = /** . */ + public static final int PUBLIC_SCOPE =3D 0; + + /** . */ + public static final int PRIVATE_SCOPE =3D 1; + + /** . */ + public static final int READ_ONLY_ACCESS_MODE =3D 0; + + /** . */ + public static final int READ_WRITE_ACCESS_MODE =3D 1; + + /** . */ private String name; = /** . */ - private boolean readOnly; + private int accessMode; = /** . */ private String type; @@ -43,12 +55,16 @@ /** . */ private LocalizedString displayName; = - public PropertyInfo(String name, LocalizedString displayName, String ty= pe, boolean readOnly) + /** . */ + private int scope; + + public PropertyInfo(String name, LocalizedString displayName, String ty= pe, int accessMode, int scope) { this.name =3D name; - this.readOnly =3D readOnly; + this.accessMode =3D accessMode; this.displayName =3D displayName; this.type =3D type; + this.scope =3D scope; } = public LocalizedString getDisplayName() @@ -61,13 +77,18 @@ return name; } = - public boolean isReadOnly() + public int getAccessMode() { - return readOnly; + return accessMode; } = public String getType() { return type; } + + public int getScope() + { + return scope; + } } Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/commo= n/editProperties.xhtml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/edit= Properties.xhtml 2007-04-27 12:28:37 UTC (rev 7102) +++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/edit= Properties.xhtml 2007-04-27 12:54:42 UTC (rev 7103) @@ -12,6 +12,7 @@ Name Key Value + Inherited Delete @@ -27,13 +28,14 @@ - + - + + #{prop.inherited ? 'Yes' : 'No'} Delete --===============6341730883981198464==--