Any non-trivial application will have some degree of customisation - options the user can select to alter the way the application behaves.

With the more complex applications, it is possible for the preferences dialog to become completely overwhelmed. In this article we will explore some preference dialogs that are great, and some that are not.


I recently had good reason to use ERStudio 5.5 to look at some documentation for a system I was working upon. One of the diagrams was more than a little complex, so I tried moving some elements around in order to get a better idea about how things were related.

While trying to get the editor to behave itself (which could be a whole other article), I brought up this Options dialog:

ER Studio Options

There is a lot to comment on in this dialog.

From a cosmetic perspective, take note of the ‘torn’ border shown for the Object Types tab. I believe that this is trying to provide an affordance that there are more tabs below.

See the combobox in the upper left corner with the text Application? It does the same job as the tabs shown on the right-hand side - allowing the user to select a specific page. Surely, the need to include a widget to bypass the tabs indicates some kind of problem?

However, the real problems here are in the layout and organisation of options.

Consider that the Application tab that is currently visible includes options for Model Display and Default Colors and Fonts. Why are these not on the Display tab? For that matter, what is the different between Display and View? Also, the Reverse Engineer options are related to the logical and physical models, but hasn’t been included on either the Logical or Physical tab.

In short, this dialog suffers from a chronic lack of organisation - probably as a result of evolution over time, with new features in each version being added in here and there instead of under some kind of unified system.


The Options dialog in Firefox, by contrast, is a completely different story. Have a look at this screenshot:

Firefox Options

The top level options are all shown - none of them are hidden, none need to be revealed by the user scrolling them into view. Within each pane, the available options are well organised into logical groups. Good use is made of sub-dialogs, brought up by buttons on the various tabs, and used to configure more advanced settings.


Options dialogs in applications are important, and should never be left to grow in a haphazard fashion. They need to be carefully designed, just like the rest of your application.


blog comments powered by Disqus
Next Post
The One True Way  30 Mar 2008
Prior Post
Huffman User Interfaces  30 Mar 2008
Related Posts
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
When are you done?  18 Apr 2022
Fixing GitHub Authentication  28 Nov 2021
March 2008