Pattern from Diane Love
Patterns for Selection
The context of configuring a hardware Radio Panel used in Air Traffic Control
leads to the identification of two patterns. The first is related to the
Choice from a Large Set and Editable Collection patterns in Jenifer Tidwell's
Common Ground pattern language: Choice of Sublist from a Large List
The second pattern is a further refinement of Choice of Sublist from
a Large List addressing the specifics of the hardware context: Configuring
Ordered Slots in Hardware.
Bold text is used to indicate references to patterns not defined in
this paper. These are either to be found in Common Ground or in the following
The pattern template used is based on the pattern languages of Christopher
Alexander and Jenifer Tidwell.
Text Direction encapsulates the notion that in a given culture a line of
text is presented in a given direction and successive lines of text are
ordered in a certain way.
Numeric Keypad is a hardware pattern found on telephones, TV or VCR remote
controls or computer keyboards, and also a GUI representation of the hardware
pattern. Note the ordering of the numbers varies depending on context.
Drag and Drop is documented in Common Ground as an example of Localised
Choice of sublist from a large list
Selecting people to whom to send seasonal greeting cards (eg postcards,
Christmas cards) from your personal address book;
configuring the fonts and memory resident applications available in a personal
computer's system software (eg early Macintosh system's Font DA Mover);
configuring the text styles available in a word processor document (eg
recent Microsoft Word style organiser).
How do we enable the user to specify the selection efficiently ?
Resource limitations may prevent selection of the whole of the large list,
even though this may otherwise be acceptable to the user:
Limited time to write the cards, limited number of cards and stamps available,
and limited money to spend on more cards or stamps, all conspire to limit
the number of cards we can send;
The fonts and DAs use up memory, reducing the amount available for other
applications - particularly serious in the days when personal computers
had either 512K or 1Mb RAM.
The user has a rationale for selection based on attributes of the items
in the large list.
We don't normally send greetings cards to the council and utilities although
we keep their addresses in our address books.
Provide a source list containing the items in the large list and a destination
list in which to collect the items in the sublist.
Size the lists to minimise or eliminate scrolling.
Present each list item in the source list with the attributes used in selection.
Provide controls to sort and filter the list based on attribute values.
Permit selection of multiple discontiguous items in either list.
Provide controls to move the items selected in one list to the other list.
Use Text Direction to make the source list and destination list have a
spatial relationship which is appropriate in the cultural context (eg source
to the left of destination if text reads from left to right).
Use Choice from a Large Set to provide selection in the source and destination
Use Disabled Irrelevant Things to make the availability of the moving
controls depend on the existence of selected items in the relevant list.
Configuring Ordered Slots in Hardware
Configuring the frequencies used for Air Traffic Control, which are accessed
via a hardware Radio Panel.
Configuring the memories on a telephone, accessed via the numeric keypad
or dedicated memory buttons.
Tuning analogue terrestrial channels on TV, VCR or radio, which are then
accessed via the TV or VCR numeric keypad or the radio's channel selector
How do we enable the user to specify the selection without memorising rules
and codes ?
In all cases the number of slots available is limited by the hardware -
12 on the Radio Panel, 10 on the average telephone, perhaps 6 on a car
radio and 10 or more on a TV or VCR.
In the Radio Panel context, the frequencies required are largely determined
by the sectors being controlled. It would be possible in theory to reconfigure
the Radio Panel automatically every time the user took or relinquished
control of a sector. In practice, this could result in unsafe operation
- a frequency could be removed while the user happened to be transmitting
or receiving a transmission. Consequently, configuration is made the sole
responsibility of the user.
It would be possible in theory to permit the user to type in the required
frequency. This approach is rejected as it allows the user to enter a non-existent
frequency in error.
A push button telephone has a very limited user interface. There are keys
(0…9, *, # plus a few function keys) and there may or may not be a graphical
How to configure memory buttons can't be determined by visual inspection,
nor by visual or auditory prompts from the telephone. We can either look
in the manual or use trial and error.
Configuring memory buttons is infrequent, so once it's done we forget
how we did it.
Once configured, making a call using a memory button may be relatively
frequent and so we are likely to remember how to do it, especially if the
phone has a hand written card for the content of the memory buttons.
It is difficult for the user to identify the required TV channels.
You need a TV listing guide, and then you must watch the channel for long
enough to match it up with BBC1, BBC2, ITV, or Channel 4 - Channel 5 has
a permanent channel indicator on screen.
It is necessary to search the whole frequency range to find the best signal.
The commands to tune the TV channel to the selected signal may be hard
to remember and require consultation with the manual or trial and error
- the program content may change while this is being done !
The controls and user feedbacks may be hard to use and interpret.
The situation for car radio tuning has been alleviated somewhat by RDS,
which at least displays the name of the channel being listened to.
Configure the Radio Panel using a GUI based control panel on an attached
workstation. This has the following features.
A source list of frequencies and associated attributes, sized to eliminate
filters are provided to reduce the large list of frequencies to those relevant
to the local area;
for each frequency the sector normally using it is also shown;
colour is used to highlight frequencies which may be used in an emergency.
The destination list is a GUI based map of the 12 slots on the hardware
Only single selection is permitted in the source and destination lists
When there is a selected item in the source list and a selected slot in
the destination list, the control to move the item to the slot is enabled.
When there is a non-empty selected slot in the destination list, the control
to remove its content is enabled.
There is also a single control to remove all frequencies in one operation.
If we were able to implement a similar control panel for a telephone it
could have the following features:
This is an expensive solution and is not likely to be suitable for domestic
use at present. Alternatives are:
Each source list item is displayed as the name of the person or company
and a picture of the person or company logo - the actual phone number is
stored but not displayed.
If the telephone's memory buttons can contain pictures, the application
prints the pictures to put in the buttons. This is useful for people who
can't look up or remember phone numbers.
The telephone has built in voice prompts to tell you what to do next.
The telephone is labelled (on the underside) with a summary of the programming
TV / VCR tuner
If we were able to implement a similar control panel for TV / VCR tuning:
Each item in the source list is presented as a real-time thumbnail of the
video signal and a graphical indication of the signal strength.
Selecting an item in the source list presents the sound content of the
channel on the computer's loudspeaker.
Provide a means to identify the channels - eg CEEFAX or internet TV listings
Based on Choice of Sublist from a Large List with destination list replaced
by map of hardware slots.
Use Drag and Drop, if available, to move items between source list and
Use Numeric Keypad as a destination map if appropriate.
An example pattern prepared for the Usability
Pattern Language Workshop at Interact