Author: Alex.Kolonitsky
Date: 2009-02-06 05:38:52 -0500 (Fri, 06 Feb 2009)
New Revision: 12587
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
trunk/samples/treeModelDemo/src/main/webapp/pages/index.jsp
trunk/test-applications/regressionArea/regressionArea-tests/src/test/resources/testng.xml
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js
Log:
https://jira.jboss.org/jira/browse/RF-6029
treeNode ondropend and oncomplete never executed using DnD
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-02-05
23:20:35 UTC (rev 12586)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-02-06
10:38:52 UTC (rev 12587)
@@ -567,28 +567,6 @@
return null;
}
- public static void addProcessToAjaxContext(FacesContext facesContext, UIComponent
uiComponent){
- if (!(uiComponent instanceof AjaxComponent)) {
- return;
- }
-
- AjaxComponent ajaxComponent = (AjaxComponent) uiComponent;
- Set<String> toProcess = asSet(ajaxComponent.getProcess());
-
- if (null != toProcess) {
- HashSet<String> componentIdsToProcess = new HashSet<String>();
- for (String componentId : toProcess) {
- UIComponent component = RendererUtils.getInstance().
- findComponentFor(uiComponent, componentId);
-
- componentIdsToProcess.add( null == component ?
- componentId : component.getClientId(facesContext));
- }
- AjaxContext.getCurrentInstance(facesContext)
- .setAjaxAreasToProcess(componentIdsToProcess);
- }
- }
-
/**
* Get status area Id for given component.
*
Modified: trunk/samples/treeModelDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/treeModelDemo/src/main/webapp/pages/index.jsp 2009-02-05 23:20:35 UTC
(rev 12586)
+++ trunk/samples/treeModelDemo/src/main/webapp/pages/index.jsp 2009-02-06 10:38:52 UTC
(rev 12587)
@@ -1,3 +1,4 @@
+<%@ taglib
uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib
uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib
uri="http://java.sun.com/jsf/core" prefix="f" %>
@@ -3,5 +4,5 @@
<%@ taglib
uri="http://labs.jboss.com/jbossrichfaces/ui/treeModel"
prefix="model" %>
<%@ taglib
uri="http://labs.jboss.com/jbossrichfaces/ui/tree"
prefix="tree" %>
-<%@ taglib
uri="http://richfaces.org/a4j" prefix="a4j" %>
+<%@ taglib
uri="http://labs.jboss.com/jbossrichfaces/ui/drag-drop"
prefix="dnd" %>
<html>
@@ -22,29 +23,25 @@
<tree:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}"
switchType="client">
<model:treeNodesAdaptor id="project"
nodes="#{loaderBean.projects}" var="project">
<tree:treeNode>
- <a4j:commandLink action="#{project.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{project.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{project.click}" value="Project:
#{project.name}" />
</tree:treeNode>
<model:treeNodesAdaptor id="srcDir" var="srcDir"
nodes="#{project.srcDirs}">
<tree:treeNode>
- <a4j:commandLink action="#{srcDir.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{srcDir.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{srcDir.click}" value="Source
directory: #{srcDir.name}" />
</tree:treeNode>
<model:treeNodesAdaptor id="pkg" var="pkg"
nodes="#{srcDir.packages}">
<tree:treeNode>
- <a4j:commandLink action="#{pkg.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{pkg.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{pkg.click}" value="Package:
#{pkg.name}" />
</tree:treeNode>
<model:treeNodesAdaptor id="class" var="class"
nodes="#{pkg.classes}">
<tree:treeNode>
- <a4j:commandLink action="#{class.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{class.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{class.click}" value="Class:
#{class.name}" />
</tree:treeNode>
</model:treeNodesAdaptor>
@@ -52,15 +49,13 @@
<model:treeNodesAdaptor id="pkg1" var="pkg"
nodes="#{srcDir.packages}">
<tree:treeNode>
- <a4j:commandLink action="#{pkg.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{pkg.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{pkg.click}" value="Package1:
#{pkg.name}" />
</tree:treeNode>
<model:treeNodesAdaptor id="class1" var="class"
nodes="#{pkg.classes}">
<tree:treeNode>
- <a4j:commandLink action="#{class.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{class.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{class.click}" value="Class1:
#{class.name}" />
</tree:treeNode>
</model:treeNodesAdaptor>
@@ -70,8 +65,7 @@
<model:recursiveTreeNodesAdaptor id="dir" var="dir"
roots="#{project.dirs}" nodes="#{dir.directories}">
<tree:treeNode>
- <a4j:commandLink action="#{dir.click}"
ajaxSingle="true" value="Immediate " />
- <br />
+ <a4j:commandLink action="#{dir.click}"
ajaxSingle="true" value="Immediate " /><br />
<h:commandLink action="#{dir.click}" value="Directory:
#{dir.name}" />
</tree:treeNode>
@@ -121,7 +115,57 @@
</tree:treeNode>
</model:recursiveTreeNodesAdaptor>
</tree:tree>
+
+ <h3> treeNode ondropend and oncomplete never executed using DnD</h3>
+
+ <a4j:outputPanel id="treeWrapper" layout="block">
+ <tree:tree id="portTreePaneId" style="width:200px"
+ switchType="ajax"
ajaxSubmitSelection="true"
+ dragIndicator=":form:indicator" >
+ <model:treeNodesAdaptor nodes="#{loaderBean.projects}"
var="profile" >
+ <tree:treeNode acceptedTypes="pidDrag"
+ dropValue="#{profile.name}"
+ typeMapping="{pidDrag:pidDrag}"
+ oncomplete="out('complete');"
+ dragType="pidDrag"
+
dropListener="#{treeModelBean.processDrop}"
+ ondrop="out('ondrop');"
+ ondropover="out('ondropover');"
+ ondropend="out('ondropend');"
+ ondropout="out('ondropout');"
+
+ ondragenter="out('ondragenter')"
+ ondragend="out('ondragend')"
+ ondragexit="out('ondragexit')"
+ ondragstart="out('ondragstart')"
+ >
+ <a4j:outputPanel layout="block">
+ <h:outputText value="#{profile.name}" />
+ </a4j:outputPanel>
+ </tree:treeNode>
+
+ <model:treeNodesAdaptor nodes="#{profile.srcDirs}"
var="pid" >
+ <tree:treeNode dragType="pidDrag"
dragValue="#{pid.name}">
+ <dnd:dndParam name="label"
type="drag" value="dragged pid" />
+ <a4j:outputPanel layout="block">
+ <h:outputText value="#{pid.name}" />
+ </a4j:outputPanel>
+ </tree:treeNode>
+ </model:treeNodesAdaptor>
+ </model:treeNodesAdaptor>
+ </tree:tree>
+
+ </a4j:outputPanel>
+
</h:form>
</f:view>
+
+ <textarea id="debugOut" rows="5"
cols="120"></textarea>
+ <script type="text/javascript">
+ function out(str){
+ debugOut = document.getElementById("debugOut")
+ debugOut.value += str + "\n"
+ }
+ </script>
</body>
</html>
Modified:
trunk/test-applications/regressionArea/regressionArea-tests/src/test/resources/testng.xml
===================================================================
---
trunk/test-applications/regressionArea/regressionArea-tests/src/test/resources/testng.xml 2009-02-05
23:20:35 UTC (rev 12586)
+++
trunk/test-applications/regressionArea/regressionArea-tests/src/test/resources/testng.xml 2009-02-06
10:38:52 UTC (rev 12587)
@@ -15,11 +15,10 @@
</packages>
</test-->
<test name="FireFoxFunctionalTestsDANe">
- <parameter name="loadStyleStrategy" value="DEFAULT"/>
- <parameter name="loadScriptStrategy" value="ALL"/>
- <parameter name="filterPrefix" value="/faces/NEKO/"/>
+ <parameter name="loadStyleStrategy" value="DEFAULT"/>
+ <parameter name="loadScriptStrategy" value="ALL"/>
+ <parameter name="filterPrefix" value="/faces/NEKO/"/>
<parameter name="browser" value="*firefox"/>
-
<packages>
<package name="org.richfaces.testng" />
<package name="org.richfaces.testng.rf4507" />
@@ -31,6 +30,5 @@
<package name="org.richfaces.testng.rf5933" />
<package name="org.richfaces.testng.rf6035" />
</packages>
-
</test>
</suite>
Modified:
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
===================================================================
---
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2009-02-05
23:20:35 UTC (rev 12586)
+++
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2009-02-06
10:38:52 UTC (rev 12587)
@@ -34,6 +34,7 @@
import javax.faces.event.ActionEvent;
import javax.faces.event.PhaseId;
+import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.event.AjaxEvent;
import org.ajax4jsf.javascript.ScriptUtils;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
@@ -87,14 +88,8 @@
if (AjaxRendererUtils.isAjaxRequest(context)) {
- // add component itself to rendered list of components
- AjaxRendererUtils.addRegionByName(context, menuItem,
menuItem.getId());
-
- // add regions specified in the "reRender" attribute to
- // rendered list of components
- AjaxRendererUtils.addRegionsFromComponent(menuItem, context);
-
- AjaxRendererUtils.addProcessToAjaxContext(context, menuItem);
+ AjaxContext.getCurrentInstance(context)
+ .addAreasToProcessFromComponent(context, menuItem);
}
}
Modified:
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
===================================================================
---
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2009-02-05
23:20:35 UTC (rev 12586)
+++
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2009-02-06
10:38:52 UTC (rev 12587)
@@ -32,6 +32,7 @@
import javax.faces.context.FacesContext;
import org.ajax4jsf.component.AjaxSupport;
+import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSReference;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
@@ -105,7 +106,8 @@
// panel to rendered list of components
AjaxRendererUtils.addRegionsFromComponent(panel, context);
- AjaxRendererUtils.addProcessToAjaxContext(context, panel);
+ AjaxContext.getCurrentInstance(context)
+ .addAreasToProcessFromComponent(context, panel);
}
}
Modified:
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js
===================================================================
---
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js 2009-02-05
23:20:35 UTC (rev 12586)
+++
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js 2009-02-06
10:38:52 UTC (rev 12587)
@@ -75,6 +75,11 @@
}
this.tree.drop.call(this, event, drag);
+
+ var options = this.getDropzoneOptions();
+ if (options && options.ondropend) {
+ options.ondropend();
+ }
},
getIndicator: function() {