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 < calebdeli...@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 < > > calebdeli...@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/xwiki/api/Element.html > >> > >> 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/xwiki/objects/classes/BaseClass.html > >> > >> > >> 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@xwiki.org > >>> http://lists.xwiki.org/mailman/listinfo/users > >>> > >> _______________________________________________ > >> 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 > > > > _______________________________________________ > 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