DataSetBuilder.st
changeset 1158 37cbe3507ca9
parent 1156 65f9583a133e
child 1182 ad878ef29fa7
--- 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'!