Does anyone else feel that they spend an inordinate of time choosing between comboboxes, suggestionboxes, and other input/selects when constructing an application? And does anyone feel exasperated about certain lack of consistency between those so that your choice is forced by available features that seem to be superficial and yet important enough to influences your decision?
I have a select list containing, say, a list of ranges. It looks like this
Num of Workstations ___________
This is what I want to display, but what I want to input is 1, 51, 301, and 750 respectively
These are the components I have tried and none is completely satisfactory.
ComboBox: f:selectItem itemLabel is ignored. Just to supply the value does not give the user enough information to choose. But I like how the comboBox looks. I think the arrow button is an intuitive way for a user to view the choices.
SuggestionBox: Performance slower than comboBox and not really justifiable for such a short listing. However it might be acceptable in a production environment. However again, I don't like that there is no easy way to put a skinnable arrow button onto this thing. (See a previous posting of mine). It looks weird on a single page to have comboboxes that look like one thing and suggestionboxes that look completely different when from the users point of view these are exactly the same thing. At least from this user's point of view.
Inplace Select: I don't like how different it looks from the comboBox. When you have a form full of inputs with drop-down menus from which the user can select, I think it is supremely weird to the user to have all these superficially identical things look completely different from each other. However, the show-stopper for the inplace select is that once I have put something in the field, I cannot delete it, ie make the field blank/empty again. Maddening. Maybe if I make one of the selects a blank I can work around that last problem.
JSF SelectOneMenu: This is probably my best choice here. Bonus if I skin it so it "fits in" with the rest of the app. I haven't tried skinning this component yet so hopefully that won't be too painful.
Comments? Maybe it's just that I'm enough of a beginner that there are important aspects to this that I don't yet understand. I'd be interested to hear how other people deal with this and make these decisions.