Your user interface should be designed with the expectation of future functionality enhancements, and it should establish a control scheme that will support this with minimal disruption to the users when this occurs.
It is the last sentence (about the control scheme) that I have difficulties interpreting For now I would believe it means:
have a menu and/or a toolbar, in order to be
able to access the future functionality (screens?) consistently
make sure the ui architecture can be added new screens etc. without reengineering the entire ui.
If there are anybody who agrees or disagrees with my perception of the topic, please write about it. Looking forward to your answers. [ January 20, 2002: Message edited by: Nicky ]
MyCerts: SCJP 1.2, SCJP 1.5, SCJD, SCWCD 1.3, SCBCD 1.3, SCDJWS 1.4, SCEA, IBM 253
MyBooks: IBM WebSphere Application Server V7.0 Web Services Guide
This is an interesting one. I thought long and hard about this. I understand the 'GUI control scheme' to be the extendability of GUI from user's point of view not the programmer's who is extending the GUI. So my scheme defines the rules of 'drawing GUI' rather than 'constructing GUI ojects'. By following these rules the programmer makes it easy for the user to digest GUI changes, which is the whole point anyway. Hope its making sense. So here is what I wrote in my design document... The following principles define GUI control scheme. The main application window is split in two parts: Search form and Results. By default, the split bar is located as far to the left as the Search Form allows, but all components of the Search form must be visible. The input components (textboxes, comboboxes) should be laid out in order top to bottom. All criteria-input components should be located above "Search" button. Components may be added toward right edge -- the horizontal space will be provided by dynamically resizing the Results viewport. However, the preferred way of placing components is top-to-bottom. Every input component must be marked by a label preceding that component. The enter key must navigate the focus to the next input component (unless other functionality is required). The last input component must run search if the Enter key is pressed. The distances between components should follow Sun's Java Look and Feel Design Guidelines. Some useful constants that describe space gaps in pixels are defined by FlightPanel.
I Like Gennady's idea. I didn't have the split pane, but some things very similar in the flow. A Split Pane would have been cool. I should have tried that and gotten some experience with the Split Pane. I went the fun way and chose to layout all my objects using GridBagLayout. I think you will find all the answers to any question you have or will have here at Javaranch. I know I did. And Gennady has some of the best answers here. Mark