[xwiki-users] Is it possible to programatically change xwiki class properties
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? 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 $doc.displayEdit($field.xWikiClass.get("values"), "${field.name}_" , $field) #end Thanks, Radek
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
participants (2)
-
Anca Luca -
Radek Rekas