On Mon, Sep 19, 2011 at 4:03 PM, Denis Gervalle <[email protected]> wrote:
> On Mon, Sep 19, 2011 at 12:15, Marius Dumitru Florea <
> [email protected]> wrote:
>
>> Hi devs,
>>
>> One of the features of the new sheet system is that it can
>> automatically detect and apply sheets. For instance, if you have:
>>
>> Space.YourClass (no objects)
>> Space.YourClassSheet (no objects)
>> Space.YourDocument (with an object of type YourClass and no include
>> macro call to YourSheet in the content)
>>
>> YourDocument will be automatically displayed with YourSheet. This
>>
>
> Well, following our discussion on IRC, this is really too much magic.
> Associating a sheet with class just by using its document name introduce a
> convention on document name. This would be the first time document name
> receive a meaning,

Not exactly actually since wiki id is extracted from the wiki
descriptor page name.

> and I am -1 releasing this without a larger discussion on
> introducing convention in document name.
> Moreover, keeping only explicit binding will automagically ;) solve your
> backward compatibility question.
>
> So +1 for keeping only explicit bindings without name convention.
>
> Denis
>
>
>> introduces a backward compatibility problem because the new sheet
>> system will be triggered for existing XWiki applications that haven't
>> been updated to use the new system. One way to prevent this is to
>> trigger the new system only if XWikDocumenti#getDefaultEditMode()
>> returns "edit" (it should return "inline" for current XWiki
>> applications). XWikiDocument#getDefaultEditMode() uses two classes,
>> EditModeClass and SheetClass, to determine the default edit mode.
>> EditModeClass was recently introduced so most of the current XWiki
>> applications are still using the deprecated SheetClass.
>>
>> In the new sheet system I needed a class to describe a sheet and I
>> opted for reusing the name of an existing class, SheetClass, because
>> IMO it is the best name for a class describing a sheet. As a
>> consequence the current implementation of
>> XWikiDocument#getDefaultEditMode() will return "inline" if you try to
>> include a sheet in the content of a document. This limits the new
>> sheet system because you should be able to do anything with the
>> document content, even including another sheet.
>>
>> I talked with Vincent about this and we found three solutions:
>>
>> (1) Change XWikiDocument#getDefaultEditMode() to use only the
>> EditModeClass. The breaks backward compatibility because current
>> applications have to update their sheets to use EditModeClass instead
>> of SheetClass (if they want to keep the old behavior)
>>
>> (2) Use XWikiDocument#getDefaultEditMode() only if a backward
>> compatibility configuration flag is set. This means that the
>> limitation I mentioned above (can't include a sheet in the document
>> content) will be true only if you want backward compatibility.
>>
>> (3) Use a different name for the class describing the sheet, e.g.
>> SheetDescriptorClass. This way XWikiDocument#getDefaultEditMode() will
>> keep returning "inline" for applications that are still using the
>> deprecated SheetClass.
>>
>> I'm going to implement (3) if no one is against it.
>>
>> Thanks,
>> Marius
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
> --
> Denis Gervalle
> SOFTEC sa - CEO
> eGuilde sarl - CTO
> _______________________________________________
> 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