add examples
authorca
Fri, 14 Nov 1997 10:25:05 +0100
changeset 619 4a919c3f5f04
parent 618 6a79bf9b4cd3
child 620 963acb192f06
add examples
DataSetView.st
--- 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 $'
 ! !