Heh, I was just going to complain that $list.sort didn't seem to work. I was trying to use closures to print with Groovy, and I was having problems, but the code you've got below works great. Thanks!!! shawn. Ludovic Dubost <[email protected]> 08/12/2005 02:19 PM Please respond to xwiki-users To [email protected] cc Subject Re: [xwiki-users] how to sort objects? The velocity version won't work because the sort function is not available.. Apparently Groovy does the magic.. I've added a sort() function to the xwiki API for the future.. In the meantime you can use groovy Ludovic Ludovic Dubost wrote:
Hi,
It should work both in groovy and velocity using the list.sort() function and xwiki.getArrayList() and xwiki.getHashMap() functions Something like
<%
catdoc = xwiki.getDocument("Blog.Categories") list = xwiki.getArrayList() map = xwiki.getHashMap() for(cat in catdoc.getObjects("Blog.Categories")) { name = catdoc.display("name", cat) list.add(name) map.put(name, cat) }
for(item in list.sort()) { cat = map.get(item) desc = catdoc.display("description", cat) println "* $item : $desc" } %>
#set($catdoc = $xwiki.getDocument("Blog.Categories")) #set($list = $xwiki.getArrayList()) #set($map = $xwiki.getHashMap()) #foreach($cat in $catdoc.getObjects("Blog.Categories")) #set($name = $catdoc.display("name", $cat)) #set($ok = $list.add($name)) $map.put($name, $cat) #end
#foreach($item in $list.sort()) #set($cat = $map.get($item)) #set($desc = $catdoc.display("description", $cat)) * $item : $desc" #end
Ludovic
[email protected] wrote:
I have a page with a number of objects, which I want to display in sorted order. I currently have code which can view all the items (the page as well as the class is "Main.Teams":
#set($teamsdoc = $xwiki.getDocument("Main.Teams")) #foreach($team in $teamsdoc.getObjects("Main.Teams")) * $team.get('name') #end
I allow users to add new teams, but they always go to the bottom of the list. However I'd like to print out them in order by the "name" property. I've tried using groovy for this, but I just can't get simple things (like printing list contents any way other than "print teams") to work. Can anyone help? Thanks ...
shawn.
------------------------------------------------------------------------
-- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
------------------------------------------------------------------------
-- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
-- Ludovic Dubost XPertNet: http://www.xpertnet.fr/ Blog: http://www.ludovic.org/blog/ XWiki: http://www.xwiki.com Skype: ldubost AIM: nvludo Yahoo: ludovic -- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws