CHI '95 ProceedingsTopIndexes
DemonstrationsTOC

Reno: A Component-Based User Interface

Randy Kerr, Mike Markley, Martin Sonntag, Tandy Trower


Microsoft Corporation
One Microsoft Way
Redmond, WA 98052-6399
(206) 936-8080
randyke@microsoft.com

© ACM

Abstract

Reno is a proof of concept prototype produced by the Advanced User Interface Group of Microsoft. It illustrates the power and simplicity of object-orientation for the end user when applied completely and uniformly throughout the entire user interface. Its minimalist design is based on a small set of widely applicable object types and commands which are combined into more sophisticated constructions that accommodate the functionality of shells and applications of today, yet with greater integration, consistency, and simplicity.

Keywords

Object-oriented user interface, direct manipulation, constraints, constructionism, user programming, document- centric user interface.

Introduction

The objective of the Reno project is to illustrate and measure the end-user benefits of a purely object-oriented interface for a wide range of office related tasks. The Reno design is intended to:
  1. Encompass existing functionality found in applications and shells today.
  2. Allow users to perform office related tasks with less learning time, greater simplicity, and more flexibility than current application-based software.
  3. Provide for maximum pervasiveness/leverage of functionality across the interface.
  4. Provide a rich foundation for incorporating new functionality.

What distinguishes Reno is how pervasively the principles of object-orientation are applied throughout the interface. Reno is not only "objects all the way through" but also "composition all the way through", that is, virtually everything that a user encounters in the interface (a sales report, a chart, or the desktop itself) behaves as a composition of smaller and simpler pieces. The user may disassemble and reassemble these compositions to serve new purposes using consistent composition and relational operations.

OBJECTS

Every entity in Reno behaves as an autonomous object exhibiting properties that can be changed by the user, operations which may be invoked through commands, and relationships which may be established with other objects. Objects belong to a specific class which determines the nature of their properties and commands. These classes share many common characteristics through Reno's narrow and deep class inheritance hierarchy making the objects behave in a consistent fashion for the user. The state of every object is maintained through automatic persistence - there is no explicit commit or discard action on the users part, although operations may be undone.

Composition

Objects such as simple graphic shapes and alphanumeric characters are considered primitives in Reno since they are atomic elements and cannot be decomposed further into constituent elements. One of the most common forms of composition is containment. The notion of containment is taken literally in Reno as every object resides in a unique place, i.e., another object called its container. The role of a container is to both contain and arrange its elements in a meaningful presentation. The basic container types (called frames here because of their rectangular and finite shape) include:
  1. Z frame - arranges elements at a x, y point and z-layer.
  2. Stream frame - arranges elements sequentially in word- wrapping lines.
  3. Table frame - arranges elements in a 2D grid. Since a frame itself can be an element of another frame, the user may nest elements to arbitrary levels. For example, it is trivial to insert a Z frame drawing into the cell of a table frame which itself in an element of a larger text stream frame.

Documents, Folders, and Workspaces

Reno uses the common Z frame container as the basis of documents, folders, and workspace. A document is simply a Z frame that arranges its elements in a z-layer on a page, but by virtue that it contains document sorts of things (i.e., text, illustrations, charts) it takes on the role of being a document to the user. Folders are similarly Z frames that are normally used to store documents and other folders, but they are capable of containing other kinds of elements like graphics or text. This flexibility permits a folder to contain a disclaimer paragraph about its contents right at the top level of folder. A workspace, in addition to being a container, is conceptually a "place" where a user organizes tasks, including items such as opened documents or folders. "Entering" a workspace causes its view to occupy the entire display. Because documents, folders, and workspaces are fundamentally Z frames, their selection and manipulation of elements behave consistently from the user's point of view.

Windows, Views, and Links

The contents of a container are viewed by the user through a window object - a rectangular frame that provides a scrollable view of the content of a container. How the content is actually rendered in the window is a function of the view the user has chosen (i.e., page layout, outline). A Reno link is an icon which provides alternate access to a container. The link maintains its own independent view state on the container which permits numerous windows (even numerous users) to see the same container simultaneously.

OPERATIONS

Reno strives to keep the number of operations that a user must learn to a minimum. A small number of widely applicable commands (i.e., copy, delete, move, link, properties) are used in combination to achieve more sophisticated actions. The interaction style of Reno is noun-verb: the user makes a selection then acts upon it. The selection may be single/multiple, contiguous/disjoint, and is visualized by an universal animated marquee in all container types. The right mouse button displays a pop-up menu of commands which the selection is capable of responding to, either individually or cooperatively as a set. The container of the selection may add commands to this menu which it is willing to perform on the selection's behalf (i.e., To Front and To Back in a Z frame). The selection may also display handles (i.e. resizing) for direct manipulation.

Transfer Model

Objects are transferred from one place to another using drag and drop. There is no clipboard method per se, but since the workspace is capable of holding any kind of object, the user may temporarily park an object en route on the workspace until the destination is available. Dragging with the right mouse button displays a pop-up menu of all the possible transfer options at the destination (i.e., move, copy, link). Dragging with the left button will automatically perform the default option at the destination.

Properties

Every object has a set of properties which control its appearance and behavior. These properties are manifest to the user for editing through a property sheet. Property sheets not only inspect a particular instance but may also track the properties of the current selection acting as a browsing toolbar. Individual properties of different objects may be one- or two-way linked together permitting the user to specify constraints among a set of objects. With a single command, a style or filter sheet can be generated from an existing property sheet. Applying a style sheet to an object transfers the property values to appropriate properties of that object. Subsequently altering the style sheet will propagate the changes to all the stylized objects. A filter, on the other hand, when applied to a window will hide objects that do not match the filter criteria. Reno enables the user to create styles and filters by example since they are derived from any object's property sheet.

Scripts

The user may extend the behavior of Reno objects and automate repetitive tasks by writing scripts that are triggered upon certain events. All objects announce certain events such as deletion, change in appearance, and change in size. The user may write a segment of code to be invoked when one of these events occur in an object. The script may perform any action on any Reno object, referencing it by its globally unique name.

APPLICATION

To illustrate how all of these basic objects and operations combine together, the Reno demonstration portrays how a travel agency might use such an interface. The agency's "travel desk" is a workspace that contains travel catalogs of compound documents written for travel destinations. These documents include video and sound clips, travel tips, maps, and photographs. Client profiles are fashioned from documents containing text fields and form controls to document travel preferences. So-called mail is routed via Reno's generic drag and drop transfer allowing clients to receive the latest travel information from the agency. The scenario covers a broad range of system and application- level functionality, yet is performed with fewer items and commands than would be required in an application-centric design.

INFORMATION AND QUESTIONS

You many contact Microsoft's Advanced User Interface Group at ui@microsoft.com.

References

  1. Goldberg, Adele and Robson, David. Smalltalk-80, The Language. (Reading, MA, 1989), Addison Wesley.
  2. Smalltalk/V Windows, (Los Angeles, 1991), Digitalk.
  3. ollins, Dave. Object-Oriented User Interfaces Tutorial at OOPSLA ‘92 (Vancouver, BC), ACM
  4. Booch, Grady. Object Oriented Design with Applications. (Redwood City, CA, 1991), Benjamin Cummings Publishing Co