Viewing methods from superclass(es)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Viewing methods from superclass(es)

Steve Taylor
In the version of Smalltalk I used to use (VW with some slightly
nonstandard browser) I was able, when browsing a classes methods, to see
the methods implemented by that classes superclasses as well. The names
of these methods were, I think, a slightly lighter colour in the
browser, to distinguish them from methods native to that class.

This facility could be toggled on and off, and one could choose how far
back into the inheritance tree to view all inherited methods (the
default was everything but Object).

I found this extremely useful, as I often want to know what a class
does, rather than what it does which is unique.

Is there any likelihood of this finding its way into Dolphin? Or is it
already there but I haven't stumbled across it?



                              Steve

--
I confirm that I said it, but I will neither confirm nor deny that I
meant it.


Reply | Threaded
Open this post in threaded view
|

Re: Viewing methods from superclass(es)

Ian Bartholomew-5
Steve,

> Is there any likelihood of this finding its way into Dolphin? Or is it
> already there but I haven't stumbled across it?

The equivalent behaviour is already there in the ClassHierarchyBrowser.

The class list context menu and main Class menu both include "Browse/All
Methods" which opens up a MethodBrowser on all the selectors that the
selected class responds to.

The method list shows a little icon when a method is overriding a method
further up the hierarchy. It's context menu has a couple of options,
"Hierarchy" and "Superclass Definition" that allow you to browse through the
super definitions. NB: You can sort the column containing the icon so that
all the overridden methods in a class are grouped together.

This all works in a slightly different way to the one you describe but is,
IMHO, just as good.   I seem to recall finding that the full list of methods
in one ListView could be a bit confusing at times - although that was in
ST/V which had no colour coding.

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Viewing methods from superclass(es)

Scott Deans
In reply to this post by Steve Taylor
> Is there any likelihood of this finding its way into Dolphin? Or is it
> already there but I haven't stumbled across it?

Hi Steve

The exact requirements aren't in Dolphin but I modified the CHB to
incorporate a few extra commands when you right click on a class name and
choose 'browse'.
Under this menu I added :-

All Instance Methods
All Class Methods
Filter Superclass Methods

The first shows all inherited instance methods except from Object.
The second shows all inherited class methods except from Object.
The last allows you to select from a listbox which classes you wish to see
the inherited methods from.

I've created a package called chb1.
You just install it and then from System Properties change the default view
for
the CHB to 'ClassMethods'.

If you want to try it just e-mail privately and I'll send the package as an
attachment.

Hope this helps.



Best wishes


Scott


Reply | Threaded
Open this post in threaded view
|

Re: Viewing methods from superclass(es)

Andy Bower
In reply to this post by Steve Taylor
Steve,

> In the version of Smalltalk I used to use (VW with some slightly
> nonstandard browser) I was able, when browsing a classes methods, to see
> the methods implemented by that classes superclasses as well. The names
> of these methods were, I think, a slightly lighter colour in the
> browser, to distinguish them from methods native to that class.
>
> This facility could be toggled on and off, and one could choose how far
> back into the inheritance tree to view all inherited methods (the
> default was everything but Object).
>
> I found this extremely useful, as I often want to know what a class
> does, rather than what it does which is unique.
>
> Is there any likelihood of this finding its way into Dolphin? Or is it
> already there but I haven't stumbled across it?

The forthcoming Dolphin 5 has this facility in its Class Hierarchy Browser
and the new System Browser. You can see a screenshot of the inherited method
stuff in action at www.object-arts.com/Beta5/SB.gif. As a matter of
interest, we use a method Color>>faded to "fade" the colours of the
inherited methods in the various lists in which they are displayed:

!Color methodsFor!

faded
    "Answer a new color which is a faded copy of the receiver"
    | rgb |
    rgb := self asRGB.
    ^Color
        red: (255 - rgb red) // 2 + rgb red
        green: (255 - rgb green) // 2 + rgb green
        blue: (255 - rgb blue) // 2 + rgb blue! !

!Color categoriesFor: #faded!*-unclassified!public! !

For more info on what's in Dolphin 5 see my reply to Ian B's "Someone had to
ask" thread on 22 Sept 2001.

Best Regards,

Andy Bower
Dolphin Support
http://www.object-arts.com
---
Are you trying too hard?
http://www.object-arts.com/Relax.htm
---