2.3. Finding Cards

When the user selects the Find command from the Rolodex menu, the system updates the display area as shown in Figure 8.


Figure 8: Find card dialog.



To locate the desired card(s) the user types in a name and presses the OK button. In order for the Find to succeed, the name entered in the dialog must be an exact match of a name that appears on one or more cards in the rolodex. For example, if a card is entered with the Add command with the name "Fisher, Gene", then in order for Find to locate the card successfully, the user must enter this exact name in the Find dialog. Exact match means that two names agree in all punctuation, spacing, and the upper/lower case spelling of all letters. Given these requirements, none of the following names matches "Fisher, Gene": "Gene Fisher", "GENE FISHER", "Fisher, Gene", "Fisher, G".

To cancel the find command entirely, the user presses Cancel in the dialog. When Cancel is pressed, the entire data area is cleared, leaving it empty as in the initial rolodex display shown in Figure 1.

There are three possible outcomes when the user presses OK in a find-card dialog:

  1. zero cards of the given name are found
  2. exactly one card of the given name is found
  3. two or more cards of the given name are found
Each of these outcomes results in a different output display.

Suppose, for example, that the rolodex contains no cards with the name "Smith, John" and the user inputs this name as shown in Figure 9.


Figure 9: Find card dialog filled in with name appearing on no card in the rolodex.



In this case, when the user presses OK the system finds zero cards and the resulting display contains the simple explanatory message shown in Figure 10.


Figure 10: No cards found.



When the user presses the OK button in the no-cards-found dialog, the system restores the display to the find-card dialog that resulted in no cards being found, e.g., Figure 9 in this case.

When the system finds exactly one card, the information for that card is shown in the display area. For example, suppose the rolodex contains one card with the name "Fisher, Gene", and the user enters this name as shown in Figure 11.


Figure 11: Find card dialog filled in with name appearing on exactly one card.



In this case when the user presses OK, the system displays the information for the found card, as shown in Figure 12.


Figure 12: One card found.



The displayed information is that previously entered using the Add command, as shown in Figure 5.

In any found-card display, such as Figure 12, none of the card fields is editable. That is, each of the five value display boxes is read only. Hence the only active element in the display area is the OK button. When the user presses this OK button, the system restores the display to the dialog that resulted in the card being found, e.g., Figure 11 in this case.

When the system finds multiple cards, it displays a selectable list of the found cards. For example, suppose the rolodex contains three cards with the name "Doe, Jane". If the user searches for this name, the resulting display appears as shown in Figure 13.


Figure 13: Multiple cards found.



The user can traverse through the list of multiple cards using the Next and Previous buttons. Each time the user pressses Next, the system displays the next found card in the data area. Pressing Previous displays the previous card. When the card at the end of the list is reached, pressing the Next button has no effect, i.e., the display is unchanged. Similarly, when the users presses Previous at the beginning of the list, the display is unchanged. When the user presses the Done button, the system restores the display to the find-card dialog that resulted in the cards being found (e.g., the seach dialog for "Doe, Jane" in this case).

The order of the cards in the multi-card list is by ascending Id field. Since the Id field is unique for each card, the sorting order is unique. As with the single card display, none of the card data fields is editable in any of the displayed cards.




Prev: add | Next: change | Up: functional | Top: index