myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lewis Henderson (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Comment Edited] (TRINIDAD-1055) Navigation from treeTable fails if rootNodeRendered="false"
Date Thu, 08 Nov 2012 16:30:13 GMT

    [ https://issues.apache.org/jira/browse/TRINIDAD-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13493281#comment-13493281
] 

Lewis Henderson edited comment on TRINIDAD-1055 at 11/8/12 4:28 PM:
--------------------------------------------------------------------

I am having major problems with the same/similar issue. It seems that NO events are fired
on editable components inside columns when the rootNodeRendered is set to false. This also
means that the components are not saving their values etc!
I am seeing this in 2.0.0.

                
      was (Author: cobraflow):
    I am having major problems with the same/similar issue. It seems that NO events are fired
on editable components inside columns when the rootNodeRendered is set to false. This also
meens that the components are not saving their values etc!
I am seeing this in 2.0.0.

                  
> Navigation from treeTable fails if rootNodeRendered="false"
> -----------------------------------------------------------
>
>                 Key: TRINIDAD-1055
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1055
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>    Affects Versions: 1.0.7-core
>         Environment: Observed with Windows XP, IE6 or Firefox 2.0.0.14, Apache MyFaces
Core 1.1.5 and Trinidad 1.0.7.
>            Reporter: Dirk Krummacker
>            Assignee: Andrew Robinson
>
> I have a simple JSP page with only a commandButton and a treeTable. The commandButton
is wired to an action listener method that populates a list with nodes and places it into
page flow scope. This node list serves as the treeTable's model. There is a column in the
treeTable displaying a commandLink, clicking on this link causes an action that is navigating
to a second page. The backing bean is in request scope.
> When I use the default rootNodeRendered="true", this page works as expected: First the
treeTable is empty. Clicking the button fills it, and now I can open and close all nodes.
If I click on a commandLink in the treeTable, I am taken to the correct page. Everything is
fine.
> However if I now set the treeTable's attribute rootNodeRendered="false" (and change nothing
otherwise), the commandLink navigation stops working. I still can open/close nodes, but any
click on a commandLink just causes the page to refresh.
> What is more, if I now click on "Expand all", the commandLinks suddenly start working
again, just as if this "Expand All" click
> "repaired" the treetable. Also, if I specify initiallyExpanded="true" in the JSP it works
even if the root node is hidden.
> There is no change in behavior if the action method is specified on the bean instead
of the row object.
> ----- treeTable.jsp -----
> <%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://myfaces.apache.org/trinidad" prefix="tr"%>
> <%@ taglib uri="http://myfaces.apache.org/trinidad/html" prefix="trh"%>
> <f:view>
>        <trh:html>
>        <trh:head title="TreeTable" />
>        <trh:body>
>                <tr:form>
>                        <tr:commandButton text="Populate"
>                                actionListener="#{treeTableBean.actionListener}" />
>                        <tr:treeTable value="#{treeTableBean.treeModel}" var="node"
> rootNodeRendered="false">
>                                <f:facet name="nodeStamp">
>                                        <tr:column sortable="true">
>                                                <f:facet name="header">
>                                                        <tr:outputText value="Name"
/>
>                                                </f:facet>
>                                                <tr:commandLink text="#{node.name}"
action="#{node.navigate}" />
>                                        </tr:column>
>                                </f:facet>
>                        </tr:treeTable>
>                </tr:form>
>        </trh:body>
>        </trh:html>
> </f:view>
> ----- TreeTableBean.java -----
> public class TreeTableBean {
>    public TreeModel getTreeModel() {
>        RequestContext requestContext = RequestContext.getCurrentInstance();
>        Map<String, Object> pageFlowScope = requestContext.getPageFlowScope();
>        List<Node> contents = (List<Node>) pageFlowScope.get("contents");
>        if (contents == null) {
>            contents = Collections.emptyList();
>            pageFlowScope.put("contents", contents);
>        }
>        return new ChildPropertyTreeModel(contents, "children");
>    }
>    public void actionListener(ActionEvent event) {
>        List<Node> noChildren = Collections.emptyList();
>        List<Node> childrenOfRoot = new ArrayList<Node>();
>        List<Node> childrenOfA = new ArrayList<Node>();
>        childrenOfA.add(new Node("aa", noChildren));
>        childrenOfA.add(new Node("ab", noChildren));
>        childrenOfA.add(new Node("ac", noChildren));
>        childrenOfRoot.add(new Node("a", childrenOfA));
>        List<Node> childrenOfB = new ArrayList<Node>();
>        childrenOfB.add(new Node("ba", noChildren));
>        childrenOfB.add(new Node("bb", noChildren));
>        childrenOfB.add(new Node("bc", noChildren));
>        childrenOfRoot.add(new Node("b", childrenOfB));
>        Node root = new Node("root", childrenOfRoot);
>        List<Node> contents = new ArrayList<Node>();
>        contents.add(root);
>        RequestContext requestContext = RequestContext.getCurrentInstance();
>        Map<String, Object> pageFlowScope = requestContext.getPageFlowScope();
>        pageFlowScope.put("contents", contents);
>    }
>    public static class Node implements Serializable {
>        private static final long serialVersionUID = 1L;
>        private String name;
>        private List<Node> children;
>        public Node(String name, List<Node> children) {
>            this.name = name;
>            this.children = children;
>        }
>        public String getName() {
>            return name;
>        }
>        public List<Node> getChildren() {
>            return children;
>        }
>        public String navigate() {
>            return "target";
>        }
>    }
> }
> ----- 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>
>        <managed-bean>
>                <managed-bean-name>treeTableBean</managed-bean-name>
>                <managed-bean-class>TreeTableBean</managed-bean-class>
>                <managed-bean-scope>request</managed-bean-scope>
>        </managed-bean>
>        <navigation-rule>
>                <display-name>treeTable</display-name>
>                <from-view-id>/treeTable.jsp</from-view-id>
>                <navigation-case>
>                        <from-outcome>target</from-outcome>
>                        <to-view-id>/target.jsp</to-view-id>
>                </navigation-case>
>        </navigation-rule>
> </faces-config>
> ----- end -----

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message