Thanks again Caleb,
I try your suggestion, but I keep getting a null value from *
valdoc.getDocument().**getxWikiClass().get("Project")*.
The fields Map (
*valdoc.getDocument().**getxWikiClass().fields.keySet(**)*) is empty.
I put the following line on the code:
*println valdoc.getDocument().getxWikiClass().toString()*
and the result is
*<class>
<name>ValidationSample.TestClass_6</name>
<customClass></customClass>
<customMapping></customMapping>
<defaultViewSheet></defaultViewSheet>
<defaultEditSheet></defaultEditSheet>
<defaultWeb></defaultWeb>
<nameField></nameField>
<validationScript></validationScript>
</class>*
I was expecting to see the properties on the XML.
Abel
On Fri, Mar 5, 2010 at 1:45 AM, Caleb James DeLisle <
calebdelisle(a)lavabit.com> wrote:
Abel Solórzano Astorga wrote:
Thanks Caleb,
I follow your recommendation, but I am getting a BaseClass with no
properties.
The class I am creating it is supposed to have 4 properties.
I am using the folling code to use the class:
*...*
*docname = xwiki.getUniquePageName("ValidationSample", "TestClass")
valdoc = xwiki.getDocument("ValidationSample." + docname)
ok = valdoc.newObject("ValidationSample.TestClass")
ok = valdoc.updateObjectFromRequest("ValidationSample.TestClass")*
*
...
valdoc.use("ValidationSample.TestClass")*
ValidationSample.TestClass has 4 properties (2 TextAreas and 2 a Static
Lists).
Then to get the property that I need to dynamically change:
*field = valdoc.getDocument().getxWikiClass().get("Project")*
But I get a null value from *
valdoc.getDocument().getxWikiClass().get("Project")*. The BaseClass
returned
"get" calls getField().getValue() maybe the problem is that BaseCollection
is used for objects and xclasses and
get is only useful for objects. Try getField()
by *valdoc.getDocument().getxWikiClass() *is a
*ValidationSample.TestClass *class
but the Properties collection is empty.
Because of a bug in groovy you can view
private fields so you can look
directly at the fields in the class with
for(String name : valdoc.getDocument().getxWikiClass().fields.keySet()) {
println(name);
}
Also if you want to change the prettyName of a class property (for
example),
you would have to cast the field to PropertyClass (didn't test this but it
should work.)
((PropertyClass)
valdoc.getDocument().getxWikiClass().getField()).setPrettyName("new name");
Caleb
Regards,
Abel
On Wed, Mar 3, 2010 at 1:04 AM, Caleb James DeLisle <
calebdelisle(a)lavabit.com> wrote:
> I can tell you that it can be done, anything which can be done by
> the user can be done with groovy.
>
> document.getxWikiClass().get("propertyName") returns an object of
> type element.
>
>
http://maven.xwiki.org/site/xwiki-core-parent/xwiki-core/apidocs/com/xpn/xw…
> I think you need to drop out of the api
section into the core (which
> requires programming rights but so does groovy)
> document.getDocument().getxWikiClass()
> gives you an object of type BaseClass which I think is what you are
> after.
>
>
http://maven.xwiki.org/site/xwiki-core-parent/xwiki-core/apidocs/com/xpn/xw…
>
> Caleb
>
>
> Abel Solórzano Astorga wrote:
>> Hi everybody,
>>
>> Is there a way to dynamically (through groovy code) change the values
on
> a
>> static list or on any other property of a xwiki class?
>>
>> I am using *field = document.getxWikiClass().get("propertyName")* to
get
the
> property.
>
> document is of type* com.xpn.xwiki.api.Document*.
>
> But when I try to change the value using *
> field.getPropertyClass().setValues("val1|val2|val3")* I get a *null*
value
> from* field.getPropertyClass()*
>
> I am following the information on
>
http://www.mail-archive.com/users@xwiki.org/msg10692.html
>
> I am using groovy on xwiki 2.0.2.24645
>
> Regards
>
> Abel
> _______________________________________________
> users mailing list
> users(a)xwiki.org
>
http://lists.xwiki.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org