A system and method for managing a scalable list of items for display in a display
device of a small footprint device. A client program running in a small footprint
device may instantiate a "list container object" and add "list item data objects"
to the list container object. The list container object may instantiate a fixed
number of "item renderer objects", which are responsible for appropriately displaying
the list item data objects. Each item renderer object may correspond to a row in
the displayed list. The list container object interfaces with the set of item renderer
objects, in order to manage the display of the list. In one embodiment, the item
renderer objects are instances of a class that supports an "item renderer interface"
that includes methods for interacting with the item renderer objects. Thus, a general
framework is described in which any of various types of objects may be displayed,
by implementing the item renderer interface methods appropriately for different
item renderer object implementations. The list container object may keep track
of the set of list item data objects being displayed at any given time. As a user
interacts with the list, e.g., by scrolling up or down, the list container object
may receive method calls or user interface events indicating the user's action,
may determine the new start index for items to display, and may instruct each item
renderer object to redisplay the appropriate list item data object, e.g., by calling
an item renderer interface method for each item renderer object, passing the corresponding
list item data object as a parameter.