The following sections contain a class by class breakdown of all the widgets used by SAM. A widget tree is provided for each class, and a table is also provided which lists the name, type and handler for each widget which responds to a custom handler. Reasons for the choice of interface design are also described, in terms of the usability of SAM.
The handlers found in the tables following are all individually described in SAM's API (see section 5.6). Methods that are prefixed by self, for example self.about(), are methods local to the class being described, as typical of Python code.
Throughout the GUI, when the user forgets to enter a value or the value is invalid, an error dialog box will pop up providing the user with a helpful message describing the problem and how to fix it. The user will also be warned via a warning dialog box if they are about to overwrite an existing file. The GUI will allow them to overwrite the file once they acknowledge the warning. This will allow the user to feel safe and free when using SAM, since if they do something dangerous they will be warned. (see section 7.5.1) for widget tree.
Tooltips have been used throughout SAM. They have been added to give the user immediate and relevant help by describing the function of the object directly underneath the mouse cursor. This will decrease the time the user spends looking through the documentation, as well as aiding the user in remembering the functions of certain buttons. Thus the strain on the user is reduced, and their productivity is increased.