Re: [xwiki-users] Is it possible to programatically change xwiki class properties

2010-01-25 Thread Anca Luca
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
 users@xwiki.org
 http://lists.xwiki.org/mailman/listinfo/users
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


[xwiki-users] Is it possible to programatically change xwiki class properties

2010-01-24 Thread Radek Rekas
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
___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users