r1532 - in xwiki/trunk/core/src/main/java/com/xpn/xwiki: . api doc objects/classes objects/meta

Ludovic Dubost ludovic at users.forge.objectweb.org
Sat Nov 11 16:44:19 CET 2006


Author: ludovic
Date: 2006-11-11 16:44:19 +0100 (Sat, 11 Nov 2006)
New Revision: 1532

Modified:
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/meta/ListMetaClass.java
Log:
Added class to tooltip html
Added sorting for list fields

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java	2006-11-11 11:05:30 UTC (rev 1531)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/XWiki.java	2006-11-11 15:44:19 UTC (rev 1532)
@@ -4199,7 +4199,7 @@
 
     public String addTooltip(String html, String message, String params, XWikiContext context) {
       StringBuffer buffer = new StringBuffer();
-        buffer.append("<span onmouseover=\"");
+        buffer.append("<span class=\"tooltip_span\" onmouseover=\"");
         buffer.append(params);
         buffer.append("; return escape('");
         buffer.append(message.replaceAll("'","\\'"));

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java	2006-11-11 11:05:30 UTC (rev 1531)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java	2006-11-11 15:44:19 UTC (rev 1532)
@@ -1294,8 +1294,15 @@
             if (item.isFormField())
                 continue;
             byte[] data = fileupload.getFileItemData(name, context);
+            String filename;
+            String fname = fileupload.getFileName("filepath", context);
+            int i = fname.indexOf("\\");
+            if (i==-1)
+                i = fname.indexOf("/");
+            filename = fname.substring(i+1);
+            filename = filename.replaceAll("\\+"," ");
+
             if ((data != null) && (data.length > 0)){
-                String fname = fileupload.getFileName(name, context);
                 XWikiAttachment attachment = addAttachment(fname, data);
                 getDoc().saveAttachmentContent(attachment, context);
                 getDoc().getAttachmentList().add(attachment);

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-11 11:05:30 UTC (rev 1531)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-11 15:44:19 UTC (rev 1532)
@@ -984,7 +984,7 @@
             PropertyClass pclass = (PropertyClass) obj.getxWikiClass(context).get(fieldname);
             String tooltip = pclass.getTooltip();
             if ((tooltip!=null)&&(!tooltip.trim().equals(""))) {
-                String img = "<img src=\"" + context.getWiki().getSkinFile("info.gif", context) + "\" align=\"middle\" />";
+                String img = "<img src=\"" + context.getWiki().getSkinFile("info.gif", context) + "\" class=\"tooltip_image\" align=\"middle\" />";
                 return context.getWiki().addTooltip(img, tooltip, context);
             } else
              return "";

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java	2006-11-11 11:05:30 UTC (rev 1531)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java	2006-11-11 15:44:19 UTC (rev 1532)
@@ -35,17 +35,13 @@
 import com.xpn.xwiki.plugin.query.XWikiCriteria;
 import com.xpn.xwiki.plugin.query.XWikiQuery;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.collections.ListUtils;
 import org.apache.ecs.xhtml.input;
 import org.apache.ecs.xhtml.option;
 import org.apache.ecs.xhtml.select;
 import org.dom4j.Element;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public abstract class ListClass extends PropertyClass {
 
@@ -77,7 +73,15 @@
 		setStringValue("displayType", type);
 	}
 
-	public int getSize() {
+    public String getSort() {
+		return getStringValue("sort");
+	}
+
+	public void setSort(String sort) {
+		setStringValue("sort", sort);
+	}
+
+    public int getSize() {
 		return getIntValue("size");
 	}
 
@@ -324,6 +328,29 @@
 		}
 	}
 
+    protected class MapComparator implements Comparator {
+        protected Map map;
+        public MapComparator(Map map) {
+            this.map = map;
+        }
+
+        public int compare(Object o1, Object o2) {
+            String s1 = (String)map.get(o1);
+            String s2 = (String)map.get(o2);
+
+            if ((s1==null)&&(s2==null))
+             return 0;
+
+            if (s1==null)
+             return -1;
+
+            if (s2==null)
+             return 1;
+            
+            return s1.compareTo(s2);
+        }
+    }
+
     protected void displaySelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
 		select select = new select(prefix + name, 1);
 		select.setMultiple(isMultiSelect());
@@ -333,6 +360,15 @@
 
 		List list = getList(context);
         Map map = getMap(context);
+
+        String sort = getSort();
+        if (!"none".equals(sort)) {
+            if ("id".equals(sort))
+                Collections.sort(list);
+            if ("value".equals(sort))
+                Collections.sort(list , new MapComparator(map));
+        }
+
 		List selectlist;
 
 		BaseProperty prop = (BaseProperty) object.safeget(name);

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/meta/ListMetaClass.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/meta/ListMetaClass.java	2006-11-11 11:05:30 UTC (rev 1531)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/objects/meta/ListMetaClass.java	2006-11-11 15:44:19 UTC (rev 1532)
@@ -66,5 +66,11 @@
         size_class.setSize(5);
         size_class.setNumberType("integer");
         safeput("size", size_class);
+
+        StaticListClass sort_class = new StaticListClass(this);
+        sort_class.setName("sort");
+        sort_class.setPrettyName("Sort");
+        sort_class.setValues("none|id|value");
+        safeput("sort", sort_class);
     }
 }





More information about the Xwiki-notifications mailing list