hi Radek, On 01/25/2010 07:21 AM, Radek Rekas wrote:
Hi,
I am trying to change the values for a static list field in a wiki class programatically but so far I have only figured out how to display them. Is it possible to set class property values for static list fields programatically through velocity or groovy code?
yes, it is possible but you will need programming rights for that.
The code that I'm using to display the values is pasted below: #set($classdocname = "Test.TestClass") #set($classdoc = $xwiki.getDocument($classdocname)) #foreach($field in $classdoc.getxWikiClass().properties) * $field.prettyName
why iterating here? You should just #set($field = $classdoc.getxWikiClass().get("name of your static list property here")) see http://platform.xwiki.org/xwiki/bin/view/DevGuide/API for the API (the 'core' part)
$doc.displayEdit($field.xWikiClass.get("values"), "${field.name}_" , $field)
I couldn't say I really understand how this line displays the values of the property... However, in order to change them, you need to use the protected PropertyClass (com.xpn.xwiki.objects.classes.PropertyClass) of the $field, namely: $field.propertyClass which will be of type com.xpn.xwiki.objects.classes.StaticListClass if your field is a static list. Then you just play around with its values using: $field.propertyClass.values (for display) and #set($field.propertyClass.values = "val1|val2|val3") for edit. Happy hacking, Anca
#end
Thanks,
Radek _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users