| Umbrello UML Modeller: A Diagramming Programme for the Unified Modelling Language Developed Using Bazaar Methods; BSc Honuors Dissertation, Final Report; University of Stirling, Department of Computing Science and Mathematics; April 2003 | ||
|---|---|---|
| Prev | Chapter 3. Developing Umbrello UML Modeller | Next |
Umbrello has a clean and friendly user interface which is quick to get used to. It integrates well with the rest of KDE because it uses all the standard KDE programming interfaces.
I made several small improvements to the user interface where inconsistencies existed or improvements could be made.
I replaced the splitters which were used to define the main elements of the application with KDockWidgets. This powerful class allows widgets which can be attached to the edges of the application window and arbitrarily moved by users. Their positions are saved and reloaded automatically. It results in simpler code inside Umbrello and more advanced functionality for the users.
The attribute and operation dialogue boxes required a right click to perform any functions. I added buttons and refactored the code to allow it to work with the buttons. This makes the dialogues much more intuitive.
A couple of dialogue boxes had their OK and Cancel buttons the wrong way around. The KDE user interface guidelines dictate that OK is to the left of Cancel, which is the same as Windows and the opposite of GNOME or MacOS. I had never had to think about this before because KDE's dialogue classes are advanced enough that you never have to code the buttons yourself. The code for dialogues was going out of its way to reimplement functionality and add bugs in the process. I ported the dialogues to the correct classes and they now display the standard button ordering.
I manually implemented tab ordering and setting the focus for dialogues where this did not successfully happen automatically. The libraries usually guess correctly the tab ordering and initial focus but some dialogues needed it explicitly coded. This is important for users who prefer not to have to swap between their mouse and keyboard.
KDE contains a powerful widget theming ability for users who like their eye candy. A theme called scheck[scheck] contains no good looking graphics but instead has the clever ability to check widgets for missing or incorrect keyboard accelerators and capitalising errors. Any errors it finds are highlighted in a suitable colour. Using this tool I was able to ensure that Umbrello conformed to KDE's user interface guidelines.
UML contains several different association types for showing the relationship between two objects. Realisation and generalisation are two similar association types which are never used between the same two object types. I decided to merge the toolbar buttons for this function and implement a method which detected what type of association should be created depending on which type of objects are being associated. This is an example of the help which can be given to the users through a UML specific programme compared to a general diagramming one.