comp.lang.ada
 help / color / mirror / Atom feed
From: Vinzent Hoefler <ada.rocks@jlfencey.com>
Subject: Re: Ada 200X
Date: Wed, 04 Jun 2003 09:38:35 +0200
Date: 2003-06-04T09:38:35+02:00	[thread overview]
Message-ID: <bbk7oa$8t60e$1@ID-175126.news.dfncis.de> (raw)
In-Reply-To: 3EDCB68D.9070802@attbi.com

Robert I. Eachus wrote:

>Vinzent Hoefler wrote:
>
[snip]
>> This rather looks like a tree. And I doubt, any medium sized OO-System
>> would be much different from that just because it's Ada.
>
>First, lets get a view that doesn't hide the structure:
>
>TObject
>   TView
>     TScrollBar
>     TStaticText
>       TLabel
>       TParamText
>     TInputLine
>     THistory
>     TCluster
>       TRadioButtons
>       TCheckBoxes
>       TMultiCheckBoxes
>     TListViewer
>       TListBox
>       THistoryViewer
>     TGroup
>       TWindow
>         THistoryWindow
>         TDialog
>
>Let's actually put our Ada hats on and look at that hierarchy.  The 
>TObject vs. TView looks to be methodological not logical.

It is kind of both, TObject has some more children (I mentioned it's
just a part of the whole hierarchy, but to post the whole hierarchy
would probably take a *lot* of lines), TView is simply the base object
for anything that has a Draw method to show itself on the screen, the
other children are objects that are not visible (like TPoint,
TRect[angle] or TValidator). IIRC, the reason all these are derived
from an empty base object is that the VMT has to be on the same place
for storing and loading these objects in/from streams for them. So the
decision for TObject/TView can be considered as a pure implementation
issue.

>Notice that 
>there is a descendent TListViewer, which is the only view related direct 
>child.)

It's just the name. Any children of TView can be displayed. :)

>TView has seven children.

In fact it has more.

>  If you redid this in Ada, I don't 
>know if TCluster and TGroup would remain as 'real' children but I am 
>sure that TWindow would get elevated.

Despite the quite similar name, this has very good reasons, TGroup is
for Objects that can be linked together, send their messaged through
and have appropriate Select/SelectNext methods whilst TCluster are
just objects that have a Mark method for selecting items (the
classical Radiobuttons and Checkboxes).

>  A typical Ada Model-View 
>hierarchy would have Object and View as parents and most other types 
>descended from one or the other.

Well, I don't think so. If I would redo Borland's stuff from scratch
it would probably look different but not *that* different.

>Of course, if I were to reimplement this hierarchy in Ada, I'd try as 
>hard as possible to keep the original structure.

Yes, and then you would encounter that when you do your own DialogBox
you have to call its parent's Init-Constructor (because this one will
initialize the color scheme, border, title bar and such things that
you don't want to do each time by yourself). And when after then you
decide that you implement a Dialog Box that always displays an
Ok-Button and insert it into the hierarchy inbetween your Fancy_Dialog
and the TDialog object you will encounter the problem that the
Ok-Button doesn't display because you still call the TDialog's Init
instead of the TDialog_OkBox's Init. This is where the "inherited"
keyword comes handy, so the compiler automatically selects the
TDialog_OkBox's Init and if this isn't implemented in a particular
case (in this example it would be) it selects the TDialog's Init
instead and so on... So you wouldn't have to change the code of your
new Fancy_Dialog just because you decided to save the work to insert
the Ok-Button in any of your own Dialog manually [Dialogs badly *need*
an Ok-Button, don't they? ;-)] and instead introduce another
Dialog-object in the hierarchy to do that automatically for you.

>I might or might not 
>manage to swallow the naming convention though. ;-)

Well yes, because having Pxxx for the pointer types to their Txxx
wouldn't be necessary, I guess.


Vinzent.

-- 
Parents strongly cautioned  --  this  posting  is  intended for mature
audiences  over  18.  It  may  contain some material that many parents
would not find suitable for children and may include intense violence,
sexual situations, coarse language and suggestive dialogue.



  reply	other threads:[~2003-06-04  7:38 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-01 21:36 Ada 200X And838N
2003-06-02  2:22 ` Bobby D. Bryant
2003-06-02  4:20 ` Robert I. Eachus
2003-06-02 11:22   ` Larry Kilgallen
2003-06-02 14:09     ` Hyman Rosen
2003-06-02 14:23       ` Vinzent Hoefler
2003-06-02 14:59         ` Hyman Rosen
2003-06-02 15:04           ` Vinzent Hoefler
2003-06-02 15:18             ` Bill Findlay
2003-06-02 15:32               ` Larry Kilgallen
2003-06-02 15:41               ` Vinzent Hoefler
2003-06-02 15:07           ` Larry Kilgallen
2003-06-02 15:04         ` Larry Kilgallen
2003-06-02 14:23     ` Robert I. Eachus
2003-06-02 14:31       ` Vinzent Hoefler
2003-06-02 15:05         ` Larry Kilgallen
2003-06-02 15:06         ` Hyman Rosen
2003-06-02 21:05         ` Robert I. Eachus
2003-06-02 22:59           ` Larry Kilgallen
2003-06-03  4:07             ` Robert I. Eachus
2003-06-03  7:52           ` Jean-Pierre Rosen
2003-06-03  9:09           ` Vinzent Hoefler
2003-06-03 14:54             ` Robert I. Eachus
2003-06-04  7:38               ` Vinzent Hoefler [this message]
2003-06-05  7:20                 ` Robert I. Eachus
2003-06-02  5:36 ` Wesley Groleau
2003-06-02  8:02 ` Preben Randhol
2003-06-02 10:50 ` Georg Bauhaus
2003-06-03  2:29 ` Steve
2003-06-03  2:45 ` Gautier Write-only
2003-06-03  8:38   ` Vinzent Hoefler
2003-06-03 11:48   ` Preben Randhol
2003-06-03 12:14     ` Lutz Donnerhacke
2003-06-03 12:35       ` Preben Randhol
2003-06-07 21:16       ` Craig Carey
2003-06-08 11:14         ` Martin Dowie
2003-06-09 14:07           ` Craig Carey
2003-06-13 14:20             ` Matthew Heaney
2003-06-13 14:00         ` Matthew Heaney
2003-06-03 17:24     ` Robert A Duff
2003-06-03 17:45       ` Preben Randhol
2003-06-03 17:48         ` Preben Randhol
2003-06-03 18:05           ` Vinzent Hoefler
2003-06-04 10:36             ` Preben Randhol
  -- strict thread matches above, loose matches on Subject: below --
2004-10-31  1:51 David Botton
2004-10-31  7:33 ` Martin Dowie
2004-10-31 18:59   ` Jeffrey Carter
2002-12-26 16:17 Ada 200x Adrian Hoe
2002-12-27 19:32 ` Randy Brukardt
2002-12-27 20:55   ` Robert A Duff
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox