oh... :( well... need to keep looking then
Cheers, Esteban
El 16/01/2011, a las 6:48p.m., Tudor Girba escribió:
Johan, thanks for reporting.
Esteban, the problem is related to 492, but it does not appear to be the same because the problem still fails in the case of Mondrian. I added a test for this:
GLMMondrianMorphicTest>>testUnregisterFromAnnouncementsWhenUpdating
The test fails both with and without your fixes. Funny enough, when having a text or list presentation it works as expected even with and without the fixes:
GLMTextMorphicTest>>testUnregisterFromAnnouncementsWhenUpdating
I also added the unregistration in GLMCompositePresentation>>clear because this is what gets called when we replace the presentations in a pane, but it still does not solve the problem.
It would be so great if I would get another pair of eyes on this problem. I hope that these problems will go away when we will have Weak Announcements. Actually, does anyone want to help with those?
Cheers, Doru
On 16 Jan 2011, at 20:31, Esteban Lorenzano wrote:
Hi, yes... that would be the #492 issue (updates not being unsubscribe and for that, re-executed every time)
Cheers, Esteban
El 16/01/2011, a las 3:59p.m., Johan Fabry escribió:
Hi Doru, all
I am having a problem with the Mondrian panel in AspectMaps using an updateOn:from:. (See code below for details of the glamour script) I saw that on each update the update progressively gets slower. About double the time to be exact. I added some debugging code to the visualization to check this and ... on each update the mondrian drawing is painted double the amount of time than before: 1, 2, 4, 8, ... Poking around in the debugger shows the old pane is indeed not removed from the subscriptions list leading to doubling the amount of panes in the list on each refresh.
I suppose there is a simple fix for this so if you could fix it I would very much appreciate it! :-)
mondrianPaneOn: browser |num| num :=0. browser transmit to: #mpanel; from: #models; andShow: [:a | a mondrian painting: [:view :model | Transcript show: '+'. model isNil ifFalse: [ <DO THE PAINTING>]]. Transcript show: num; cr. num := num + 1]; updateOn: AMModelChanged from: [:ent | self announcer ]; allowNil ].
-- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"Problem solving efficiency grows with the abstractness level of problem understanding."
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev