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.