home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!stanford.edu!ames!haven.umd.edu!mimsy!alex
- From: alex@cs.umd.edu (Alex Blakemore)
- Newsgroups: comp.lang.ada
- Subject: Re: GUI Builder for Ada (NeXT)
- Message-ID: <59191@mimsy.umd.edu>
- Date: 23 Jul 92 15:55:43 GMT
- References: <1992Jul21.004533.12229@sei.cmu.edu> <59149@mimsy.umd.edu> <1992Jul23.001918.16925@sei.cmu.edu>
- Sender: news@mimsy.umd.edu
- Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742
- Lines: 60
-
- In article <1992Jul23.001918.16925@sei.cmu.edu> goodsenj@ajpo.sei.cmu.edu (John Goodsen) writes:
- > >NeXT's interface builder lets you ...
- > start to develop a class in the interface builder, [modify generated code]
- > and parse the evolved file to keep the interface
- > >builder up to date with changes you've made to the text.
-
- > Thisn't what was taught in the tutorial at CHI'92. In particular, I
- > explicitly addressed this issue and the answer was, if you change the
- > resulting code, it won't parse back in.
-
- This is definitely NOT true.
- You can parse the class definition file as many times as you wish.
- Every time you change the interface is a good idea. There is no need to parse
- if you change the implementation as that's not important to the Interface Builder.
-
- > Looking at my notes from that tutorial, I see a:
- > :-( can't unparse more than once :-(
- ^^^^^^
- > Is this not the case ?
-
- You misunderstood (though they dont make it crystal clear)
- Unparse means to generate a class interface and noop implementation file
- from the info stored in the builder. You use this when you have defined
- a class and its time to add some code to the implementation methods.
-
- You CAN unparse multiple times, but you will overwrite any changes
- you made since the last timer you unparsed (it prompts) but this
- is NOT a problem at all. You dont need to do this ever.
-
- You CAN parse multiple times and this is crucial, you do this alot.
-
- Parsing and unparsing are the way you keep the two representations of the
- same info (i.e. custom class defs) in synch. One representation (the code) is
- a superset of the other (the IB data structures)
-
- In practice, you define a class in IB,
- instantiate objects and connected the instances to other
- instances in various ways (all graphically).
- You unparse once to get an implementation file, edit it to define
- your code, only work in the text file from then on (for that class definition)
- and parse when you change the interface to inform the IB.
-
- You still use the graphical IB throughout, over and over again to change
- attributes, connections, create instances, define other classes, browse
- classes, modify the user interface in many ways.
- If you make changes to the generated code - no problem, you just
- need to hit the parse button to inform IB about them.
- I believe even this may go away in 3.0 next month because they support
- precompiled interface files (getting more like Ada) though I havent
- seen this with my own eyes.
-
- > One obvious C++ solution to this functionality is witnessed in the
- > Interviews Ibuild concept which forces a layer of inheritance between
- > what the Builder spits out and what you modify, allowing you to always
- > "re-engineer" the software back into the builder.
-
- This layer is not necessary with NeXT IB and objective C.
- --
- -------------------------------
- Alex Blakemore alex@cs.umd.edu
-