Author: nbelaevski
Date: 2007-03-23 14:48:54 -0400 (Fri, 23 Mar 2007)
New Revision: 132
Modified:
trunk/richfaces-samples/tree-demo/src/main/java/org/richfaces/Bean.java
trunk/richfaces-samples/tree-demo/src/main/webapp/pages/index.jsp
trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java
trunk/richfaces/tree/src/main/java/org/richfaces/component/UITreeNode.java
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
trunk/richfaces/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js
trunk/richfaces/tree/src/main/templates/htmlTreeNode.jspx
Log:
RF-33 Fixes:
1. Now ClientId's of UITreeNode but not of UITree are used as required by DnD
contributors contract
2. Test case changed to print out drag & drop values
Modified: trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java 2007-03-23
16:51:36 UTC (rev 131)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java 2007-03-23
18:48:54 UTC (rev 132)
@@ -455,13 +455,6 @@
// fire node events
TreeEvents.invokeListenerBindings(this, event, getFacesContext());
- //TODO quick fix for UITreeNode to invoke listeners
- UITreeNode treeNode = getNodeFacet();
- if (treeNode != null) {
- if (event instanceof DragEvent || event instanceof DropEvent) {
- treeNode.broadcast(event);
- }
- }
if (event instanceof AjaxEvent) {
AjaxRendererUtils.addRegionsFromComponent(this, getFacesContext());
Modified: trunk/richfaces/tree/src/main/java/org/richfaces/component/UITreeNode.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/component/UITreeNode.java 2007-03-23
16:51:36 UTC (rev 131)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/component/UITreeNode.java 2007-03-23
18:48:54 UTC (rev 132)
@@ -14,7 +14,9 @@
import org.ajax4jsf.dnd.Draggable;
import org.ajax4jsf.dnd.Dropzone;
+import org.ajax4jsf.dnd.event.DragEvent;
import org.ajax4jsf.dnd.event.DragListener;
+import org.ajax4jsf.dnd.event.DropEvent;
import org.ajax4jsf.dnd.event.DropListener;
import org.ajax4jsf.framework.ajax.AjaxEvent;
import org.ajax4jsf.framework.renderer.AjaxRendererUtils;
@@ -98,6 +100,14 @@
FacesContext context = getFacesContext();
TreeEvents.invokeListenerBindings(this, event, context);
+ //TODO quick fix for UITree to invoke listeners
+ UITree tree = getUITree();
+ if (tree != null) {
+ if (event instanceof DragEvent || event instanceof DropEvent) {
+ tree.broadcast(event);
+ }
+ }
+
if (event instanceof AjaxEvent) {
AjaxRendererUtils.addRegionsFromComponent(this, getFacesContext());
}
Modified:
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
===================================================================
---
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java 2007-03-23
16:51:36 UTC (rev 131)
+++
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java 2007-03-23
18:48:54 UTC (rev 132)
@@ -71,15 +71,15 @@
protected String getToggleScript(FacesContext context, UITreeNode treeNode) {
UITree tree = treeNode.getUITree();
- String id = tree.getClientId(context);
+ String id = treeNode.getClientId(context);
String toggleId = id + NamingContainer.SEPARATOR_CHAR
+ UITree.TOGGLE_LINK_ATTRIBUTE;
if (UITree.SWITCH_AJAX.equals(tree.getSwitchType())) {
- JSFunction function = AjaxRendererUtils.buildAjaxFunction(tree,
+ JSFunction function = AjaxRendererUtils.buildAjaxFunction(tree.getNodeFacet(),
context);
Map eventOptions = AjaxRendererUtils.buildEventOptions(context,
- tree);
+ tree.getNodeFacet());
Map parameters = (Map) eventOptions.get("parameters");
parameters.remove(id);
parameters.put(toggleId, toggleId);
@@ -224,7 +224,7 @@
UITree tree = node.getUITree();
Map requestMap = context.getExternalContext().getRequestParameterMap();
- String id = tree.getClientId(context);
+ String id = node.getClientId(context);
TreeState componentState = (TreeState) tree.getComponentState();
TreeRowKey key = (TreeRowKey) tree.getRowKey();
@@ -286,11 +286,6 @@
return null;
}
- public String getParentClientId(FacesContext context, UITreeNode treeNode)
- throws IOException {
- return treeNode.getUITree().getClientId(context);
- }
-
public String getDraggableScriptOptions(FacesContext context,
UITreeNode component) {
ScriptOptions options = new TreeNodeOptions(component);
Modified:
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
---
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-03-23
16:51:36 UTC (rev 131)
+++
trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-03-23
18:48:54 UTC (rev 132)
@@ -77,7 +77,7 @@
navigator.followRowKey((TreeRowKey) rowKey);
if (tree.isSelected()) {
- holder.setValue(tree.getClientId(context));
+ holder.setValue(tree.getNodeFacet().getClientId(context));
}
if (!flag.isFlagSet()) {
@@ -153,7 +153,7 @@
TreeRowKey key = (TreeRowKey) ajaxKeysItr.next();
tree.setRowKey(key);
- String id = tree.getClientId(context);
+ String id = tree.getNodeFacet().getClientId(context);
if (ids.isEmpty() || ids.contains(id)) {
writeContent(context, tree, key);
encodeScripts = true;
@@ -271,18 +271,26 @@
Set set = tree.getAjaxKeys();
String varName = getJavaScriptVarName(context, tree);
- if (set != null) {
- Iterator iterator = set.iterator();
- while (iterator.hasNext()) {
- TreeRowKey rowKey = (TreeRowKey) iterator.next();
+ Object storedRowKey = tree.getRowKey();
+
+ try {
+ if (set != null) {
+ Iterator iterator = set.iterator();
+ while (iterator.hasNext()) {
+ TreeRowKey rowKey = (TreeRowKey) iterator.next();
- writer.writeText(varName + ".getNodeElements(" + varName
- + ", \"" + clientId + NamingContainer.SEPARATOR_CHAR
- + rowKey.toString() + "\");", null);
+ tree.setRowKey(rowKey);
+
+ writer.writeText(varName + ".getNodeElements(" + varName
+ + ", \"" + tree.getNodeFacet().getClientId(context) +
"\");", null);
+ }
+
+ set.clear();
}
-
- set.clear();
+ } finally {
+ tree.setRowKey(storedRowKey);
}
+
writer.endElement("script");
writer.endElement("div");
@@ -332,9 +340,18 @@
public void beforeDown() throws IOException {
droppedDownToLevelFlag.setFlag();
- String id = getTree().getClientId(context)
- + NamingContainer.SEPARATOR_CHAR;
+ String id;
+ Object rowKey = getTree().getRowKey();
+ if (rowKey == null) {
+ id = getTree().getClientId(context)
+ + NamingContainer.SEPARATOR_CHAR;
+ } else {
+ id = getTree().getNodeFacet().getClientId(context)
+ + NamingContainer.SEPARATOR_CHAR;
+ }
+
+
writer.startElement("tr", input);
getUtils().writeAttribute(writer, "id", id + "childs");
@@ -404,9 +421,10 @@
getUtils().writeAttribute(writer, "border", "0");
getUtils().writeAttribute(writer, "cellpadding", "0");
getUtils().writeAttribute(writer, "cellspacing", "0");
- getUtils().writeAttribute(writer, "id", tree.getClientId(context));
+ getUtils().writeAttribute(writer, "id",
tree.getNodeFacet().getClientId(context));
getUtils().writeAttribute(writer, "style", "width: 100%;");
-
+ getUtils().writeAttribute(writer, "rich:nodeId",
tree.getNodeFacet().getId());
+
writer.startElement("tbody", tree);
}
Modified:
trunk/richfaces/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js
===================================================================
---
trunk/richfaces/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js 2007-03-23
16:51:36 UTC (rev 131)
+++
trunk/richfaces/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item-dnd.js 2007-03-23
18:48:54 UTC (rev 132)
@@ -67,8 +67,8 @@
} */
drop: function(event, drag){
//alert("type:" + drag.type+" source:"+drag.source.id+"
target:"+this.id);
- drag.params[DnD.Dropzone.DROP_TARGET_ID] = this.tree.id;
-
+ drag.params[DnD.Dropzone.DROP_TARGET_ID] = this.id;
+
var opts = this.getDropzoneOptions();
if (opts && opts.parameters) {
Object.extend(drag.params, opts.parameters);
Modified: trunk/richfaces/tree/src/main/templates/htmlTreeNode.jspx
===================================================================
--- trunk/richfaces/tree/src/main/templates/htmlTreeNode.jspx 2007-03-23 16:51:36 UTC (rev
131)
+++ trunk/richfaces/tree/src/main/templates/htmlTreeNode.jspx 2007-03-23 18:48:54 UTC (rev
132)
@@ -11,7 +11,7 @@
component="org.richfaces.component.UITreeNode"
xmlns:ils="urn:intralinks">
- <c:set var="clientId" value="#{this:getParentClientId(context,
component) }" />
+ <f:clientId var="clientId" />
<f:resource
name="images/spacer.gif"
Modified: trunk/richfaces-samples/tree-demo/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/richfaces-samples/tree-demo/src/main/java/org/richfaces/Bean.java 2007-03-23
16:51:36 UTC (rev 131)
+++ trunk/richfaces-samples/tree-demo/src/main/java/org/richfaces/Bean.java 2007-03-23
18:48:54 UTC (rev 132)
@@ -241,7 +241,11 @@
}
public void processDrop(DropEvent dropEvent) {
+ System.out.println("Should be printed twice per event!!!");
System.out.println(dropEvent);
+ System.out.println("DragValue: " + dropEvent.getDragValue());
+ System.out.println("DropValue: " + dropEvent.getDropValue());
+ System.out.println("+++++");
}
public String getIconCollapsed() {
Modified: trunk/richfaces-samples/tree-demo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/richfaces-samples/tree-demo/src/main/webapp/pages/index.jsp 2007-03-23 16:51:36
UTC (rev 131)
+++ trunk/richfaces-samples/tree-demo/src/main/webapp/pages/index.jsp 2007-03-23 18:48:54
UTC (rev 132)
@@ -58,6 +58,7 @@
ajaxSubmitSelection="true" reRender="outputText,
selectOneListbox"
preserveModel="none"
dragIndicator="treeIndicator"
+ immediate="false"
acceptedTypes="file1"
dragType="file1"