Media Objects


Document History

Created Dec. 20, 1995 mjn
Mail messages to patrick. Initial discussion arising from lego
modularity.
Revised Dec. 22, 1995 mjn
Merged messages into a single document. Begun re-write as a plan of action of
the development of Media Objects.
Revised Jan. 26, 1996 mjn
Re-cast into current Learning Structure terminology, ie. A widget is a
media object.

Introduction

A great deal of development has been accomplished at MicroMentor in creating training systems over the last several years. This effort has led to a fairly deeping understanding of how make good training systems, what they should look like, what is needed, etc. Besides this development experience, there has been very little re-use of existing software, structures, etc. in part because each application requires customization.

A desire has been expressed to create a body of tools, objects, and learning structures which can be easily re-used to create new applications. Three levels of structure have been identified: Learning Structure, Component, and Media Objects. This document focuses on the design and development of Media Objects (also called widgets) which can be used to create Component behavior and display content in a modular, re-usable way.


Definition

A Media Object is a User Interface element with some physical appearance and associated interactive behavior. It has a default appearance, can be customized and may be coupled to a content element for display or manipulation. They have two main purposes: to presentation of content and to get input from a user. As such all, media objects have both an appearance and a behavior.
Characteristics

As mentioned above, all media objects have both an appearance and some form of behavior associated with them. In addition, most can be customized through adornment, which refers to borders, background color, transparency, etc.


Appearance

Appearance refers to how the media object is drawn on a display device. In its simplest form, a media object is a plain rectangle, which is often referred to as a Pane (a piece of a window). A Pane can occupy some or all of a window, furthermore, Panes can contain other Panes, which allows for complex structures to be developed. A Pane also has a way to draw it, which means that lines and other shapes can be added to give visual meaning to the media object.

Adornment

In addition to the drawing behavior associated with a media object, various kinds of embellishments can be applied. All media objects can have a border which can be raised, inset or flush. Boarders have a width, color, and possibly other parameters. Media objects have a foreground color and a background color. The forground color can be used as the color to draw with, thus allowing the color of the object to be user-customized. The background can be a flat color, or a texture, picture, etc.

Behavior

Virtually any kind of behavior can be developed for media objects. Some of the more common are actions taken when clicked on, sliding some portion of the object (scroll bars, for example), go to another event, etc. A media object can also have no behavior, which makes it display only. This is actually quite useful for showing static text or graphics.


Kinds of Media Objects

Display Object

In general, media objects can be broken into two major categories: display objects and action objects. The primary purpose of a display object is to present a content element. Note that even a display object has behavior associated with it: text could be scrolled, animation can stop and start, etc. Display objects do not lead to a change in the state of a component or lead to another object.

Attributes of a Display Object

Bounding rectangle
Content type
Display structure
Display behavior
Embedded media objects

Examples of Display Objects

Text Title and Prompt
Text Box
Graphic Box
Animated Sprite
Animated Highlight
Movie Viewer
Symbol Icon (such as a logo)
Indicator Light
Read Out
Meter

Action Object

Action objects are intended to provoke a change in the state. Note that an action object can have content associated with it, such as a picture that causes a link to another event. Action objects are often dynamically presented on the display screen: buttons get depressed or light up, scroll bars slide, etc.

Attributes of an Action Object

Bounding rectangle
Content type
Display structure
Display behavior
Action behavior
Embedded media objects

Example of Action Objects

Button
Radio Button
Check Box
Scroll Bar
Slider
Clickable Graphic
Text Phrase Links
Knob
Dragable Box


Some questions for Media Objects:

What basic controls are needed?
What degree of customization is needed?
What are the typical forms of display output?
Are these static or dynamic?
Is an object approach the best one?

The MicroMentor Look

One way to capitalize on restricted functionality and customization is to develop a standard “MicroMentor Look” for applications. This look would be based on a set of design rules, color schemes, standard placements, etc. This look might be abstracted out of existing applications, or might be developed anew. It might also be impacted by any new business directions that MicroMentor may choose to persue.


Further Requirements

Separation of Content

A means must be provide to create a media object and indicate that it needs a piece of content to be properly displayed. It should be possible to indicate what kind of content should be used and whether it is require to be present, optional or required to be missing.

Runtime Platform Independence

The media objects which are used to create a Learning Component must be completely platform independent, which means that it can run on any CPU type under any operating system in a wide variety of display, input, memory, and disk configurations.

Runtime Customization

It should be possible to specify the certain attributes of the media object at runtime, or from an external data source. This allows buttons to be customized for color and labeling, etc.

Content Portability

In general, media objects are not hardwired to a content element. The content element to be used is specified at run time by the component. This allows the same media object to display a variety of material in a consistent manner from event to event.

Resolution Independence

Media objects must take into account limits of screen resolution, pointer resolution, and color depth. A generalized interface can be implemented by a more specific platform layer.

Rapid Development

They must provide the ability to be rapidly developed by non-programmers. In general this means that they have to be easily manipulated by editing tools.

Re-usability

A media object should not only be re-usable within the context of a Learning Component, but also should be extensible and customizable to create new media objects with more complex behaviors and display characteristics.

Design Integrity

It may be desirable to limit the capabilities in order to ensure an over all design integrity to the applications and products which result from it.

Performance

They need to be wicked fast.

Quality

The also need to be reliable, dependable, and bug free.