cs349 - s10 - Lecture 19

CS349 - Implementing User Interfaces - Spring 2010

Public Service Annoucements

  1. Mid-term: 17 June, 2010, MC4059.

Lecture 19 - Sets of Components



Important aspects of look


What do we want in the feel of something?

Note. Most look is programmable/customizable, but the same code is not guaranteed to have the same look on different platforms. Even more so the programmable portion of feel is not guaranteed to be the same on different platforms. (The Macintosh interface, which cares more about this than any other, handles this problem by running only on one particular set of - often over-priced - hardware. The obvious generalization for this practice would be standards for hardware. Research topic. Develop ways of having reproducible feel in instances of a user interface running on different hardware configurations.)

Creating a uniform look-and-feel

  1. UI architect
  2. User interface toolkit
  3. Widely understood metaphor

Note. It is possible to appeal simultaneously to the higher and lower nature of implementers.

User Interface Toolkits - A history

What we're usually talking about when discussing `look-and-feel'.

Here's the problem.

How do you arrange for this?

  1. Model for inter-application cut-and-paste. (Clipboard, scrapbook).
  2. Common look-and-feel, which means using a common set of rules and operations.

In Apple's case the toolkit, at first, was just added ad hoc to the graphics model.

Note. In Apple's case most of the real benefits came from a restricted `palette'.

X, on the other hand, was done by a bunch of professors and grad students.

A new thesis topic, or more likely, grant application -

Basic motive not commercial, so little attention to look-and-feel, which are for suits (marketers).

NeWS went for a Spartan look,

and much better feel,

Widget Sets

Essential properties of widget sets.

Making an Interface out of widgets (in Java)

Start with a container widget

Add comopnents one by one, using the container's add method.

Components that get events get them through Listener interfaces

Components can communicate in two ways

  1. Some components create events, which can be listened for in other widgets.
  2. Components can call each other's methods.

The important structure of a Java interface is the structure that determines the flow of information from the user to the presentation. Inter-component communication controls the flow of information.

Call the show method of the highest level container to complete the initialization

Occasionally you want to change the appearance of a component in response to an event

  1. Change the paint method.
  2. Call paint, repaint or update.

Typical widgets

From Java AWT

As a self-test, to see if you are getting the essence of each widget, try identifying

  1. Aspects of the widget that implement the parts of a dialogue,
  2. Aspects of the widget that implement Olsen's presentation components.

Return to: