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

