You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sc...@apache.org on 2005/09/07 17:51:17 UTC

svn commit: r279360 - in /myfaces: examples/trunk/simple/ tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/

Author: schof
Date: Wed Sep  7 08:51:08 2005
New Revision: 279360

URL: http://svn.apache.org/viewcvs?rev=279360&view=rev
Log:
Fixes MYFACES-531

Added:
    myfaces/examples/trunk/simple/tree2NoNav.jsp
Modified:
    myfaces/examples/trunk/simple/home.jsp
    myfaces/examples/trunk/simple/tree2.jsp
    myfaces/examples/trunk/simple/tree2ExpandAll.jsp
    myfaces/examples/trunk/simple/tree2NiceWrap.jsp
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java

Modified: myfaces/examples/trunk/simple/home.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/home.jsp?rev=279360&r1=279359&r2=279360&view=diff
==============================================================================
Binary files - no diff available.

Modified: myfaces/examples/trunk/simple/tree2.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/tree2.jsp?rev=279360&r1=279359&r2=279360&view=diff
==============================================================================
Binary files - no diff available.

Modified: myfaces/examples/trunk/simple/tree2ExpandAll.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/tree2ExpandAll.jsp?rev=279360&r1=279359&r2=279360&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/tree2ExpandAll.jsp (original)
+++ myfaces/examples/trunk/simple/tree2ExpandAll.jsp Wed Sep  7 08:51:08 2005
@@ -38,29 +38,23 @@
     <t:tree2 id="serverTree" value="#{treeBacker.expandedTreeData}" var="node" varNodeToggler="t" clientSideToggle="false" binding="#{treeBacker.tree}">
         <f:facet name="person">
             <h:panelGroup>
-                <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
-                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                </h:commandLink>
+                <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                 <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
             </h:panelGroup>
         </f:facet>
         <f:facet name="foo-folder">
             <h:panelGroup>
-                <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
-                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                </h:commandLink>
+                <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                 <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                 <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
             </h:panelGroup>
         </f:facet>
         <f:facet name="bar-folder">
             <h:panelGroup>
-                <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                    <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
-                    <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                </h:commandLink>
+                <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
+                <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                 <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                 <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
             </h:panelGroup>

Modified: myfaces/examples/trunk/simple/tree2NiceWrap.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/tree2NiceWrap.jsp?rev=279360&r1=279359&r2=279360&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/tree2NiceWrap.jsp (original)
+++ myfaces/examples/trunk/simple/tree2NiceWrap.jsp Wed Sep  7 08:51:08 2005
@@ -36,19 +36,15 @@
         <t:tree2 id="wrapTree" value="#{treeBacker.treeData}" var="node" varNodeToggler="t" clientSideToggle="false">
             <f:facet name="person">
                 <h:panelGrid id="a" columns="2" cellpadding="0" cellspacing="0">
-                    <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                        <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
-                        <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                    </h:commandLink>
+                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                     <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                 </h:panelGrid>
             </f:facet>
             <f:facet name="foo-folder">
                 <h:panelGrid id="b" columns="2" cellpadding="2" cellspacing="0">
-                    <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                        <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
-                        <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                    </h:commandLink>
+                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                     <h:panelGroup>
                         <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                         <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
@@ -57,10 +53,8 @@
             </f:facet>
             <f:facet name="bar-folder">
                 <h:panelGrid id="c" columns="2" cellpadding="2" cellspacing="0">
-                    <h:commandLink immediate="true" action="#{t.toggleExpanded}">
-                        <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
-                        <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
-                    </h:commandLink>
+                    <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                     <h:panelGroup>
                         <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                         <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>

Added: myfaces/examples/trunk/simple/tree2NoNav.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/tree2NoNav.jsp?rev=279360&view=auto
==============================================================================
--- myfaces/examples/trunk/simple/tree2NoNav.jsp (added)
+++ myfaces/examples/trunk/simple/tree2NoNav.jsp Wed Sep  7 08:51:08 2005
@@ -0,0 +1,81 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
+
+<!--
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+//-->
+<html>
+
+<%@include file="inc/head.inc" %>
+
+<body>
+
+<f:view>
+
+    <t:tree2 id="serverTree" value="#{treeBacker.treeData}" var="node" varNodeToggler="t" clientSideToggle="false" showNav="false">
+        <f:facet name="person">
+            <h:panelGroup>
+                <h:commandLink immediate="true" action="#{t.toggleExpanded}" rendered="#{!node.leaf}">
+                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
+                </h:commandLink>
+                <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded && node.leaf}" border="0"/>                
+                <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
+            </h:panelGroup>
+        </f:facet>
+        <f:facet name="foo-folder">
+            <h:panelGroup>
+                <h:commandLink immediate="true" action="#{t.toggleExpanded}" rendered="#{!node.leaf}">
+                    <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
+                </h:commandLink>
+                <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded && node.leaf}" border="0"/>
+                <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
+                <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
+            </h:panelGroup>
+        </f:facet>
+        <f:facet name="bar-folder">
+            <h:panelGroup>
+                <h:commandLink immediate="true" action="#{t.toggleExpanded}" rendered="#{!node.leaf}">                
+                    <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
+                    <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
+                </h:commandLink>                    
+                <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded && node.leaf}" border="0"/>
+                <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
+                <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
+            </h:panelGroup>
+        </f:facet>
+        <f:facet name="document">
+            <h:panelGroup>
+                <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}">
+                    <t:graphicImage value="/images/document.png" border="0"/>
+                    <h:outputText value="#{node.description}"/>
+                    <f:param name="docNum" value="#{node.identifier}"/>
+                </h:commandLink>
+            </h:panelGroup>
+        </f:facet>
+    </t:tree2>
+
+</f:view>
+
+<%@include file="inc/page_footer.jsp" %>
+
+</body>
+
+</html>
+

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java?rev=279360&r1=279359&r2=279360&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java Wed Sep  7 08:51:08 2005
@@ -76,11 +76,11 @@
     }
 
     private void restoreStateFromCookies(FacesContext context, UIComponent component) {
-    	String nodeId = null;
+        String nodeId = null;
         HtmlTree tree = (HtmlTree)component;
         String originalNodeId = tree.getNodeId();
-    	
-    	Map cookieMap = context.getExternalContext().getRequestCookieMap();
+        
+        Map cookieMap = context.getExternalContext().getRequestCookieMap();
         Cookie treeCookie = (Cookie)cookieMap.get(component.getId());
         if (treeCookie == null || treeCookie.getValue() == null)
         {
@@ -151,11 +151,11 @@
 
     public void encodeBegin(FacesContext context, UIComponent component) throws IOException
     {
-    	HtmlTree tree = (HtmlTree)component;
-    	// try to restore the tree state from cookies if no session scoped TreeState is supplied and preserveToggle is true in client mode 
-    	if (!tree.getDataModel().getTreeState().isTransient() && getBoolean(component, JSFAttr.CLIENT_SIDE_TOGGLE, true) && getBoolean(component, JSFAttr.PRESERVE_TOGGLE, true))
-    		restoreStateFromCookies(context, component);
-    	
+        HtmlTree tree = (HtmlTree)component;
+        // try to restore the tree state from cookies if no session scoped TreeState is supplied and preserveToggle is true in client mode 
+        if (!tree.getDataModel().getTreeState().isTransient() && getBoolean(component, JSFAttr.CLIENT_SIDE_TOGGLE, true) && getBoolean(component, JSFAttr.PRESERVE_TOGGLE, true))
+            restoreStateFromCookies(context, component);
+        
         // write javascript functions
         encodeJavascript(context, component);
     }
@@ -454,7 +454,18 @@
                 altSrc = "nav-plus-line-last.gif";
                 break;
 
+            // unacceptable bitmask combinations
+            
+            case (EXPANDED + LINES):
+            case (EXPANDED + LINES + LAST):
+            case (EXPANDED):
+            case (EXPANDED + LAST):
+                
+                throw new IllegalStateException("Encountered a node ["+ nodeId + "] + with an illogical state.  " +
+                                                "Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded.");                                                
+
             default:
+                // catch all for any other combinations
                 throw new IllegalArgumentException("Invalid bit mask of " + bitMask);
         }