UIConsider.pdf Flashcards
When developing a user interface, there are two areas that must be considered…?
appearance and behaviour.
In most cases when addressing these issues, the trade-off between…… will influence decision-making?
functionality provided, speed of development and runtime performance.
It is unlikely that a gain in performance, development speed and functionality factors could be made without impact on another factor because…?
These three factors are so closely linked.
A common cause of poor performance within application is …?
forms that simply have too many controls on them.
This is especially a problem when using folders with many sheets
With a complex form containing lots of data and many options, you run the risk of…?
overwhelming the user.
The overhead of loading a form with hundreds of controls is much greater than that for a…?
smaller form.
This overhewad increases, again significantly, if the form is deployed as part of a Web application
If you find large forms are performing poorly then there are a number of options to consider….?
- Split the data across several forms.
- Use different controls (for example if a form displays read-only data, a table may be more effective than several textbox or label controls).
Most forms are designed using the JADE Painter but JADE also provides facilities to create controls dynamically at run time.
This is useful when:
- The number and type of controls cannot be predicted at design time; for example a highly graphical application such as a container terminal tracking system.
- There are a large number of controls that are all expected to respond to the same set of events; for example a multi-line data entry form.
- A user-defined control consisting of a container and a number of child controls must be built at run time.
There are two ways of adding controls to a form at run time…?
- The loadControl method clones a persistent control associated with the form. The coloned controls respond to the same events defined for the original control.
- The addControl method can be used to create new control for a form at run time. It differs from the loadControl method, as the new control does not need to be based on an exisiting control on the form. The control responds to event methods defined on the parent form based on the control name; for example newControl_click. The setEvetMapping method may be used to define another method to be invoked for an event.
(Note: Dynamically creating controls allows you to write more generic code but there is a measurable performance overhead associated with creating the controls in the first place. Furthermore, the use of the setEventMapping method is quite expensive and should be used sparingly.)
The performance characteristics of an application vary greatly, depending on…?
whether the application is run in single user mode, as a thin client, or using the standard fat client.
(There is a danger that if development takes place in one mode and the system is deployed in another, performance issues may arise.)
A significant point of difference between running in single user or fat client mode, as opposed to think client mode, is…?
the overhead associated with the handling of events.
If an event method has be implemented for a particular event, a request must be sent from the…?
presentation client to the application server to process the event method.
The events that are likely to have most impact when running in thin client mode are those that have the potential to happen most frequently. These are…?
- Events that occur in response to keystrokes; e.g. keyDown, keyUp, keyPress, change.
- Events that occur as a result of moving the mouse, e.g. mouseMove, dragOver.
- Paint events.
When a window needs to be repatined on a presentation client, this requires no interaction with the application server, unless….?
- The developer has implemented a paint event for the form or control.
- The control is a subclass of JADE control and the developer has implemented a paint method for the control.
(In the second case, it may be perferable to use the Window::autoRedraw property instead. When this property is set, no paint events are processed and instead, when the form or control is repainted, draw commands are replayed on the presentation client.
The Window::enableEvent method can be used to…?
enable or disable handling of specific events.
For example, you may choose to disable all keystroke events for any client running in thin client mode.
A common problem in designing a user interface is…?
the inappropriate use of controls.
Often what works well during development with a small amount of data does not…?
scale up when the system is deployed in production with many more users.
It is important that when the decision is made to use a particular type of control that ….?
consideration is given to the volume and the volatiliy of the data associated with the control.
Volume-related problems are most common when using…?
listed boxes, combo boxes, and tables.
(If the number of entries that could be displayed is likely to be large, you shoudl consider a strategy for reducing the amount of data that will be loaded)
The listCollection method can be useful when..?
loading entries from a collection into a ComboBox or ListBox.
The advantage of the listCollection method…?
Is that the collection will be loaded incrementally; that is entries are loaded as the user scrolls through the list as ooposed to be loaded in one hit.
(This feature works well as long as the number of entries in the collection is in the region that a user would feel comfortable scrolling through. It is also most useful when the order of the collection is the order in which the entries are to be displayed, as setting the sorted property for the list box or combo box causes all the entries to be loaded).
Where it is not pratical to load all collection entries into a list box or combo box consider…?
implementing some kind of browse facility.
Both list boxes and combo boxes provide…?
a facility to organize data display into a tree or hiearchy structure.
Where the volume of data to be loaded is low, it may be appropriate to…?
load a tree with all branches expanded.
(However, loading only the first level of the hirarchy can result in the significant performance improvements where the volume of data is large. Loading of the lower-level brances can be deferred until a particular node is expanded. In this case if a node is never expanded, the data need never be loaded.)