Professional Documents
Culture Documents
t UNIX is a registered trademark of AT&T. Another goal was to unify the hybrid. structure of
MacApp and the non object-oriented Macintosh toolbox
into a single object-oriented application framework. We
Permlwon to copy without fee all or part of this material is granted provided
thar the copies are not made or distributed for direct commercial advantage,
believe that a major drawback of MacApp is the fact that
rhc ACM copyright notice and the title of the publication and its date appear, MacApp is only a thin Iayer on top of the Macintosh
and not~c IS given that copying is by permission of the Association for toolbox. The implementation of complex applications, as
Computing Machinery. To copy otherwise. or to republish. requires a fee and/
or spcctlic pcrmmlon. a result, always requires some intimate knowledge of both
the internal structure of MacApp and the Macintosh
0 1988 ACM 0-89791-284-5/88/0009/0046 $1.50 toolbox interface. We hoped that a single homogeneous
-PostscriptPort
system would strongly improve the efficiency of building did not want to implement a new window system, and
complex applications, especially for non-expert program- third, we believed that it is possible to find a small set of
mers. This would allow students develop CASE (Com- window system functions that is available in most
puter Aided Software Engineering) applications in short window systems or that can be adapted in a small
term projects. interface layer between ET++ and an underlying system.
We planned to realize the building blocks of the
user interface exclusively with concepts known from 3. The ET++ - Architecture
MacApp and to unify all parts of the implementation of The basic building blocks of the ET++ architecture are a
ET++ with a small set of basic mechanisms.If extensions class hierarchy and a small device dependentlayer mainly
should become necessary they should never make the mapping an abstract window system interface to the
overall structure of ET++ more complex and less elegant underlying real window system (Pig.2).
‘Ihe integration of foundation classes like those
known from the Smalltalk programming environment
[Go1831was another goal. The term integration not only
means installing these classesin the class hierarchy but
also supporting them with mechanismsfor interaction and
rendering on the screen.
Portability was a major issue in the design of ET++. Layor
September
25-30,1988 OOPSLA‘88 Proceedings 53
4.6. CollectionView and Menus The last step was to replace the special layout
Another specialized view is the CollectionView, algorithm by a dialog item of type Cluster to further
which displays any collection of VOb ject s as provided reduce the sourcebulk of CollectionView.
by the foundation classesin a tabular format. In fact its
implementation is based on the class Cluster of the 5. The Anatomy of an ET++ - Application
dialog classes. It also takes care of selecting and This section tries to give an impression of how the
deselecting single items as well as contiguous and non- different classes of ET++ fit together and what they
contiguous areas of items. The CollectionView is a contribute to a typical application. We briefly discuss
basic building block for all user interface objects which some structural and functional properties of the tree editor
have to present a collection of selectable items. It is the displaying the class hierarchy in Fig. 1. This tree editor is
root class for menus, menu bars, tools’ palettes, or a very simple application of some 500 lines of code but
scrollable lists of dialog items. Due to the very general neverthelessshows the most important characteristicsof
natureof CollectionView a Menu, fOreXan@e,ciUI an ET++ application.
always scroll and show items not only as lists but also in a The following features are automatically provided
tabular style. Hierarchical popup menus are implemented by the application framework classesand need no special
with items of class popup 1tern,, which contain a programming effort.
submenu in an instance variable and implement the
- scrollable views (including autoscrolling)
special behavior to open thar submenu.
The evolution of the classes CollectionView splittable views allow several panes (e.g.
and Menu illustrates a very interesting example of the ViewFrames) hking on disconnected pOrtiOnS