On Mon, Oct 22, 2012 at 9:58 AM, Thomas Mortagne <[email protected]> wrote: > On Tue, Oct 16, 2012 at 3:46 AM, Sergiu Dumitriu <[email protected]> wrote: >> On 10/15/2012 06:21 AM, Marius Dumitru Florea wrote: >>> >>> Hi devs, >>> >>> I'd like to extend the set of property types available in the AWM >>> class editor (the field palette) and I'm not sure where is the best >>> place to do this: in the Java code (oldcore) or in the wiki. I prefer >>> the wiki. Let me explain. >>> >>> We recently added two new property types in the oldcore: email and >>> page. If you look at these two you'll see that email is just a string >>> property with a default validation regexp and page is just a dblist >>> property. >>> >>> The AWM class editor has a system that lets you define property >>> 'templates' in the wiki. To define the email property type I could do >>> this: >>> >>> * create AppWithinMinutes.Email xclass with a single String property >>> (the 'template') >>> * set the validation regexp to match an email address (but I can set >>> other meta properties as well with *default* values) >>> * add an object of type AppWithinMinutes.FormFieldClass to >>> AppWithinMinutes.Email to specify (among other things) the list of >>> meta properties that should be visible in the class editor. For >>> instance, I'd like to hide the validation regexp. >>> >>> At this point the AWM class editor will detect the email property type >>> and list it in the field palette and you can add it to your class. The >>> only problem is that when editing the class back the editor doesn't >>> have yet a way to determine what was the template used to add the >>> property so it uses the default one, the one for the String property >>> in this case. >>> >>> So my question is: do you think it's good to be able to define new >>> property types from the wiki (e.g. Image, Attachment, Color, etc.) or >>> should they all be written in Java? If the answer is Wiki, then I'll >>> think of a way to store the reference to the property template so that >>> the AWM class editor can edit back using the right template. >>> >>> Note that it crossed my mind to define a property type component that >>> can be implemented both from Java and from the wiki but transforming >>> the oldcore code that handles objects/properties into components is >>> very difficult. >>> >> >> If a property type makes sense, it should be available without using AWM, >> thus it should be a standard property type defined in Java. >> >> To introduce some components in the way properties are handled, I think that >> it might be enough to convert just the *MetaClass classes (from >> com.xpn.xwiki.objects.meta) into components, with >> com.xpn.xwiki.objects.meta.MetaClass updated to replace the static >> initialization with a component list lookup. Actual property classes are >> created by their corresponding *MetaClass, and actual properties are created >> by their corresponding *PropertyClass, so they don't have to be touched. >
> +1 for introducing components for this. > > Once you have components it's easy to either use wiki component or > introduce a special bridge to define new classes in the wiki. I'm going to push a branch with this in a few minutes and send a proposal. Thanks, Marius > >> -- >> Sergiu Dumitriu >> http://purl.org/net/sergiu/ >> >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs > > > > -- > Thomas Mortagne > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

