Hi,

On 27 Feb 2011, at 12:04, Stéphane Ducasse wrote:

>>>> - Lukas went over the WeakAnnouncements implementation to get the 
>>>> WeakMessageSend working. The code is in PharoTaskForces
>>> 
>>> should we take action on this one?
>>> I mean integrating it.
>> 
>> It can be integrated, because the base code works in the same way as before.
>> 
>> Currently, the solution is implemented through a WeakAnnouncer which 
>> subclasses Announcer. I wanted the weak thing to be merged, because the 
>> clients of announcements should benefit from the Weak implementation, but 
>> Lukas says that he does not trust the Weak support in Pharo and that if you 
>> have many WeakAnnouncers it somehow does not scale.
> 
> ok so ...?

So, we need to investigate more :). It would be cool if someone with more 
knowledge would take a look, too. Igor, would you have a bit of time to look 
into it?

I will probably also give it a look to see how it works in the context of 
Glamour. I hope that Esteban will join me again. Esteban, what do you say :)?


>> The problem with the current approach is that models have to take an 
>> explicit stand of whether they want weak or non weak when instantiating the 
>> announcer. Unfortunately, I do have enough technical knowledge for this. It 
>> would be cool if someone with better knowledge in this area would take a 
>> look.
>> 
>>>> - Lukas worked on getting OB work with the changes in TextMorph from Pharo 
>>>> 1.2.
>>>> 
>>>> - Adrian, Jorge and Toon worked on implementing a Debugger on top of 
>>>> Glamour. They got a first version working that is able to do basic 
>>>> actions: step, restart, step into. The challenge was to get to understand 
>>>> the model, and to figure out that <primitive: 19> is used for marking that 
>>>> a method should not be debugged. In any case, working with Glamour seemed 
>>>> to work quite smoothly. The code is available in the Glamorous Toolkit. 
>>>> Adrian, did I get it right? :)
>>>> 
>>>> - Mircea built a new widget for searching multiple categories of items in 
>>>> the same time, similar to spotlight where you enter one string and you get 
>>>> multiple hits from multiple categories. The implementation was spawned 
>>>> from the OBCompletionDialog / OBCompletionRequest and currently it simply 
>>>> provides multiple lists one below the other. The idea is to use this kind 
>>>> of widget to search simultaneously for classes / methods / packages. The 
>>>> code is available in Glamour (Glamour-Morphic-Renderer). The widget can 
>>>> definitely be improved visually, but Mircea already did a nice job.
>>> 
>>> is the widget only for glamour because I think that a widget with search 
>>> list integrated should be used everywhere?
>>> We were discussing with alain to have a look at the one in OB and push 
>>> it/rewrite it as a core widget
>> 
>> Neither the OB nor the Glamour widgets depend on Glamour, so they can be 
>> used independently. You just need to take the Request and the Dialog 
>> together.
> 
> 
> ok where is the code?


OBCompletionDialog / OBCompletionRequest come with the OB from Pharo 1.2. The 
way to use it is like:

        OBCompletionRequest new
                        prompt: 'Find Class';
                        searchBlock: [ :string | OBCmdFindClass new 
findClassIn: Smalltalk pattern: string ];
                        labelBlock: [ :class | class name ];
                        iconBlock: [ :class | class browserIcon ];
                        signal.

The GLMSpotterRequest / GLMMorphicSpotterDialog are in 
Glamour-Morphic-Renderer. You can use them like

        | composite classRequest methodRequest thirdRequest |
        composite  := GLMSpotterRequest new.

        classRequest := GLMSingleSpotterRequest new 
                        prompt: 'Find Class';
                        searchBlock: [ :string | OBCmdFindClass new 
findClassIn: Smalltalk pattern: string ];
                        labelBlock: [ :class | class name ];
                        iconBlock: [ :class | class browserIcon ].

        methodRequest := GLMSingleSpotterRequest new 
                        prompt: 'Object Selectors';
                        searchBlock: [ :string | Object selectors select: [:e| 
string, '*' match: e asString] ];
                        labelBlock: [ :e | e ].

        thirdRequest := GLMSingleSpotterRequest new 
                        prompt: 'Other Selectors';
                        searchBlock: [ :string | Class selectors select: [:e| 
string, '*' match: e asString] ];
                        labelBlock: [ :e | e ].
                        
        composite 
                add: classRequest;
                add: methodRequest;
                add: thirdRequest;
                signal


Cheers,
Doru



--
www.tudorgirba.com

"Reasonable is what we are accustomed with."


Reply via email to