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.

> --
> 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

Reply via email to