fchan@watvlsi.waterloo.edu (Francis Chan) (03/02/89)
This is another attempt to solicit info regarding the porting of
ST-V/286 to ST-80. So far, all I've received are requests for me to
post a summary.
Surely, somebody out there must have done something similar???
I have an article which mentions some pertinent stuff. The authors
ported their stuff from ST-V (not V/286) to ST-80:
The OFMspert Project (Its from July 88 issue of HOOPLA!)
by K.S. Rubin, P.M. Jones and C.M. Mitchell. (Summarized
without permission from authors.)
Essentially you:
{1} file out the source code into 2 files:
(a) class defs and (b) methods
{2} Adjust syntax as necessary (apparently a mechanical
process).
{3} File in the class defs. Class categories (ST-80) are
added to the defs as they are being filed in.
{4} File in the methods. This is apparently another
mechanical operation. Return expressions should not be
ended with ".".
{5} Split large methods into smaller ones.
{6} Add any classes native to ST-V that weren't in ST-80.
The class they mentioned was the Pattern class.
{7} Test like crazy.
The authors indicated that the first 6 steps took approx. 15 hours for
2 experts to do (ported 33 classes and 291 methods to 244 classes(!!)
and 4902 methods (!!!!!)). Apparently, the ST-V methods were larger
than most so a lot of splitting had to be done. The testing part (7)
took 120 hours.
This is helpful in itself in order to gauge the time. However, I need
to know how compatible the window interfaces are. I have unfortunately
done some tweaking to the ST-V/286 window interface to do things like
closing "children" windows and objects when the parent is closed.
I have yet to receive our copy of ST-80 so I cannot look at the
source code for the interface.
Ok. Maybe some more direct questions may help make it easier to
answer.
(i) ST-V/286 has the concepts of buttons ... any equivalent in
ST-80? (Not very important since use of menus can circumvent
this)
(ii) ST-V/286 handles windows by using an OrderedCollection of
dispatchers for the window instances. Does ST-80 do the same
(sounds like the logical way of doing it)? I ask this because
of the lack of definitions for similar classes in the "Blue
book". The "Red book" mentions something brief on the
ScreenController class.
(iii) ScreenController class: How does it know which window (view) is
active? Is there a class (subclass) that is responsible for
each browser that is then stored in a ScreenController
variable?
(iv) Can someone knowledgeable in the ST-80 interface mention the
classes involved in closing and opening of a window? How it
handles cycling? Details needed...
Thanks.
Francis Chan
----------------------------------------------------------------------
fchan@swen1.waterloo.edu
fchan@watvlsi.waterloo.edujohnson@p.cs.uiuc.edu (03/06/89)
I haven't used ST V much, but have used ST 80 a lot.
The Journal of Object-Oriented Programming had a paper on
Model/View/Controller in V1 N3 that describes the ST 80
user interface classes. Basically, they are a lot like the
ones in ST V.
(i) ST-80 has buttons.
(ii) In ST-80, ControlManager has an OrderedCollection of window
instances and keeps track of which window is active.
(iii)ScreenController only manages a menu.
(iv) StandardSystemView and StandardSystemController manage the
opening and closing of a window, resizing, cycling, etc.
Once you get the image, you shouldn't have much trouble
figuring out what is happening, since the general philosophy
is similar to that of ST V.
Ralph Johnson