You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/09/14 18:40:47 UTC

svn commit: r280882 - in /myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2: HtmlTreeRenderer.java ToggleExpandedEvent.java UITreeData.java

Author: mbr
Date: Wed Sep 14 09:40:37 2005
New Revision: 280882

URL: http://svn.apache.org/viewcvs?rev=280882&view=rev
Log:
fix for MYFACES-564.
if server side toggle is used the toggle event is executed in process application phase now.
nodes where not processed if parent node is not expanded.

Added:
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/ToggleExpandedEvent.java
Modified:
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/HtmlTreeRenderer.java
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java

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=280882&r1=280881&r2=280882&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 14 09:40:37 2005
@@ -142,10 +142,8 @@
             {
                 return;
             }
-
-            tree.setNodeId(nodeId);
-            tree.toggleExpanded();
-            tree.setNodeId(originalNodeId);
+            
+            component.queueEvent(new ToggleExpandedEvent(component, nodeId));
         }
     }
 

Added: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/ToggleExpandedEvent.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/ToggleExpandedEvent.java?rev=280882&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/ToggleExpandedEvent.java (added)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/ToggleExpandedEvent.java Wed Sep 14 09:40:37 2005
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.custom.tree2;
+
+import javax.faces.component.UIComponent;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.FacesListener;
+import javax.faces.event.PhaseId;
+
+/**
+ * @author Mathias Broekelmann
+ *
+ */
+public class ToggleExpandedEvent extends FacesEvent
+{
+    private final String mNodeId;
+
+    /**
+     * @param uiComponent
+     * @param nodeId 
+     */
+    public ToggleExpandedEvent(UIComponent uiComponent, String nodeId)
+    {
+        super(uiComponent);
+        mNodeId = nodeId;
+        setPhaseId(PhaseId.INVOKE_APPLICATION);
+    }
+    
+    /**
+     * @return Returns the nodeId.
+     */
+    public String getNodeId()
+    {
+        return mNodeId;
+    }
+
+    /**
+     * @see javax.faces.event.FacesEvent#isAppropriateListener(javax.faces.event.FacesListener)
+     */
+    public boolean isAppropriateListener(FacesListener faceslistener)
+    {
+        return false;
+    }
+
+    /**
+     * @see javax.faces.event.FacesEvent#processListener(javax.faces.event.FacesListener)
+     */
+    public void processListener(FacesListener faceslistener)
+    {
+        throw new UnsupportedOperationException();
+    }
+}

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java?rev=280882&r1=280881&r2=280882&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java Wed Sep 14 09:40:37 2005
@@ -130,6 +130,14 @@
             setNodeId(currNodeId);
             return;
         }
+        else if(event instanceof ToggleExpandedEvent)
+        {
+            ToggleExpandedEvent toggleEvent = (ToggleExpandedEvent) event;
+            String currentNodeId = getNodeId();
+            setNodeId(toggleEvent.getNodeId());
+            toggleExpanded();
+            setNodeId(currentNodeId);
+        }
         else
         {
             super.broadcast(event);
@@ -492,8 +500,10 @@
                 facet.processUpdates(context);
                 break;
         }
-
-        processChildNodes(context, node, processAction);
+        if(isNodeExpanded())
+        {
+            processChildNodes(context, node, processAction);
+        }
     }
 
     /**