ABSTRACT

I had the opportunity to use some early programs that allowed graphical user interfaces to be developed using a graphical editor. This was of course a big improvement to the former practice of writing GUI code by hand. I have wasted my fair share of hours making dialogs appear tidy by trial and error: I try width 100 and height 20 pixels, (compile and run), oops, that was too much, let me try width 90, (compile and run), oops that was too little, . . . However, all those builders that I have tried lured me into tight coupling between the view and the model code. Typically if I positioned a button on the dialog using my GUI builder I could click on the events associated with the button, like mouseClick(). If I selected that, an editor would pop up and I could enter source code directly to be executed when the button was clicked. The result was of course that model manipulation code was scattered all over the place in my GUI code. It made it difficult to overview and next to impossible to reuse if the same model operation was required by some other event, like a menu selection.