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