set masterApplication ... in case of an ApplicationModel
--- a/TabItem.st Mon Jul 17 09:56:33 2000 +0200
+++ b/TabItem.st Mon Jul 17 12:24:43 2000 +0200
@@ -11,7 +11,7 @@
"
-"{ Package: '.:stx/libwidg2' }"
+"{ Package: 'stx:libwidg2' }"
Model subclass:#TabItem
instanceVariableNames:'rawLabel label enabled argument canvas adornments activeHelpText'
@@ -287,23 +287,41 @@
canvas
"returns the application or nil
"
- |view cls wsel ckey builder|
+ |view cls wsel ckey builder appl|
canvas notNil ifTrue:[
^ canvas
].
+ builder := self adornmentAt:#builder.
(ckey := self majorKey) notNil ifTrue:[
- (cls := Smalltalk resolveName:ckey inClass:self class) isNil ifTrue:[
- self majorKey:nil.
- ^ nil
+ (appl := builder application) notNil ifTrue:[
+ (cls := appl resolveName:ckey) isNil ifTrue:[
+ canvas := appl perform:ckey ifNotUnderstood:nil
+ ]
+ ] ifFalse:[
+ cls := Smalltalk resolveName:ckey inClass:self class.
].
- canvas := cls new.
+
+ canvas isNil ifTrue:[
+ cls isNil ifTrue:[
+ self majorKey:nil.
+ ^ nil
+ ].
+ canvas := cls new.
+ ].
(canvas isKindOf:ApplicationModel) ifTrue:[
view := SimpleView new.
wsel := self minorKey ? #windowSpec.
- builder := self adornmentAt:#builder ifAbsent:[ canvas createBuilder. canvas builder ].
+
+ canvas builder notNil ifTrue:[
+ builder := canvas builder
+ ].
+
+ (appl notNil and:[canvas masterApplication isNil]) ifTrue:[
+ canvas masterApplication:appl
+ ].
view client:canvas spec:wsel builder:builder.
canvas window:(self setupCanvasView:view).
] ifFalse:[
@@ -536,7 +554,7 @@
"
|appl key builder |
- self createNewBuilder ifFalse:[builder := aBuilder].
+ builder := self createNewBuilder ifTrue:[UIBuilder new] ifFalse:[aBuilder].
self adornmentAt:#builder put:builder.
(self translateLabel and:[label isString]) ifTrue:[
@@ -551,10 +569,13 @@
(key := self activeHelpKey) notNil ifTrue:[
activeHelpText := appl helpTextForKey:key.
].
-
+ builder application isNil ifTrue:[
+ builder application:appl
+ ].
+
(self majorKey isNil and:[(key := self minorKey) notNil]) ifTrue:[
canvas := SimpleView new.
- canvas client:appl spec:key.
+ canvas client:appl spec:key builder:builder.
canvas := self setupCanvasView:canvas.
]
].
@@ -736,5 +757,5 @@
!TabItem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/TabItem.st,v 1.9 2000-04-13 16:59:40 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/TabItem.st,v 1.10 2000-07-17 10:24:43 tm Exp $'
! !