You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Paul Baker <pb...@mindspring.com> on 2007/06/21 13:24:41 UTC
[Trinidad] MenuModel - duplicate tabs/menubar items
Hi,
I'm new to Trinidad. I'm trying to create a MenuModel and I'm having several
problems. Then only documentation that I have found is at:
http://myfaces.apache.org/trinidad/devguide/navigation.html
My "test" menu structure is:
Depth 0 a1 a2
/ \
Depth 1 a1b1 a1b2
When tab a1 is selected I want to display page a1b1
When tab a2 is selected I want to display page a2
Problem 1:
The menu items are being duplicated on both navigationPanes (tab and below
tab, a menu bar). I have attached a screen shot.
Problem 2:
When I select tab a1b2 page a1b1 is displayed.
Problem 3:
The tabs and menu bar items are never displayed as selected.
All of the pages are basically the same:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
<tr:document title="navigationPane Demo">
<tr:form>
<tr:panelGroupLayout layout="vertical">
<tr:panelPage>
<f:facet name="navigation2">
<tr:navigationPane hint="tabs" var="foo"
value="#{navigationModel.model}">
<f:facet name="nodeStamp">
<tr:commandNavigationItem text="#{foo.label}"
action="#{foo.getOutcome}" />
</f:facet>
</tr:navigationPane>
</f:facet>
<f:facet name="navigation3">
<tr:navigationPane hint="bar" level="1" var="foo"
value="#{navigationModel.model}">
<f:facet name="nodeStamp">
<tr:commandNavigationItem text="#{foo.label}"
action="#{foo.getOutcome}" />
</f:facet>
</tr:navigationPane>
</f:facet>
</tr:panelPage>
a1b1
</tr:panelGroupLayout>
</tr:form>
</tr:document>
</f:view>
Here is the faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer
Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<application>
<default-render-kit-id>
org.apache.myfaces.trinidad.core
</default-render-kit-id>
</application>
<navigation-rule>
<navigation-case>
<from-outcome>guide.navigationModel_a1b1</from-outcome>
<to-view-id>/pages/page_a1b1.jsp</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>guide.navigationModel_a1b2</from-outcome>
<to-view-id>/pages/page_a1b2.jsp</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>guide.navigationModel_a2</from-outcome>
<to-view-id>/pages/page_a2.jsp</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>*</from-outcome>
<to-view-id>/page.jsp</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<to-view-id>/page.jspx</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>prefs</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.PreferencesProxy
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>navItem_a1b1</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>label</property-name>
<value>a1b1</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/pages/page_a1b1.jsp</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.navigationModel_a1b1</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>navItem_a1b2</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>label</property-name>
<value>a1b2</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/pages/page_a1b2.jsp</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.navigationModel_a1b2</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>navItem_a1</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>children</property-name>
<list-entries>
<value-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</value-class>
<value>#{navItem_a1b1}</value>
<value>#{navItem_a1b2}</value>
</list-entries>
</managed-property>
<managed-property>
<property-name>label</property-name>
<value>a1</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/pages/page_a1b1.jsp</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.navigationModel_a1b1</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>navItem_a2</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>label</property-name>
<value>a2</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/pages/page_a2.jsp</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.navigationModel_a2</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>navTreeList</managed-bean-name>
<managed-bean-class>java.util.ArrayList</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<list-entries>
<value-class>
org.apache.myfaces.trinidaddemo.nav.DemoNavigationItem
</value-class>
<value>#{navItem_a1}</value>
<value>#{navItem_a2}</value>
</list-entries>
</managed-bean>
<managed-bean>
<managed-bean-name>navTreeModel</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidad.model.ChildPropertyTreeModel
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>childProperty</property-name>
<value>children</value>
</managed-property>
<managed-property>
<property-name>wrappedData</property-name>
<value>#{navTreeList}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>viewIdNavigationModel</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidad.model.ViewIdPropertyMenuModel
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>viewIdProperty</property-name>
<value>viewId</value>
</managed-property>
<managed-property>
<property-name>wrappedData</property-name>
<value>#{navTreeModel}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>navigationModel</managed-bean-name>
<managed-bean-class>
org.apache.myfaces.trinidaddemo.nav.MenuModelAdapter
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>model</property-name>
<value>#{viewIdNavigationModel}</value>
</managed-property>
<managed-property>
<property-name>aliasList</property-name>
<list-entries>
<value-class>java.lang.String</value-class>
<value>/pages/page_a1b1.jsp</value>
<value>#{navItem_a1b1.viewId}</value>
<value>/pages/page_a2.jsp</value>
<value>#{navItem_a2.viewId}</value>
</list-entries>
</managed-property>
</managed-bean>
</faces-config>
The classes:
MenuModelAdapter and DemoNavigationItem were taken from Trinidad CVS.
Any help or pointers will be greatly appreciated.
Thanks in advance,
Paul