Hi Andrei!

> On Apr 6, 2017, at 07:05, Andrei Chis <[email protected]> wrote:
> 
> Hi,
> 
> On Tue, Apr 4, 2017 at 5:01 PM, Juraj Kubelka <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi,
> 
> yes, it is better, but it does not work intuitively. Try the following: 
> 
> 1. execute your script,
> 2. click on 4 (selection), 
> 3. click on 8 (selection),
> 4. click on 4 (deselection),
> 5. click on 4 (selection)
> 
> You can see that the third list still keeps the number 8. It is necessary to 
> deselect 8 in order to see 4. 
> 
> Indeed, this is not what you'd expect.
>  
> 
> This part explains to me how the transmit works:
> 
> ```
> tabulator transmit 
>       from: #one; to: #three;
>       from: #two; to: #three;
>       transformed: [ :x :y | y ifNil: [ x ] ifNotNil: [ y ] ];
>       andShow: [ :a | 
>               a fastList display: [ :x | Array with: x ] ].
> ```
> 
> By using #transformed: I can decide what to use (#one or #two). It is nice 
> feature!
> 
> I think what I need is having to possibility to change the third list also 
> according to what list is active (#one or #two). 
> In the first screenshot, the first list is active (blue border). In the 
> second screenshot, the second list is active. 
> So I would like to update the third list according to the active one. 
> Is it possible?
> 
> Unfortunately this doesn't work out of the box.
> We'll need to implement something that can generate evens/populates a port 
> when a presentation gets the focus.

Does it make sense such feature? 
I am willing to do it. Can you give me some starting points? My knowledge about 
Glamour design is a bit weak. 

I suppose that it is necessary to subscribe for MorphGotFocus and 
MorphLostFocus in each renderer and do some actions accordingly, right? 
What are the actions? 

Thanks!
Juraj

> 
> Cheers,
> Andrei
>  
> 
> <Screen Shot 2017-04-04 at 11.52.42.png><Screen Shot 2017-04-04 at 
> 11.52.53.png>
> 
> Thanks!
> Juraj
> 
>> On Apr 3, 2017, at 18:53, Andrei Chis <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi,
>> 
>> That's actually the default behavior, but I see there is also a bug.
>> Normally if you want to allow deselection in a presentation you should use 
>> allowDeselection. Just I see there is a bug in the fast table renderer 
>> because if I add #allowDeselection to the first presentation when clicking 
>> again on the selected element the selection port is not cleared. If you use 
>> #list instead of #fastList it works.
>> 
>> I think you can get the desired behaviur using this code:
>> 
>> -----------------------------------------------------------------
>> tabulator := GLMTabulator new.
>> 
>> tabulator column: #one; column: #two; column: #three.
>> 
>> tabulator transmit to: #one; andShow: [ :composite |
>>      composite list 
>>              allowDeselection;
>>              display: [ :x | Array with: x ] ].
>> tabulator transmit to: #two; andShow: [ :composite |
>>      composite list
>>              allowDeselection;
>>              display: [ :x | Array with: 2 * x ] ].
>> 
>> tabulator transmit 
>>      from: #one; to: #three;
>>      from: #two; to: #three;
>>      transformed: [ :x :y | y ifNil: [ x ] ifNotNil: [ y ] ];
>>      andShow: [ :a | 
>>              a fastList display: [ :x | Array with: x ] ].
>> 
>> tabulator openOn: 4.
>> -----------------------------------------------------------------
>> 
>> 
>> Cheers,
>> Andrei
>> 
>> On Mon, Apr 3, 2017 at 9:35 PM, Juraj Kubelka <[email protected] 
>> <mailto:[email protected]>> wrote:
>> Hi!
>> 
>> If you create the following Glamour browser:
>> 
>> ```
>> tabulator := GLMTabulator new.
>> 
>> tabulator column: #one; column: #two; column: #three.
>> 
>> tabulator transmit to: #one; andShow: [ :composite |
>>      composite fastList display: [ :x | Array with: x ] ].
>> tabulator transmit to: #two; andShow: [ :composite |
>>      composite fastList display: [ :x | Array with: 2 * x ] ].
>> 
>> tabulator transmit from: #one; to: #three; andShow: [ :a | 
>>      a fastList display: [ :x | Array with: x ] ].
>> tabulator transmit from: #two; to: #three; andShow: [ :a | 
>>      a fastList display: [ :x | Array with: x ] ].
>> 
>> tabulator openOn: 4.
>> ```
>> 
>> You will get the following browser: 
>> 
>> <Screen Shot 2017-04-03 at 16.30.28.png>
>> 
>> if you then select 4, the third list appears. If you then select 8, the 
>> value is changed:
>> 
>> <Screen Shot 2017-04-03 at 16.29.38.png>
>> 
>> But since then, the third list does not change. It stays with 8 value 
>> forever. 
>> 
>> Do I miss something? Should I define it differently? 
>> Or if it is a bug: Can you give me insights how to fix it?
>> 
>> Tested in the latest Pharo 6.
>> 
>> Thanks!
>> Juraj

Reply via email to