--- a/DataSetView.st Fri Nov 14 10:24:48 1997 +0100
+++ b/DataSetView.st Fri Nov 14 10:25:05 1997 +0100
@@ -56,7 +56,7 @@
examples
"
- example 1
+ example 1: list with valid rows of type Array
[exBegin]
|top scr columns rows bool rdWtSel|
@@ -84,7 +84,35 @@
[exEnd]
- example 2
+
+ example 2: list with none valid rows; defining #rowIfAbsent: block
+ [exBegin]
+ |top scr columns bool rdWtSel|
+
+ top := StandardSystemView new label:'select'; extent:700@440.
+ scr := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
+
+ columns := OrderedCollection new.
+ bool := true.
+ rdWtSel := #( #at: #at:put: ).
+
+ columns add:(DataSetColumnSpec label:'Text' editorType:#None selector:rdWtSel).
+ columns add:(DataSetColumnSpec label:'Input' editorType:#InputField selector:rdWtSel).
+ columns add:(DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:rdWtSel).
+
+ scr rowIfAbsent:[:i|
+ bool := bool not.
+ Array with:('text: ', i printString) with:('input: ') with:bool
+ ].
+
+ scr columnDescriptors:columns.
+ scr list:(Array new:1000).
+ top open.
+ [exEnd]
+
+
+
+ example 3: list with valid rows of type Structure
[exBegin]
|top scr clDc rows slct list idx bool|
@@ -125,7 +153,7 @@
- example 3: add a row selector
+ example 4: table includes a row selector and multiple select is enabled
[exBegin]
|top scr clDc rows slct list idx bool|
@@ -160,6 +188,7 @@
scr has3Dseparators:true.
scr columnDescriptors:clDc.
+ scr multipleSelectOk:true.
scr list:rows.
top open.
[exEnd]
@@ -167,7 +196,7 @@
- example 4: performance test
+ example 5: performance test; with valid rows
[exBegin]
|t1 top scr clDc rows slct list bool tmArr listModel|
@@ -227,7 +256,72 @@
- example 5: images as label
+ example 6: performance test; with invalid rows: defining #rowIfAbsent:.
+ [exBegin]
+ |t1 top scr clDc rows slct list bool tmArr listModel ctr|
+
+ top := StandardSystemView new label:'select'; extent:600@440.
+ scr := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
+
+ clDc := OrderedCollection new.
+ rows := OrderedCollection new.
+ list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true ).
+ slct := #( #text #field #cbox #clist #toggle ).
+ bool := true.
+
+ clDc add:( DataSetColumnSpec label:'Text' editorType:#None selector:#text ).
+ clDc add:( DataSetColumnSpec label:'Field' editorType:#InputField selector:#field ).
+ clDc add:( DataSetColumnSpec label:'C-Box' editorType:#ComboBox selector:#cbox ).
+ clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList selector:#clist ).
+ clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
+ ctr := 0.
+
+ scr rowIfAbsent:[:i||values|
+ bool := bool not.
+ ctr := ctr + 1.
+ values := list collect:[:n|
+ n isString ifTrue:[n, ctr printString]
+ ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
+ ].
+ Structure newWith:slct values:values
+ ].
+
+ scr columnDescriptors:clDc.
+ scr beDependentOfRows:false.
+ scr has3Dseparators:true.
+
+ top openAndWait.
+ tmArr := Array new:4.
+ listModel := List new.
+ scr listHolder:listModel.
+
+ (1 to:tmArr size) do:[:i|
+ listModel removeAll.
+
+ t1 := Time millisecondsToRun:[
+ 1 to:200 do:[:i| |values|
+ listModel add:nil.
+ i even ifTrue:[
+ listModel removeFirst
+ ]
+ ]
+ ].
+ tmArr at:i put:t1
+ ].
+ t1 := 0.
+
+ Transcript showCR:'----------'.
+ tmArr do:[:t|
+ t1 := t1 + t.
+ Transcript showCR:'TIME : ', t printString.
+ ].
+ Transcript showCR:'----------'.
+ Transcript showCR:'DIFF : ', (t1 // tmArr size) printString.
+ [exEnd]
+
+
+
+ example 7: images as label
[exBegin]
|lbl top scr clDc rows slct list idx bool|
@@ -506,7 +600,7 @@
start := anArray first.
stop := anArray last.
- (start == 1 and:[stop == columnView size]) ifTrue:[
+ listHolder value size == 0 ifTrue:[
columnView list:nil
] ifFalse:[
(stop - start + 1) timesRepeat:[
@@ -588,5 +682,5 @@
!DataSetView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/DataSetView.st,v 1.5 1997-11-12 16:25:06 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/DataSetView.st,v 1.6 1997-11-14 09:25:05 ca Exp $'
! !