r1501 - in xwiki/trunk: core/src/main/java/com/xpn/xwiki/objects/classes src/main/web/templates
Jeremi Joslin
jeremi at users.forge.objectweb.org
Fri Nov 3 14:25:43 CET 2006
Author: jeremi
Date: 2006-11-03 14:25:42 +0100 (Fri, 03 Nov 2006)
New Revision: 1501
Modified:
xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java
xwiki/trunk/src/main/web/templates/treeview.vm
Log:
Add the view mode for the DBTreeList
Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java 2006-11-03 13:17:09 UTC (rev 1500)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/DBTreeListClass.java 2006-11-03 13:25:42 UTC (rev 1501)
@@ -33,6 +33,7 @@
import org.apache.velocity.VelocityContext;
import org.apache.ecs.xhtml.select;
import org.apache.ecs.xhtml.option;
+import org.apache.commons.lang.StringUtils;
public class DBTreeListClass extends DBListClass {
@@ -103,8 +104,25 @@
list.add(item);
}
+ public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ List selectlist;
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if (prop == null) {
+ selectlist = new ArrayList();
+ } else if ((prop instanceof ListProperty) || (prop instanceof DBStringListProperty)) {
+ selectlist = (List) prop.getValue();
+ } else {
+ selectlist = new ArrayList();
+ selectlist.add(prop.getValue());
+ }
+ String result = displayTree(name, prefix, selectlist, "view", context);
+ if (result.equals(""))
+ super.displayView(buffer, name, prefix, object, context);
+ else
+ buffer.append(result);
+ }
+
public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- VelocityContext vcontext = (VelocityContext) context.get("vcontext");
List selectlist;
BaseProperty prop = (BaseProperty) object.safeget(name);
if (prop == null) {
@@ -117,12 +135,7 @@
}
if (isPicker()) {
- Map map = getTreeMap(context);
- vcontext.put("selectlist", selectlist);
- vcontext.put("fieldname", prefix + name);
- vcontext.put("tree", map);
- vcontext.put("treelist", getTreeList(map));
- String result = context.getWiki().parseTemplate("treeview.vm", context);
+ String result = displayTree(name, prefix, selectlist, "edit", context);
if (result.equals(""))
displayTreeSelectEdit(buffer, name, prefix, object, context);
else {
@@ -134,6 +147,17 @@
}
}
+ private String displayTree(String name, String prefix, List selectlist, String mode, XWikiContext context){
+ VelocityContext vcontext = (VelocityContext) context.get("vcontext");
+ Map map = getTreeMap(context);
+ vcontext.put("selectlist", selectlist);
+ vcontext.put("fieldname", prefix + name);
+ vcontext.put("tree", map);
+ vcontext.put("treelist", getTreeList(map));
+ vcontext.put("mode", mode);
+ return context.getWiki().parseTemplate("treeview.vm", context);
+ }
+
protected void addToSelect(select select, List selectlist, Map map, Map treemap, String parent, String level, XWikiContext context) {
List list = (List)treemap.get(parent);
if (list!=null) {
Modified: xwiki/trunk/src/main/web/templates/treeview.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/treeview.vm 2006-11-03 13:17:09 UTC (rev 1500)
+++ xwiki/trunk/src/main/web/templates/treeview.vm 2006-11-03 13:25:42 UTC (rev 1501)
@@ -1,4 +1,4 @@
-#if(!$treeviewid)
+{pre}#if(!$treeviewid)
#set($treeviewid = 1)
#else
#set($treeviewid = 1 + $treeviewid)
@@ -28,6 +28,15 @@
nodes[id].onCheckClick = onCheckClick;
}
+ function addTreeElementViewMode(tree, nodes, id, text, parent) {
+ var parent2;
+ if (parent=="")
+ parent2 = tree.getRoot();
+ else
+ parent2 = nodes[parent];
+ nodes[id] = new YAHOO.widget.TextNode(text, parent2, true);
+ }
+
var callback = null;
function onCheckClick(eventType, args, tree) {
var out = [];
@@ -67,12 +76,18 @@
#set($title_item = $item.value)
#end
#set($title_item = $title_item.replaceAll("[\r\n]"," "))
- addTreeElement(tree, nodes, "$item.id", "$title_item", "$item.parent", #if($checked) true #else false #end)
+ #if($mode == "view")
+ #if($checked)
+ addTreeElementViewMode(tree, nodes, "$item.id", "$title_item", "$item.parent")
+ #end
+ #else
+ addTreeElement(tree, nodes, "$item.id", "$title_item", "$item.parent", #if($checked) true #else false #end)
#end
+ #end
tree.draw();
// tree.checkClickEvent.subscribe(onCheckClick);
}
// Init the tree
treeInit${treeviewid}();
-</script>
+</script>{/pre}
\ No newline at end of file
More information about the Xwiki-notifications
mailing list