Matt Blum wrote:
Sean Schofield and I have been working on an "input-suggest" control for
MyFaces that works a lot like Google Suggest does from a UI perspective,
with a pop-up div that works like a drop-down list, with type-ahead and
highlighting and the like. Sean should be committing it pretty soon.
Actually I have solved that one on the ajax side of things for almost
three weeks now, the javascript code is still somewhat dirty but works
exceptionally well...
The code has been in sourceforge for that period of time :-), bugfixes
for it are somewhat newer, also in sourceforge currently you can
find some pure client side tabs which solve a number of problems of the
roundtrip approach (like you dont have to force a form etc...)
and some smaller client side colorers...
It should be possible to integrate this control with AJAX without
enormous difficulty. Sean (who was responsible for the JSF side of
development, while I did the HTML and Javascript) might be better able
than I to verify/refute that possibility.
It is there already :-)
(Incidentally, I'm looking into modifying the DHTML piece so that you
can avoid the IE bug where a select box is always rendered on top of a
div. It turns out that if you create an invisible iframe as a shim of
sorts, directly underneath the div, select boxes will properly render
underneath it. Of course, this fix is only necessary if you're using
the control near a select box, and if you care whether your form renders
properly in IE, so it'll be optional.)
Well solved that a few days ago as well :-), thanks to some articles on
the net.
Btw... if you do the iframe approach, make sure that you do not follow
that one once you have a Mozilla as browser, I ran into a nasty bug,
which caused some gecko rendering problems once you started to scroll
the rendered page (basically a small part of the page was not scrolled
correctly in gecko)
I basically ended up with a javascript part which only generates the
iframe as soon as I can be sure to have an IE as underlying browser.
The iframe is not needed in Mozilla and other browsers anyway :-)