diff -r cc039cdcc145 -r 37cbe3507ca9 DataSetBuilder.st --- a/DataSetBuilder.st Fri Jul 02 16:39:21 1999 +0200 +++ b/DataSetBuilder.st Fri Jul 02 17:35:21 1999 +0200 @@ -16,7 +16,7 @@ ResourceSpecEditor subclass:#DataSetBuilder instanceVariableNames:'rowClass rowSuperClass columnView columns selectedColumnIndex - modalOpened noteBook' + modalOpened noteBook listOfSpecViews' classVariableNames:'' poolDictionaries:'' category:'Interface-UIPainter' @@ -2082,9 +2082,7 @@ self seqList removeAll. self updateColumnView. self updateInfoLabel. - noteBook client:self spec:nil builder:builder. - self isColumnSelected value: false. - ^self + ^ self isColumnSelected value: false. ]. specSelector isNil ifTrue: [updateBlock value. ^self]. @@ -2483,7 +2481,10 @@ selectedColumnIndex := 0. columns := OrderedCollection new. modalOpened := false. - noteBook := SubCanvas new. + noteBook := View new. + + listOfSpecViews := Array new:(1 + self class slices size). + listOfSpecViews at:1 put:(View origin:0.0@0.0 corner:1.0@1.0 in:noteBook). ! ! @@ -2597,7 +2598,7 @@ tabSelection:something "changes selected tab and set corresponding specification" - |specSelector| + |specSelector view spec| something == tabSelection ifTrue:[^self]. @@ -2605,11 +2606,22 @@ tabSelection == 0 ifTrue:[^self]. tabSelection := 0 ] ifFalse:[ - (tabSelection := something) ~~ 0 ifTrue:[ - specSelector := (self class slices at:tabSelection) last - ] + tabSelection := something. ]. - noteBook client:self spec:specSelector builder:builder. + view := listOfSpecViews at:(tabSelection + 1). + + view isNil ifTrue:[ + view := View origin:0.0@0.0 corner:1.0@1.0 in:noteBook. + specSelector := (self class slices at:tabSelection) last. + spec := self class interfaceSpecFor:specSelector. + self builder buildFromSpec:spec in:view. + + noteBook realized ifTrue:[ + noteBook realizeAllSubViews + ]. + listOfSpecViews at:(tabSelection + 1) put:view. + ]. + view raise. ! ! !DataSetBuilder methodsFor:'startup / release'!