[richfaces-svn-commits] JBoss Rich Faces SVN: r2164 - in trunk: ui/tree/src/main/java/org/richfaces/renderkit and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Wed Aug 8 19:00:09 EDT 2007
Author: nbelaevski
Date: 2007-08-08 19:00:09 -0400 (Wed, 08 Aug 2007)
New Revision: 2164
Modified:
trunk/test-applications/facelets/
trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java
trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
trunk/ui/tree/src/main/templates/htmlTree.jspx
Log:
Tree updated to render correctly with new markup
Property changes on: trunk/test-applications/facelets
___________________________________________________________________
Name: svn:ignore
- target
+ target
.classpath
.project
.settings
Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java 2007-08-08 22:09:01 UTC (rev 2163)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java 2007-08-08 23:00:09 UTC (rev 2164)
@@ -95,16 +95,16 @@
level -= floatingKey.depth();
}
- if (level != 0) {
+ //if (level != 0) {
beforeUp(level);
- }
+ //}
}
this.tree.setRowKey(context, null);
- if (level != 0) {
+ //if (level != 0) {
afterUp(level);
- }
+ //}
}
this.rowKey = newRowKey;
Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-08-08 22:09:01 UTC (rev 2163)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-08-08 23:00:09 UTC (rev 2164)
@@ -35,21 +35,20 @@
import javax.faces.context.ResponseWriter;
import javax.faces.el.MethodBinding;
+import org.ajax4jsf.javascript.JSFunction;
+import org.ajax4jsf.javascript.JSReference;
+import org.ajax4jsf.javascript.ScriptUtils;
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.ComponentsVariableResolver;
-import org.ajax4jsf.renderkit.RendererUtils;
-import org.ajax4jsf.javascript.JSFunction;
-import org.ajax4jsf.javascript.JSReference;
-import org.ajax4jsf.javascript.ScriptUtils;
-import org.richfaces.model.LastElementAware;
-import org.richfaces.model.TreeRowKey;
import org.richfaces.component.UITree;
import org.richfaces.component.UITreeNode;
import org.richfaces.component.nsutils.NSUtils;
-import org.richfaces.model.TreeRange;
import org.richfaces.component.state.TreeState;
import org.richfaces.component.state.TreeStateAdvisor;
+import org.richfaces.model.LastElementAware;
+import org.richfaces.model.TreeRange;
+import org.richfaces.model.TreeRowKey;
public abstract class TreeRendererBase extends CompositeRenderer {
@@ -99,10 +98,18 @@
}
public void afterUp(int levels) throws IOException {
+ Context c = droppedDownToLevelFlag.getContext();
+ if (c != null) {
+ openDiv(c);
+ closeDiv();
+ droppedDownToLevelFlag.setContext(null);
+ }
+
//writer.write("** afterUp **");
for (int i = 0; i < levels; i++) {
closeDiv();
}
+
//if (!isLastElement) closeDiv();
}
@@ -110,36 +117,54 @@
}
public void beforeDown() throws IOException {
+ Context c = droppedDownToLevelFlag.getContext();
+ droppedDownToLevelFlag.setContext(null);
+ openDiv(c);
//writer.write("** beforeDown **");
- droppedDownToLevelFlag.setFlag();
- if (this.getRowKey()==null ) openDiv();
+ //if (this.getRowKey()==null ) openDiv();
}
public void beforeUp(int levels) throws IOException {
}
- public void openDiv() throws IOException {
+ int stat = 0;
+
+ public void openDiv(Context context) throws IOException {
+ stat++;
writer.startElement("div", tree);
- getUtils().writeAttribute(writer, "id", clientId + "childs");
+
+ if (context == null) {
+ context = new Context();
+ context.setLast(this.actualLast);
+ context.setClientId(this.clientId);
+ context.setExpanded(this.expanded);
+ context.setRowKey(this.getRowKey());
+ }
+
+ getUtils().writeAttribute(writer, "id", context.getClientId() + "childs");
- if (!expanded) {
+ if (!context.isExpanded()) {
getUtils().writeAttribute(writer, "style", "display: none;");
}
String styleClasses = "";
- if (this.getRowKey() != null) {
+ if (context.getRowKey() != null) {
styleClasses = "dr-tree-h-ic-div";
- if (!isStackedLastElement() && showLines) styleClasses += " dr-tree-h-ic-line";
+ if (!context.isLast() && showLines) styleClasses += " dr-tree-h-ic-line";
}
if (styleClasses!="") getUtils().writeAttribute(writer, "class", styleClasses);
}
public void closeDiv() throws IOException {
writer.endElement("div");
+ stat--;
}
+ public int getStat() {
+ return stat;
+ }
}
private class DataVisitorWithLastElement implements DataVisitor,
@@ -172,20 +197,28 @@
navigator.followRowKey(context, (TreeRowKey) rowKey);
- if (!flag.isFlagSet()) {
+ Context c = flag.getContext();
+ if (c != null) {
+ navigator.openDiv(c);
navigator.closeDiv();
- } else {
- flag.resetFlag();
}
-
+
UITreeNode nodeFacet = tree.getNodeFacet();
Object oldAttrValue = nodeFacet.getAttributes().get("isLastElement");
try {
nodeFacet.getAttributes().put("isLastElement", new Boolean(isLastElement));
renderChild(context, nodeFacet);
+
+ c = new Context();
+ c.setClientId(tree.getClientId(context) + ":");
+ c.setLast(this.isLastElement);
+ c.setExpanded(tree.isExpanded());
+ c.setRowKey(tree.getRowKey());
+ flag.setContext(c);
+
//writer.write("** after renderChild **");
- navigator.openDiv();
+ //navigator.openDiv();
} finally {
if (oldAttrValue != null) {
nodeFacet.getAttributes().put("isLastElement", oldAttrValue);
@@ -304,13 +337,15 @@
tree.setRowKey(context, key);
String id = tree.getNodeFacet().getClientId(context);
+ String treeChildrenId = tree.getClientId(context) + ":childs";
if (ids.isEmpty() || ids.contains(id) || ids.contains(tree.getClientId(context))/* handle tree updates requests */) {
writeContent(context, tree, key);
encodeScripts = true;
renderedAreas.add(id);
encodedAreaIds.add(id);
- renderedAreas.add(id+":childs");
- encodedAreaIds.add(id+":childs");
+
+ renderedAreas.add(treeChildrenId);
+ //encodedAreaIds.add(id+":childs");
}
}
@@ -469,7 +504,7 @@
input.captureOrigValue();
if (key != null) {
- droppedDownToLevelFlag.setFlag();
+ droppedDownToLevelFlag.setContext(null);
//openLevelDownTable(context, input, writer);
input.setRowKey(context, key);
} else {
@@ -513,6 +548,8 @@
}*/
levelNavigator.followRowKey(context, null);
+
+ System.out.println("TreeRendererBase.writeContent() " + levelNavigator.getStat());
} finally {
input.setRowKey(context, null);
input.restoreOrigValue();
@@ -521,17 +558,44 @@
}
class Flag {
- private boolean flag = false;
-
- public void setFlag() {
- this.flag = true;
+ private Context context;
+
+ public Context getContext() {
+ return context;
}
- public void resetFlag() {
- this.flag = false;
+ public void setContext(Context context) {
+ this.context = context;
}
+}
- public boolean isFlagSet() {
- return flag;
+class Context {
+ private String clientId;
+ private Object rowKey;
+ private boolean expanded;
+ private boolean last;
+ public String getClientId() {
+ return clientId;
}
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+ public Object getRowKey() {
+ return rowKey;
+ }
+ public void setRowKey(Object rowKey) {
+ this.rowKey = rowKey;
+ }
+ public boolean isExpanded() {
+ return expanded;
+ }
+ public void setExpanded(boolean expanded) {
+ this.expanded = expanded;
+ }
+ public boolean isLast() {
+ return last;
+ }
+ public void setLast(boolean last) {
+ this.last = last;
+ }
}
\ No newline at end of file
Modified: trunk/ui/tree/src/main/templates/htmlTree.jspx
===================================================================
--- trunk/ui/tree/src/main/templates/htmlTree.jspx 2007-08-08 22:09:01 UTC (rev 2163)
+++ trunk/ui/tree/src/main/templates/htmlTree.jspx 2007-08-08 23:00:09 UTC (rev 2164)
@@ -49,10 +49,11 @@
<vcp:body />
</tbody>
</table-->
- <div id="#{clientId}:children">
+ <!-- div id="#{clientId}:children">
<vcp:body />
- </div>
+ </div -->
+ <vcp:body />
<f:call name="encodeSelectionStateInput" />
<f:clientId var="clientId" />
More information about the richfaces-svn-commits
mailing list