Vincent Massol wrote:
> How much duplication do you reckon there is between the 2 classes?
> 
> Might be worth refactoring and have a common ancestor to share code?

Hi,

There already is a common ancestor... It just happens that these 2 
extensions use a similar xclass, yet different enough not to justify a 
common method. At least not one common between these two, but maybe we 
can have a common ensureClassDocumentIsProperlyDefined method used by 
all the code that creates a class dynamically.

I had a discussion with Jerome about the skin extensions plugin(s), the 
main point being: Should there be only one plugin that offers both 
Javascript and CSS extensions? I said yes, as SkinExtensions isn't 
really a plugin, but a concept, or a meta-plugin, currently implemented 
in JavaScript and Style extensions, but that can be further explored. 
For example, another idea was to have LinkExtensions, which offer the 
ability for a page to "advertise" some links:
- a Project Description application could publish links to DOAP profiles 
for every project page
- a Social Networking application could publish FOAF documents for each user
- a slideshow application could publish first/prev/next/last/index links 
which would appear nicely in the navigation bar in Opera and in Firefox 
with the Site Navigation Bar extension; this is applicable for any 
structured multi-document information
- link to a custom RSS feed
- link to a RDF/OWL description of the document

This is pretty different from Jsx and Ssx, because there's no need for 
xobjects. Still, the same principle is used: the content pulls in links. 
The format of the links is quite different, though, so having one class 
that generates 5 types of links (jsx, static js file, ssx, static css 
file, user-defined link) is not clean enough.

And maybe sometime later we'll come with another type of skin extension, 
with a different way of working. And I think that by now we've learned 
that trying to make one class that should do more things is not a good 
idea, as otherwise we'll end up with huge classes, so it is not 
extensible enough to just add new methods and new if-then-else blocks 
whenever we want to add a new type of extensions. I'd say that the 
current model is good enough, as it provides a common framework and 
allows each extension type to define its own rules, keeping them 
separate (each extension type can be enabled or disabled in xwiki.cfg)

Yep, just had another idea of skin extensions for the future, XBL 
extensions; but that is for much later, when we'll be able to use XBL files.
-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to