Author: thomas.heute(a)jboss.com
Date: 2007-04-02 11:22:03 -0400 (Mon, 02 Apr 2007)
New Revision: 6900
Added:
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.java
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.java
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/editProperties.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editProperties.xhtml
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PropertyAction.java
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectNavigation.xhtml
Log:
Ability to edit portal object properties, step 1
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
===================================================================
---
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java 2007-04-01
01:23:45 UTC (rev 6899)
+++
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java 2007-04-02
15:22:03 UTC (rev 6900)
@@ -38,6 +38,7 @@
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
+import org.jboss.portal.common.i18n.LocalizedString;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.core.model.portal.PortalObject;
@@ -127,7 +128,7 @@
private PortalObject selectedObject;
/** . */
- private List selectedProperties;
+ private PropertiesBean selectedProperties;
/** . */
private PortletInvoker portletDefinitionInvoker;
@@ -317,7 +318,7 @@
return selectedObject;
}
- public List getSelectedProperties()
+ public PropertiesBean getSelectedProperties()
{
return selectedProperties;
}
@@ -497,11 +498,12 @@
if (selectedProperties == null)
{
PortalObject object = getSelectedObject();
- List properties = new ArrayList();
+ PropertiesBean properties = new PropertiesBean(true);
for (Iterator i = object.getDeclaredProperties().entrySet().iterator();
i.hasNext();)
{
Map.Entry entry = (Map.Entry)i.next();
- properties.add(new String[]{(String)entry.getKey(),
(String)entry.getValue()});
+ PropertyInfo info = new PropertyInfo(object, (String)entry.getKey(), false);
+ properties.addEntry(info, (String)entry.getValue());
}
selectedProperties = properties;
}
Added: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean.java
(rev 0)
+++
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertiesBean.java 2007-04-02
15:22:03 UTC (rev 6900)
@@ -0,0 +1,135 @@
+/******************************************************************************
+ * 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 java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @version $Revision: 1.1 $
+ */
+public class PropertiesBean
+{
+
+ /** . */
+ List entries;
+
+ /** . */
+ int selectedIndex;
+
+ /** . */
+ private boolean mutable;
+
+ public PropertiesBean(boolean mutable)
+ {
+ this.entries = new ArrayList();
+ this.selectedIndex = -1;
+ this.mutable = mutable;
+ }
+
+ public boolean isMutable()
+ {
+ return mutable;
+ }
+
+ public int getSelectedIndex()
+ {
+ return selectedIndex;
+ }
+
+ public void setSelectedIndex(int selectedIndex)
+ {
+ if (selectedIndex < 0 || selectedIndex >= entries.size())
+ {
+ throw new IllegalArgumentException();
+ }
+ this.selectedIndex = selectedIndex;
+ }
+
+ public void unselectEntry()
+ {
+ selectedIndex = -1;
+ }
+
+ public PreferenceBean getSelectedEntry()
+ {
+ if (selectedIndex < 0 || selectedIndex >= entries.size())
+ {
+ return null;
+ }
+ return (PreferenceBean)entries.get(selectedIndex);
+ }
+
+ public void addEntry(PropertyInfo info, String value)
+ {
+ if (!mutable)
+ {
+ throw new IllegalStateException("Cannot add non mutable entry to a mutable
preferences bean");
+ }
+
+ //
+ addEntry(new PropertyBean(info, value));
+ }
+
+ private void addEntry(PropertyBean pref)
+ {
+ if (pref.container != null)
+ {
+ throw new IllegalArgumentException("Already contained somewhere");
+ }
+ pref.container = this;
+ entries.add(pref);
+ Collections.sort(entries);
+ }
+
+ public void addEntry()
+ {
+ PropertyBean bean =
(PropertyBean)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("property");
+ System.out.println(bean.getName());
+/*
+ String s = event.getComponent().getId();
+ int index = Integer.parseInt(s.substring(4));
+ List list = new ArrayList(value.asStringList());
+ list.remove(index);
+ String[] strings = (String[])list.toArray(new String[list.size()]);
+ value = new StringValue(strings);
+ stale = true;
+ */
+ }
+
+ public List getEntries()
+ {
+ return Collections.unmodifiableList(entries);
+ }
+
+ public int getSize()
+ {
+ return entries.size();
+ }
+}
Added: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.java
(rev 0)
+++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyBean.java 2007-04-02
15:22:03 UTC (rev 6900)
@@ -0,0 +1,212 @@
+/******************************************************************************
+ * 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.common.i18n.LocalizedString;
+import org.jboss.portal.core.model.portal.PortalObject;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @version $Revision: 1.1 $
+ */
+public class PropertyBean implements Comparable
+{
+
+ /** . */
+ private String name;
+
+ /** . */
+ private boolean readOnly;
+
+ /** . */
+ private LocalizedString displayName;
+
+ /** . */
+ private String value;
+
+ /** . */
+ PropertiesBean container;
+
+ private PortalObject portalObject;
+
+ public PropertyBean()
+ {
+ name="toto";
+ value="foo";
+ }
+
+ public PropertyBean(PropertyInfo info, String value)
+ {
+ this.name = info.getName();
+ this.portalObject = info.getPortalObject();
+ this.readOnly = info.isReadOnly();
+ this.displayName = info.getDisplayName();
+ this.value = value;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ public void setReadOnly(boolean readOnly)
+ {
+ this.readOnly = readOnly;
+ }
+
+ public LocalizedString getDisplayName()
+ {
+ return displayName;
+ }
+
+ public void setDisplayName(LocalizedString displayName)
+ {
+ this.displayName = displayName;
+ }
+
+ public String getValue()
+ {
+ return value;
+ }
+
+ public void setValue(String value)
+ {
+ this.value = value;
+ portalObject.setDeclaredProperty(name, value);
+ }
+
+
+ /*
+ public List getIndices()
+ {
+ List list = new ArrayList(value.size());
+ for (int i = 0;i < value.size();i++)
+ {
+ list.add("index_" + i);
+ }
+ return list;
+ }
+
+ public String getLine()
+ {
+ return line;
+ }
+
+ public void setLine(String line)
+ {
+ this.line = line;
+ }
+ */
+
+ public void select()
+ {
+ if (container == null)
+ {
+ throw new IllegalStateException("Not attached to a container");
+ }
+ container.selectedIndex = container.entries.indexOf(this);
+ }
+
+ /*
+ public void deleteLine(ActionEvent event)
+ {
+ String s = event.getComponent().getId();
+ int index = Integer.parseInt(s.substring(4));
+ List list = new ArrayList(value.asStringList());
+ list.remove(index);
+ String[] strings = (String[])list.toArray(new String[list.size()]);
+ value = new StringValue(strings);
+ stale = true;
+ }
+
+ public void appendLine()
+ {
+ List list = new ArrayList(value.asStringList());
+ list.add(line);
+ String[] strings = (String[])list.toArray(new String[list.size()]);
+ value = new StringValue(strings);
+ stale = true;
+ line = null;
+ }
+
+
+ public Class getType(Object propertyName) throws IllegalArgumentException
+ {
+ if (propertyName instanceof String)
+ {
+ String s = (String)propertyName;
+ if (s.startsWith("index_"))
+ {
+ return String.class;
+ }
+ }
+ return null;
+ }
+ */
+
+ /*
+ public PropertyValue getValue(Object propertyName) throws IllegalArgumentException
+ {
+ if (propertyName instanceof String)
+ {
+ String s = (String)propertyName;
+ if (s.startsWith("index_"))
+ {
+ int index = Integer.parseInt(s.substring(6));
+ return new PropertyValue(value.asStringList().get(index));
+ }
+ }
+ return null;
+ }
+
+ public boolean setValue(Object propertyName, Object value) throws
IllegalArgumentException
+ {
+ if (propertyName instanceof String)
+ {
+ String s = (String)propertyName;
+ if (s.startsWith("index_"))
+ {
+ String[] tmp = this.value.asStringArray();
+ int index = Integer.parseInt(s.substring(6));
+ tmp[index] = (String)value;
+ this.value = new StringValue(tmp);
+ stale = true;
+ return true;
+ }
+ }
+ return false;
+ }
+*/
+ public int compareTo(Object o)
+ {
+ PropertyBean that = (PropertyBean)o;
+ return name.compareTo(that.name);
+ }
+
+}
Added: trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.java
(rev 0)
+++ trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/PropertyInfo.java 2007-04-02
15:22:03 UTC (rev 6900)
@@ -0,0 +1,87 @@
+/******************************************************************************
+ * 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.common.i18n.LocalizedString;
+import org.jboss.portal.core.model.portal.PortalObject;
+
+/**
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @version $Revision: 1.1 $
+ */
+public class PropertyInfo
+{
+ /** . */
+ private String name;
+
+ /** . */
+ private boolean readOnly;
+
+ /** . */
+ private LocalizedString displayName;
+
+ private PortalObject portalObject;
+
+ public PropertyInfo(PortalObject portalObject, String name, boolean readOnly)
+ {
+ this.name = name;
+ this.readOnly = readOnly;
+ this.portalObject = portalObject;
+ }
+
+ public LocalizedString getDisplayName()
+ {
+ return displayName;
+ }
+
+ public void setDisplayName(LocalizedString displayName)
+ {
+ this.displayName = displayName;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ public void setReadOnly(boolean readOnly)
+ {
+ this.readOnly = readOnly;
+ }
+
+ public PortalObject getPortalObject()
+ {
+ return portalObject;
+ }
+
+}
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PropertyAction.java
===================================================================
---
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PropertyAction.java 2007-04-01
01:23:45 UTC (rev 6899)
+++
trunk/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PropertyAction.java 2007-04-02
15:22:03 UTC (rev 6900)
@@ -22,7 +22,10 @@
******************************************************************************/
package org.jboss.portal.core.admin.ui.actions;
+import java.util.Map;
+
import org.jboss.portal.core.admin.ui.PortalObjectManagerBean;
+import org.jboss.portal.core.impl.model.portal.PortalObjectImpl;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
@@ -101,6 +104,9 @@
public void removeProperty()
{
+ Map pmap =
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
+ String name = (String)pmap.get("name");
+
((PortalObjectImpl)getPortalObjectManager().getSelectedObject()).getDeclaredPropertyMap().remove(name);
}
public void updateProperty()
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2007-04-01
01:23:45 UTC (rev 6899)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2007-04-02
15:22:03 UTC (rev 6900)
@@ -304,6 +304,10 @@
<to-view-id>/WEB-INF/jsf/editPageSecurity.xhtml</to-view-id>
</navigation-case>
<navigation-case>
+ <from-outcome>editProperties</from-outcome>
+ <to-view-id>/WEB-INF/jsf/editProperties.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
<from-outcome>editPageTheme</from-outcome>
<to-view-id>/WEB-INF/jsf/editPageTheme.xhtml</to-view-id>
</navigation-case>
Added:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/editProperties.xhtml
===================================================================
---
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/editProperties.xhtml
(rev 0)
+++
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/common/editProperties.xhtml 2007-04-02
15:22:03 UTC (rev 6900)
@@ -0,0 +1,62 @@
+<div
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:c="http://java.sun.com/jstl/core">
+
+ <h:form>
+ <table width="100%">
+ <thead class="portlet-section-header"
style="text-align:left;">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Delete</th>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach items="#{properties.entries}" var="prop"
varStatus="status">
+ <tr class="#{status.index % 2 == 0 ?
'portlet-section-body' : 'portlet-section-alternate'}">
+ <td>
+ <h:outputText>#{prop.name}</h:outputText>
+ </td>
+ <td>
+ <h:inputText value="#{prop.value}"/>
+ </td>
+ <td>
+ <h:commandLink
action="#{propertyAction.removeProperty}">
+ <h:outputText>Delete</h:outputText>
+ <f:param name="name"
value="#{prop.name}"/>
+ </h:commandLink>
+ </td>
+ </tr>
+ </c:forEach>
+ </tbody>
+ </table>
+ <h:commandButton value="Update"
styleClass="portlet-form-button"/>
+ </h:form>
+
+ <h:form>
+ <table width="100%">
+ <thead class="portlet-section-header"
style="text-align:left;">
+ <tr>
+ <th>Property name</th>
+ <th>Property value</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="#{status.index % 2 == 0 ? 'portlet-section-body' :
'portlet-section-alternate'}">
+ <td>
+ <h:inputText value="#{propertyAction.selectedProperty}"
+ validator="#{propertyAction.validatePropertyName}"
/>
+ </td>
+ <td>
+ <h:inputText value="#{propertyAction.propertyValue}"/>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <h:commandButton value="Add property"
styleClass="portlet-form-button"
action="#{propertyAction.updateProperty}"/>
+ </h:form>
+
+</div>
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-04-01
01:23:45 UTC (rev 6899)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-04-02
15:22:03 UTC (rev 6900)
@@ -15,7 +15,10 @@
</h:commandLink> | </h:panelGroup><h:commandLink
action="editPageSecurity"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Security"/>
<f:param name="id"
value="#{portalobjectmgr.selectedObject.id}"/>
- </h:commandLink> | <h:commandLink action="editPageTheme"
actionListener="#{portalobjectmgr.selectObject}">
+ </h:commandLink> | <h:commandLink action="editProperties"
actionListener="#{portalobjectmgr.selectObject}">
+ <h:outputText value="Properties"/>
+ <f:param name="id"
value="#{portalobjectmgr.selectedObject.id}"/>
+ </h:commandLink> | <h:commandLink
action="editPageTheme"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Theme"/>
<f:param name="id"
value="#{portalobjectmgr.selectedObject.id}"/>
</h:commandLink> | <h:panelGroup
rendered="#{!((portalobjectmgr.selectedObject.type == 1) and
((portalobjectmgr.selectedObject.name == 'admin') or
(portalobjectmgr.selectedObject.name == 'template') or
(portalobjectmgr.selectedObject.name == 'default')))}"><h:commandLink
action="renameObject"
actionListener="#{portalobjectmgr.selectObject}">
Added: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editProperties.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editProperties.xhtml
(rev 0)
+++
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editProperties.xhtml 2007-04-02
15:22:03 UTC (rev 6900)
@@ -0,0 +1,18 @@
+<div
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html">
+
+ <ui:composition template="objectTemplate.xhtml">
+
+ <ui:define name="content">
+
+ <ui:include src="common/editProperties.xhtml">
+ <ui:param name="properties"
value="#{portalobjectmgr.selectedProperties}"/>
+ </ui:include>
+
+ </ui:define>
+
+ </ui:composition>
+</div>
\ No newline at end of file
Modified:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectNavigation.xhtml
===================================================================
---
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectNavigation.xhtml 2007-04-01
01:23:45 UTC (rev 6899)
+++
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/objectNavigation.xhtml 2007-04-02
15:22:03 UTC (rev 6900)
@@ -30,6 +30,9 @@
<h:commandLink action="editPortalSecurity"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Security"/>
<f:param name="id" value="#{object.id}"/>
+ </h:commandLink> | <h:commandLink
action="editProperties"
actionListener="#{portalobjectmgr.selectObject}">
+ <h:outputText value="Properties"/>
+ <f:param name="id" value="#{object.id}"/>
</h:commandLink> | <h:commandLink
action="editPortalTheme"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Theme"/>
@@ -71,7 +74,10 @@
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Security"/>
<f:param name="id" value="#{object.id}"/>
- </h:commandLink> | <h:commandLink action="editPageTheme"
actionListener="#{portalobjectmgr.selectObject}">
+ </h:commandLink> | <h:commandLink action="editProperties"
actionListener="#{portalobjectmgr.selectObject}">
+ <h:outputText value="Properties"/>
+ <f:param name="id" value="#{object.id}"/>
+ </h:commandLink> | <h:commandLink
action="editPageTheme"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Theme"/>
<f:param name="id" value="#{object.id}"/>
</h:commandLink> | <h:commandLink action="renameObject"
actionListener="#{portalobjectmgr.selectObject}">
@@ -107,6 +113,9 @@
<h:commandLink action="editWindowTheme"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Theme"/>
<f:param name="id" value="#{object.id}"/>
+ </h:commandLink> | <h:commandLink
action="editProperties"
actionListener="#{portalobjectmgr.selectObject}">
+ <h:outputText value="Properties"/>
+ <f:param name="id" value="#{object.id}"/>
</h:commandLink> | <h:commandLink action="renameObject"
actionListener="#{portalobjectmgr.selectObject}">
<h:outputText value="Rename"/>
<f:param name="id" value="#{object.id}"/>