Hi,

I've been looking at component frameworks since a little while and it seems that the major difference between RIFE and all the rest is that RIFE focuses on componentization and reuse of fragments (portlets), pages and sites. Imho the site structure and embedded elements work very well for this.

However, when building reusable widgets, I think RIFE leaves people out in the cold. This is mainly because widgets have nothing to do with the flow of the site and function for one specific functionality within one particular page (button, drop down list, tree, ...). Declaring each widget inside the site structure is thus not appropriate and actually tedious to do. Also, widgets tend to have a rich, fine-grained API and event model. I would like to make RIFE just as easy to use and consistent in this regard as for the rest it provides.

Any ideas about how to still continue to use elements and provide widget-like capabilities?

I was thinking that removing the element declaration for this would be a first step. I mean by this that element implementations could provide their own declaration if that's appropriate. Annotations could be used for this together with sensible default behavior. For instance, the ID of the element could become the fully qualified class name and the url the lower-cased short class name (all overridable of course). Also, if any "do*" methods are present, RIFE can detect which submissions should be declared, and eventually also support method arguments and use those to declare the submission parameters (failing on multiple do* methods with the same name and different arguments). Another auto-detection could be the presence of setters for outputs and getters coupled with annotations for properties or inputs. I haven't thought of a solution for exits yet, besides annotations.

One part that's not fully solved with this, is an event model. This is something that widgets generally require and that in RIFE is limited to submissions. Any thoughts about this would be much appreciated.

A last issue if how to make these 'widget elements' known by the framework. I haven't really found a way yet that satisfies me entirely, but the most viable 'solution' that I currently have in mind is to support package-level declarations in the site structure. RIFE would then go over all the classes in that particular Java package and auto-declare all the ElementAware classes in the site structure, ready for use as widgets.

I quite like Wicket's approach to widget componentization, but I think it falls short in a lot of other areas where RIFE shines. We could inspire ourselves with their ideas though.

Any thoughts?

Best regards,

Geert

--
Geert Bevin                       Uwyn bvba
"Use what you need"               Avenue de Scailmont 34
http://www.uwyn.com               7170 Manage, Belgium
gbevin[remove] at uwyn dot com    Tel +32 64 84 80 03

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
[email protected]
http://www.uwyn.com/mailman/listinfo/rife-users

Reply via email to