Glamour problem. Presentations not being updated

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

Glamour problem. Presentations not being updated

EstebanLM
Hi,
I'm again working with glamour.
I have this browser:

buildBrowser
        | browser |
       
        browser := GLMTabulator new
                column: #list;
                column: #detail;
                yourself.

        browser transmit
                to: #list;
                andShow: [ :presenter |
                        presenter list
                                title: [ self crudClass description label ];
                                act: [ self addItem ]
                                        icon: LWUIIcons / #listAdd
                                        entitled: 'Agregar';
                                selectionAct:[ :presentation :anItem | self removeItem: anItem ]
                                        icon: LWUIIcons / #userTrash
                                        entitled: 'Borrar';
                                updateOn: LWUIItemRemoved from: [ self announcer ];
                                display: [ self itemsSortedIfNecessary ] ].
               
        browser transmit
                to: #detail;
                from: #list;
                andShow: [ :presenter |
                        presenter magritte
                                title: [ :anItem | anItem asString ];
                                updateOn: LWUIItemRemoved from: [ self announcer ];
                                act: [ :presentation :anItem | self removeItem: anItem ]
                                        icon: LWUIIcons / #userTrash
                                        entitled: 'Borrar' ].
               
        ^browser

(don't take into account the spanish words :) )
the idea is this: I'm making a simple CRUD for some classes... and this is the problem:

1) when calling "removeItem", I update the list, and everything works fine... but I removed an element from the list, so... selection shouldn't be valid anymore,  and the magritte presentation should be erased... and this does not happens.
2) I added the #updateOn:from: send to magritte presentation to see if something happens... and no, it never receives the update :(

so... I think there is a need to fix both problems: list presentations should trigger transmit update if selection no longer valid, and magritte presentation should react to updates.
Is that ok?

cheers,
Esteban


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Glamour problem. Presentations not being updated

Tudor Girba-2
Hi,

You should tell the presentation to explicitly "validate" the ports after an update. This does not happen by default because it can be computationally expensive.

I added an example in the latest Glamour-Examples: GLMBasicExamples>>validatingPresentation


Cheers,
Doru



On 14 Sep 2011, at 20:47, Esteban Lorenzano wrote:

> Hi,
> I'm again working with glamour.
> I have this browser:
>
> buildBrowser
> | browser |
>
> browser := GLMTabulator new
> column: #list;
> column: #detail;
> yourself.
>
> browser transmit
> to: #list;
> andShow: [ :presenter |
> presenter list
> title: [ self crudClass description label ];
> act: [ self addItem ]
> icon: LWUIIcons / #listAdd
> entitled: 'Agregar';
> selectionAct:[ :presentation :anItem | self removeItem: anItem ]
> icon: LWUIIcons / #userTrash
> entitled: 'Borrar';
> updateOn: LWUIItemRemoved from: [ self announcer ];
> display: [ self itemsSortedIfNecessary ] ].
>
> browser transmit
> to: #detail;
> from: #list;
> andShow: [ :presenter |
> presenter magritte
> title: [ :anItem | anItem asString ];
> updateOn: LWUIItemRemoved from: [ self announcer ];
> act: [ :presentation :anItem | self removeItem: anItem ]
> icon: LWUIIcons / #userTrash
> entitled: 'Borrar' ].
>
> ^browser
>
> (don't take into account the spanish words :) )
> the idea is this: I'm making a simple CRUD for some classes... and this is the problem:
>
> 1) when calling "removeItem", I update the list, and everything works fine... but I removed an element from the list, so... selection shouldn't be valid anymore,  and the magritte presentation should be erased... and this does not happens.
> 2) I added the #updateOn:from: send to magritte presentation to see if something happens... and no, it never receives the update :(
>
> so... I think there is a need to fix both problems: list presentations should trigger transmit update if selection no longer valid, and magritte presentation should react to updates.
> Is that ok?
>
> cheers,
> Esteban
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Sometimes the best solution is not the best solution."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Glamour problem. Presentations not being updated

EstebanLM
thanks, Doru :)

El 14/09/2011, a las 4:38p.m., Tudor Girba escribió:

> Hi,
>
> You should tell the presentation to explicitly "validate" the ports after an update. This does not happen by default because it can be computationally expensive.
>
> I added an example in the latest Glamour-Examples: GLMBasicExamples>>validatingPresentation
>
>
> Cheers,
> Doru
>
>
>
> On 14 Sep 2011, at 20:47, Esteban Lorenzano wrote:
>
>> Hi,
>> I'm again working with glamour.
>> I have this browser:
>>
>> buildBrowser
>> | browser |
>>
>> browser := GLMTabulator new
>> column: #list;
>> column: #detail;
>> yourself.
>>
>> browser transmit
>> to: #list;
>> andShow: [ :presenter |
>> presenter list
>> title: [ self crudClass description label ];
>> act: [ self addItem ]
>> icon: LWUIIcons / #listAdd
>> entitled: 'Agregar';
>> selectionAct:[ :presentation :anItem | self removeItem: anItem ]
>> icon: LWUIIcons / #userTrash
>> entitled: 'Borrar';
>> updateOn: LWUIItemRemoved from: [ self announcer ];
>> display: [ self itemsSortedIfNecessary ] ].
>>
>> browser transmit
>> to: #detail;
>> from: #list;
>> andShow: [ :presenter |
>> presenter magritte
>> title: [ :anItem | anItem asString ];
>> updateOn: LWUIItemRemoved from: [ self announcer ];
>> act: [ :presentation :anItem | self removeItem: anItem ]
>> icon: LWUIIcons / #userTrash
>> entitled: 'Borrar' ].
>>
>> ^browser
>>
>> (don't take into account the spanish words :) )
>> the idea is this: I'm making a simple CRUD for some classes... and this is the problem:
>>
>> 1) when calling "removeItem", I update the list, and everything works fine... but I removed an element from the list, so... selection shouldn't be valid anymore,  and the magritte presentation should be erased... and this does not happens.
>> 2) I added the #updateOn:from: send to magritte presentation to see if something happens... and no, it never receives the update :(
>>
>> so... I think there is a need to fix both problems: list presentations should trigger transmit update if selection no longer valid, and magritte presentation should react to updates.
>> Is that ok?
>>
>> cheers,
>> Esteban
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Sometimes the best solution is not the best solution."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev