Le 03/07/2017 à 23:20, Juraj Kubelka a écrit :

> You may have a wrapper that holds the compiled method. So, the method list 
> can hold your wrappers instead of compiled methods.
> Than your wrapper could listen to the system announcer for changes and 
> updates its value accordingly.
> Or you can update your method list on according to changes in the system 
> announcer.

I really don't know how to hook this in the DrGeo script browser.

The methods are displayed with this code. How to add a listener to
update it?

methodsIn: composite  
        composite wrapper  title: 'Methods' translated;
                show: [ :wrapper |
                        wrapper fastList 
                                display: [ :aClass | aClass methods ];
                                format: [ :aCompiledMethod | aCompiledMethod 
selector asString ] ].
        composite wrapper title:  'Script data' translated;
                show: [ :wrapper |
                        wrapper fastList 
                                display: [ :aClass | aClass class methods ];
                                format: [ :aCompiledMethod | aCompiledMethod 
selector asString ] ].
        composite onChangeOfPort: #activePresentation act: [ :presentation | 
                (presentation pane port: #activePresentation) value ifNotNil: [ 
:activePresentation | 
                        ((browser paneNamed: #methods) port: #selection) value: 
(activePresentation defaultPane port: #selection) value ] ]


> Check, SystemAnnouncer uniqueInstance on: MethodModified do: [ :ann | self 
> inform: ann method printString, ‘ changed’ ].

In Pharo6, it should be written:

 SystemAnnouncer uniqueInstance *when:* MethodModified do: [ :ann | self 
inform: ann method printString, ‘ changed’ ].

-- 
Dr. Geo
http://drgeo.eu

Reply via email to