| By Jim Driscoll | Article Rating: |
|
| October 15, 2009 08:00 AM EDT | Reads: |
1,695 |
In talking with Andy Schwartz before our recent talk together at Oracle Open World, Andy mentioned that he'd like to see some new components make it in to JSF 2.1.
I'd like to see that too - but what new components? To aid the discussion, I thought it might be handy to make up a list of components that I think would be handy for JSF - but please, don't take this as an endorsement of any particular component for inclusion into the spec. At best, I can see us adding only a handful, perhaps 3 or so. Still, once started, this kind of project becomes it's own end - so I decided it might be good to publish such a list. Many of these components already exist in some form or another for JSF, or as a JavaScript Widget that could be wrapped in a JSF component - so most of them are available today.
Basic Html
Most of the basic HTML components are already well covered, but there would seem to be a little room for a few very basic components
- File Upload This is pretty basic - and Servlet 3.0 just added it.
- Formatted i18n data
- Date entry/display
- Time entry/display
- Currency entry/display
These can currently be done with converters and validators, but is there a better way?
- Flat Tree A very basic hierarchical data visualization component that has no JavaScript required.
- Static Progress Status A bar which indicates percent complete, a static version of the Ajax version below
- SingleRowSelect A radio button that works with a table.
- HTML5 There's new stuff coming up - should we start to care? IE is, as usual, the lone holdout.
Navigation
Components for navigating from one page to another.
- Breadcrumb Trail Almost standard on many sites now, a horizontal list, often limited to three deep, that allows you to backtrack through your history without the back button.
- Navigation List A fairly straightforward list of links that navigate to different pages in the site. Often put in a Navbar on the left of the page.
- Navigation Tree Like a Navigation List, but with hierarchical categories
Security
Components that deal with identity and authorization.
- Java EE Login This one would seem to be a no brainer, but it's actually a bit hard to get right.
- Logout If you log in, you should be able to log out.
- Register Probably not possible in a fully reusable way, since Java EE doesn't specify a standard registration API.
- Forgotten Password/Username Same problem as Register
- Capcha This would be very useful, but probably not amenable to standardization, since the robots keep getting smarter.
Simple Rich UI
- Framebuster The war between the framers and the framebusters means that this will be obsolete almost immedately on release, but it might be worthwhile to try.
- Tabbed Pane Basic Web component or rich component, depending on whether you use DHTML. Since DHTML is probably easier for the end user, it's my preference to have it in this list.
- Spinner Increment an integer value by a set amount at the press of a button, or manually enter a number. Implemented as a demo in Mojarra 2.0.
- Slider Analog slider to choose a numeric value, or manually enter a value.
- Calendar Need to also include options to pick a date, or only a month, or even only pick a year. May be hard to do reusably, since styling matters so much. Wrapped a YUI Calendar widget as a component as a demo in Mojarra 2.0.
- TimeSpinner A special case of a spinner, for picking a time.
- ColorPicker A very special case, but easy to implement.
- ModalWindow Alert box.
- ModalDialog Alert box, with two or more buttons.
- Popup Menu
- FloatingWindow A detached embedded window, that you can move around within the HTML frame or window that contains it. After a brief burst of popularity, I've seen usage drop off.
- Tag Cloud I'm frankly not convinced of the usefulness of this particular visualization, but many designers seem to love it.
- TabularData A table that's modeled on a database set, rather than being explicitly bound to the HTML table. Would include sorting, at a minimum, and also probably reorder of rows. Maybe even filtering?
- Menubar Drop down menu bar. Many HI people hate them on the web.
- CommandBar (icon button) Essentially, a horizontal strip of buttons.
Filthy Rich UI
Really elaborate graphical components. Harder to do as a standard, since styling becomes so important.
- Carosel Like Apple's cover flow, flip through a set of images to select one.
- EditText (in place edit) Easy to do, but hard to get right, I've implemented it as a demo in Mojarra 2.0.
- Shuttle (Switch List) Fairly common, I've implemented it as a demo in Mojarra 2.0.
- ComboBox Essentially a static version of the AutoSuggest component, below.
- Collapsible Tree Tomahawk has had a tree for years.
- RichTextEdit Several good JavaScript widgets exist for this functionality.
- RSSReader Update a page automaticially with the latest blog posts. Far more useful than you might first think, since many programs (like hudson, for instance) now export data as RSS.
- Slideshow A fairly complex JavaScript widget.
- Lightbox An incredibly complex JavaScript widget for organizing images.
- Charting Incredibly complex, and incredibly useful, this is probably best done as a completely separate software product. Some JavaScript widgets already exist, and some JSF components already support this...
Behaviors
Things that are probably best implemented as behaviors.
- Tooltip Probably almost trival to implement.
- DragAndDrop The opposite of trivial to implement, it could still be incredibly useful. Some support in various JSF component sets already.
- Clientside Validation A customer request since year 2000.
Ajax
- AutoSuggest The "shopping cart" of the Ajax world. Note that Andy is working on a demo that implements this as a behavior. Supported as a component in some JSF component sets.
- Poll Besides periodic updates, also handy for keeping sessions alive, and avoiding many cases of view expiration. Less necessary if we implement Comet, but probably still useful as simpler solution.
- Map Relying on an external service means that this is probably not suitable for standardization.
- Progress Indicator Progress of a server operation
- Busy Status Indicator Essentially a binary version of Progress Status
More?
I'm sure I've left some out - suggest more in the comments...
Read the original blog entry...
Published October 15, 2009 Reads 1,695
Copyright © 2009 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jim Driscoll
Jim Driscoll has worked at Sun Microsystems for 12 years, working on such projects as the first version of Servlets (in the Java Web Server), and the initial implementation of Java 2, Enterprise Edition. He is currently a Senior Engineer working on the implementation of Java Server Faces, helping to integrate technologies such as AJAX and Comet into the new release.
- Whatever the Apple iPad Is, It Apparently Leaks Like a Sieve
- Reflections on Java Command Line Options
- Microsoft WebsiteSpark: Get New Business Leads to Grow Your Business
- Jobs Has a Few Words for Google & Adobe & They Ain’t Pretty: Reports
- Cloud Expo New York, Prague, and San Francisco Sponsors
- Can You Fire a Team?
- UPDATE: Adobe & IE Implicated as China’s Spy Holes
- Larry May Gag But Oracle Talks Cloud Computing Anyway
- Apple and Emotional Discussions Around Adobe Flash Player
- What Should Be Baked into the New Apple iPad and Why
- iPad on Ulitzer - The New Browser Wars: Flash vs. Swipe
- Dear Apple...So?
- Whatever the Apple iPad Is, It Apparently Leaks Like a Sieve
- Reflections on Java Command Line Options
- Microsoft WebsiteSpark: Get New Business Leads to Grow Your Business
- Jobs Has a Few Words for Google & Adobe & They Ain’t Pretty: Reports
- Adobe Fiddles with its Web Apps
- My Three iPhone Predictions For 2010
- Cloud Expo New York, Prague, and San Francisco Sponsors
- Can You Fire a Team?
- Adaptivity “Platinum Plus Sponsor” of Cloud Expo
- UPDATE: Adobe & IE Implicated as China’s Spy Holes
- Adobe Discusses Cloud Computing
- Development of Ubuntu 10.04 LTS to Incorporate Major Changes
- Where Are RIA Technologies Headed in 2008?
- Cover Story: How to Increase the Frame Rates of Your Flash Movies
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Your First Adobe Flex Application with a ColdFusion Backend
- Adobe Flex 2: Advanced DataGrid
- i-Technology Blog: Death-Knell For "Rich Media? Hardly!
- How To Create a Photo Slide Show ...
- Adobe/Macromedia - Microsoft, Look Out!
- Adobe Flex Interface Customization - Themes, Styles, Skins
- Personal Branding Checklist
- Has the Technology Bounceback Begun?
- "Real-World Flex" by Adobe's Christophe Coenraets

























