Programming Guide


Overview of OpenDoc

 

OpenDoc is a set of class libraries designed to facilitate the easy construction of compound, customizable, collaborative, and cross-platform documents. To do this, OpenDoc replaces today's application-centered user model with a document-centered one. The user focuses on constructing a document or performing an individual task, rather than using any particular application. The software that manipulates a document is hidden, and users feel that they are manipulating the parts of the document without having to launch or switch applications.

This document-centered model does not mean that OpenDoc supports only those kinds of data found in paper documents. An OpenDoc document can contain data as diverse as navigable movies, sounds, animation, database information such as networked calendars, as well as traditional spreadsheets, graphics, and text. In OpenDoc, each new kind of medium that is developed can be represented as part of any document. Therefore OpenDoc can allow future kinds of media editors to be incorporated without change to the existing OpenDoc documents or editors.

Although OpenDoc lends itself directly to complex and sophisticated layout, its usefulness is by no means restricted to page-layout kinds of applications or even compound documents. The scripting and extension mechanisms allow for communication among parts of a document for any imaginable purpose. Tools such as spelling checkers can be created as components and can then access the contents of any parts in a document that support them; database-access components can feed information to any parts of a document; larger programs such as high-end printing applications can use specialized components to manipulate the data of all parts of a document for purposes such as proof printing and color matching.

The rest of this chapter summarizes the main features of OpenDoc for both users and developers. The rest of this book explains in more detail how to develop software that provides those features.


[ Top | Previous | Next | Contents | Index | Documentation Homepage ]