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