Status: Accepted Owner: damien.c...@gmail.com CC: tudor.gi...@gmail.com Labels: Type-Defect Priority-Critical Component-Glamour
New issue 656 by damien.c...@gmail.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
I would like each finder's pane to be a simple browser instead of just a presentation. The following does not work and I can't make it work. When the #selection port is triggered, a new pane is correctly added to the finder, but all of the finder's panes are updated with the same content as the new one.
|navigator finder|
navigator := GLMTabulator new. navigator row: #content. navigator transmit to: #content; andShow: [:a | a list display: #allSuperclasses]. navigator transmit from: #content; toOutsidePort: #selection.
finder := GLMFinder new. finder show: [:a | a custom: navigator].
finder openOn: String
Updates: Labels: Milestone-4.6
Comment #1 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Hmm, it looks like the copying is correct at the level of the Glamour model. These all return the correct result: finder panes collect: [:each | each presentations first ]. finder panes collect: [:each | (each port: #entity) value ]. finder panes collect: [:each | each presentations first panes first port: #entity ]
So, maybe it's only at the rendering level.
Comment #2 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Ok, now I have a test that fails, but I still do not know the cause:
Name: Glamour-Tests-Morphic-TudorGirba.46 Author: TudorGirba Time: 27 June 2011, 9:47:45 pm UUID: 4bbc414a-7fa3-4955-8a83-d2976684b436 Ancestors: Glamour-Tests-Morphic-cyrilledelaunay.45
written a failing test to capture Issue 656: [Glamour] Finder doesn't copy browsers inside its panes
Updates: Status: Fixed
Comment #3 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Fixed finally in the latest Glamour-Core.
The problem was that the Pane copied the announcement registrations when being copied. It should work now. Two tests testify to this :)
Updates: Status: Accepted
Comment #4 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
It looks like there are still problems with more complex browsers:
navigator := GLMTabulator new. navigator row: #content; row: #details. navigator transmit to: #content; andShow: [:a | a list display: #allSuperclasses]. navigator transmit from: #content; to: #details; andShow: [ :a | a text ]. navigator transmit from: #content; toOutsidePort: #selection. finder := GLMFinder new. finder show: [:a | a custom: navigator].
window := finder openOn: String.
Try selecting another item in the first pane and the bottom preview does not update.
Comment #5 on issue 656 by damien.c...@gmail.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
I've implemented GLMFinderTest>>testValidSubscriptionsInComplexBrowser which should reproduce mentionned behavior but does not. I guess the problem does not appear in the Core but only in Morphic.
Comment #6 on issue 656 by damien.c...@gmail.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Doru implemented GLMFinderMorphicTest>>testEmbeddedBrowserRefreshesRendering which reproduces the problem with Morphic
Comment #7 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
The problem is not in how the Glamour model works.
The problem is in the announcements that the model raises.
Comment #8 on issue 656 by damien.c...@gmail.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
I've updated GLMFinderMorphicTest>>testEmbeddedBrowserRefreshesRendering to show where the error is more clearly. However, I'm completely lost in Glamour architecture, it might be too complex.
Comment #9 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Fixed the issue with copying announcement registry when copying the Glamour objects. The problem was that when copying the panes and presentation, the announcer got reset, but the registry variable was not copied.
Now, everything should work fine.
Updates: Status: Fixed
Comment #10 on issue 656 by damien.c...@gmail.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
Works perfectly, thank you very much. Would you please tell me how you used the visualization to find the problem source?
Comment #11 on issue 656 by tu...@tudorgirba.com: [Glamour] Finder doesn't copy browsers inside its panes http://code.google.com/p/moose-technology/issues/detail?id=656
The visualization was not useful to identify directly the cause, but it was useful to provide a hint: it showed that the same renderer object was being announced to render multiple Glamour objects (the red lines). That meant that the the announcements were not copied properly when we copied the Glamour objects.