I think it's considered a bad practice to have controls appearing and disappearing and the size of the window changing in a single GUI screen dynamically based on a user's input. However, I can't seem to find a definitive reference that states this.
I've been asked to create a GUI that has a text box at the top in which a user enters a file name (using a file chooser). Of the files that can be chosen, each has certain properties, however some of these properties can be null for a given file.
Below the file name text box are rows of pairs of labels and text boxes with values for each of those properties. I've been asked to not show a label and a text box if the associated property is null.
The user can repeatedly choose different files and the values in the text boxes should update accordingly. In addition, the labels and text boxes should appear and disappear depending on whether the values are null. Moreover, the value of the screen should shrink or expand so that there isn't empty space (because of null values and, hence, missing controls).
This seems to me like it would be very jarring to the user (to have controls appearing and disappearing and so on).
Is this bad GUI design? If so, could someone quote an authoritative reference that I can use in trying to argue against this design?
(What I would prefer is to just leave the text boxes blank for null values.)
I have to disagree with Konrad and Brian here -- this will end up being jarring for most users.
While dynamic response is definitely a valid GUI paradigm, hiding/showing and resizing displays dynamically based on selections from the same list (or entry into the same text box) tends to be very jarring for normal end users. This is why the so-called "smart" menus in Office (and Win2K/XP) were loathed by many -- features seemed to appear and disappear for no good reason.
The correct paradigm in this case is disabling ("graying out") the controls. If you're looking for specific citations, I believe this has been discussed in About Face: The Essentials of User Interface Design. I know that the Microsoft Office usability team also produced the same results from their labs.
Pre-emptive Note:
Showing/hiding is not always a bad paradigm. But use it when it makes sense. It makes sense for the Windows Explorer detail bar to show different contextual information based on whether you've selected a Word Doc, an image, or an MP3. That's a small, borderline incidental piece of the UI, with no discernible (and especially no editable) controls. It's expected that navigating to a new tab will hide the controls from the previous tab and show the ones from the new tab -- but then again, tabs are a navigational paradigm.
Showing and hiding within the same view, for what (to most users) will appear to be the same kind of data, is the jarring experience.