On 20 Jan 2014, at 13:51, b...@openinworld.com wrote: > Sure thing. That was part of my original intention.
Cool :) Thanks > When I try... > self whenBuiltDo: [ self halt. self window whenClosedDo: [ self halt. > self repository unsubscribe: self ] ]. > none of the halts occur. > > However I got what I needed with the following… did you try to register in the initialize method ? Because if you register once the application is already open, it may not work :) > ---------- > ComposableModel>>topWindowHolder > ^ owner > ifNil: [ window ] > ifNotNil: [ :o | o topWindowHolder ]. > ---------- > ComposableModel>>whenWindowClosed: aBlock > self topWindowHolder value > ifNotNil: [ :w | w whenClosedDo: aBlock ] > ifNil: [ self topWindowHolder whenChangedDo: [ :w | w > whenClosedDo: aBlock ] ]. > ---------- > PhLTitledTreeModel>>repository: aRepository > self assert: self repository isNil description: 'Changing the > repository is not allowed because we would have to change the context as > well'. > repositoryHolder value: aRepository. > self repository whenChangedSend: #refresh to: self. > self whenWindowClosed: [ self repository unsubscribe: self. self > inform: 'Works for composed sub-items'. ] . > self refresh > ---------- > PharoLauncher>>initialize > super initialize. > self whenWindowClosed: [ self inform: 'Works for top level owner' ]. > ---------- > And optionally you could now have... > ComposableModel>>window > ^ self topWindowHolder value > ————— topWindowHolder sounds a bit hackish :) I think this can be achieved with the whenBuiltDo:, I should investigate :) > > If those ComposableModel additions are okay, I'll submit a slice on Case > 12677 (renamed to "ComposableModel subcomponents need to act on window close") > https://pharo.fogbugz.com/f/cases/12677/ You can also submitted here: https://github.com/SpecForPharo/spec if you want :) (and become a Spec contributor :P) Ben