diff -r 8746b7a4d215 -r 2d43dbc0e86c UIPainterView.st --- a/UIPainterView.st Sun May 10 16:09:06 2009 +0200 +++ b/UIPainterView.st Sun May 10 22:49:47 2009 +0200 @@ -1633,7 +1633,12 @@ ] ]. vSpec isNil ifTrue:[ - self warn:'Oops - could not create spec for some view' + (Dialog + confirm:('Oops - could not create spec for view: %1\\Continue ?' bindWith:aView printString) withCRs + noLabel:'Abort') + ifFalse:[ + AbortSignal raise + ]. ]. spec add:vSpec ]. @@ -2435,22 +2440,22 @@ |mySpec subSpecs| mySpec := self specFor:aView. - (mySpec notNil and:[mySpec class supportsSubComponents]) ifTrue:[ - (aView subViews notNil) ifTrue:[ - aView components notEmptyOrNil ifTrue:[ self halt ]. - aView subViews do:[:aSubView||spec| - spec := self fullSpecFor:aSubView. - spec notNil ifTrue:[ - subSpecs isNil ifTrue:[ - subSpecs := OrderedCollection new - ]. - subSpecs add:spec. - ]. + subSpecs isNil ifTrue:[ + subSpecs := OrderedCollection new + ]. + + ((aView components ? #()) , (aView subViews ? #())) do:[:aSubViewOrComponent | + |spec| + + spec := self fullSpecFor:aSubViewOrComponent. + spec notNil ifTrue:[ + subSpecs add:spec. ]. - subSpecs notNil ifTrue:[ - mySpec component:(SpecCollection new collection:subSpecs) - ] + ]. + + subSpecs notEmptyOrNil ifTrue:[ + mySpec component:(SpecCollection new collection:subSpecs) ] ]. ^ mySpec