DataSetView.st
changeset 619 4a919c3f5f04
parent 611 7fb299f3f542
child 637 e56ec99923ae
equal deleted inserted replaced
618:6a79bf9b4cd3 619:4a919c3f5f04
    54 "
    54 "
    55 !
    55 !
    56 
    56 
    57 examples
    57 examples
    58 "
    58 "
    59     example 1
    59     example 1: list with valid rows of type Array
    60                                                                                 [exBegin]
    60                                                                                 [exBegin]
    61     |top scr columns rows bool rdWtSel|
    61     |top scr columns rows bool rdWtSel|
    62 
    62 
    63     top  := StandardSystemView new label:'select'; extent:700@440.
    63     top  := StandardSystemView new label:'select'; extent:700@440.
    64     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
    64     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
    82     scr list:rows.
    82     scr list:rows.
    83     top open.
    83     top open.
    84                                                                                 [exEnd]
    84                                                                                 [exEnd]
    85 
    85 
    86 
    86 
    87     example 2
    87 
       
    88     example 2: list with none valid rows; defining #rowIfAbsent: block
       
    89                                                                                 [exBegin]
       
    90     |top scr columns bool rdWtSel|
       
    91 
       
    92     top  := StandardSystemView new label:'select'; extent:700@440.
       
    93     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
       
    94 
       
    95     columns := OrderedCollection new.
       
    96     bool    := true.
       
    97     rdWtSel := #( #at: #at:put: ).
       
    98 
       
    99     columns add:(DataSetColumnSpec label:'Text'   editorType:#None        selector:rdWtSel).
       
   100     columns add:(DataSetColumnSpec label:'Input'  editorType:#InputField  selector:rdWtSel).
       
   101     columns add:(DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:rdWtSel).
       
   102 
       
   103     scr rowIfAbsent:[:i|
       
   104         bool := bool not.
       
   105         Array with:('text: ', i printString) with:('input: ') with:bool
       
   106     ].
       
   107 
       
   108     scr columnDescriptors:columns.
       
   109     scr list:(Array new:1000).
       
   110     top open.
       
   111                                                                                 [exEnd]
       
   112 
       
   113 
       
   114 
       
   115     example 3: list with valid rows of type Structure
    88                                                                                 [exBegin]
   116                                                                                 [exBegin]
    89     |top scr clDc rows slct list idx bool|
   117     |top scr clDc rows slct list idx bool|
    90 
   118 
    91     top  := StandardSystemView new label:'select'; extent:700@440.
   119     top  := StandardSystemView new label:'select'; extent:700@440.
    92     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   120     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   123                                                                                 [exEnd]
   151                                                                                 [exEnd]
   124 
   152 
   125 
   153 
   126 
   154 
   127 
   155 
   128     example 3: add a row selector
   156     example 4: table includes a row selector and multiple select is enabled
   129                                                                                 [exBegin]
   157                                                                                 [exBegin]
   130     |top scr clDc rows slct list idx bool|
   158     |top scr clDc rows slct list idx bool|
   131 
   159 
   132     top  := StandardSystemView new label:'select'; extent:700@440.
   160     top  := StandardSystemView new label:'select'; extent:700@440.
   133     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   161     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   158     clDc last choices:#choices.
   186     clDc last choices:#choices.
   159     clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
   187     clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
   160 
   188 
   161     scr has3Dseparators:true.
   189     scr has3Dseparators:true.
   162     scr columnDescriptors:clDc.
   190     scr columnDescriptors:clDc.
       
   191     scr multipleSelectOk:true.
   163     scr list:rows.
   192     scr list:rows.
   164     top open.
   193     top open.
   165                                                                                 [exEnd]
   194                                                                                 [exEnd]
   166 
   195 
   167 
   196 
   168 
   197 
   169 
   198 
   170     example 4: performance test
   199     example 5: performance test; with valid rows
   171                                                                                 [exBegin]
   200                                                                                 [exBegin]
   172     |t1 top scr clDc rows slct list bool tmArr listModel|
   201     |t1 top scr clDc rows slct list bool tmArr listModel|
   173 
   202 
   174     top  := StandardSystemView new label:'select'; extent:600@440.
   203     top  := StandardSystemView new label:'select'; extent:600@440.
   175     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   204     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
   225     Transcript showCR:'DIFF : ', (t1 // tmArr size) printString.
   254     Transcript showCR:'DIFF : ', (t1 // tmArr size) printString.
   226                                                                                 [exEnd]
   255                                                                                 [exEnd]
   227 
   256 
   228 
   257 
   229 
   258 
   230     example 5: images as label
   259     example 6: performance test; with invalid rows: defining #rowIfAbsent:.
       
   260                                                                                 [exBegin]
       
   261     |t1 top scr clDc rows slct list bool tmArr listModel ctr|
       
   262 
       
   263     top  := StandardSystemView new label:'select'; extent:600@440.
       
   264     scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
       
   265 
       
   266     clDc := OrderedCollection new.
       
   267     rows := OrderedCollection new.
       
   268     list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true ).
       
   269     slct := #( #text   #field   #cbox    #clist    #toggle ).
       
   270     bool := true.
       
   271 
       
   272     clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
       
   273     clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
       
   274     clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
       
   275     clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
       
   276     clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
       
   277     ctr := 0.
       
   278 
       
   279     scr rowIfAbsent:[:i||values|
       
   280         bool := bool not.
       
   281         ctr := ctr + 1.
       
   282         values := list collect:[:n|
       
   283             n isString ifTrue:[n, ctr printString]
       
   284                       ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
       
   285         ].
       
   286         Structure newWith:slct values:values
       
   287     ].
       
   288 
       
   289     scr columnDescriptors:clDc.
       
   290     scr beDependentOfRows:false.
       
   291     scr has3Dseparators:true.
       
   292 
       
   293     top openAndWait.
       
   294     tmArr := Array new:4.
       
   295     listModel := List new.
       
   296     scr listHolder:listModel.
       
   297 
       
   298     (1 to:tmArr size) do:[:i|
       
   299         listModel removeAll.
       
   300 
       
   301         t1 := Time millisecondsToRun:[
       
   302             1 to:200 do:[:i| |values|
       
   303                   listModel add:nil.
       
   304                 i even ifTrue:[
       
   305                     listModel removeFirst
       
   306                 ]       
       
   307             ]
       
   308         ].
       
   309         tmArr at:i put:t1
       
   310     ].
       
   311     t1 := 0.
       
   312 
       
   313     Transcript showCR:'----------'.
       
   314     tmArr do:[:t|
       
   315         t1 := t1 + t.
       
   316         Transcript showCR:'TIME : ', t printString.
       
   317     ].
       
   318     Transcript showCR:'----------'.
       
   319     Transcript showCR:'DIFF : ', (t1 // tmArr size) printString.
       
   320                                                                                 [exEnd]
       
   321 
       
   322 
       
   323 
       
   324     example 7: images as label
   231                                                                                 [exBegin]
   325                                                                                 [exBegin]
   232 
   326 
   233     |lbl top scr clDc rows slct list idx bool|
   327     |lbl top scr clDc rows slct list idx bool|
   234 
   328 
   235     top  := StandardSystemView new label:'select'; extent:400@440.
   329     top  := StandardSystemView new label:'select'; extent:400@440.
   504     |start stop|
   598     |start stop|
   505 
   599 
   506     start := anArray first.
   600     start := anArray first.
   507     stop  := anArray last.
   601     stop  := anArray last.
   508 
   602 
   509     (start == 1 and:[stop == columnView size]) ifTrue:[
   603     listHolder value size == 0 ifTrue:[
   510         columnView list:nil
   604         columnView list:nil
   511     ] ifFalse:[
   605     ] ifFalse:[
   512         (stop - start + 1) timesRepeat:[
   606         (stop - start + 1) timesRepeat:[
   513             columnView removeIndex:start
   607             columnView removeIndex:start
   514         ]
   608         ]
   586 ! !
   680 ! !
   587 
   681 
   588 !DataSetView class methodsFor:'documentation'!
   682 !DataSetView class methodsFor:'documentation'!
   589 
   683 
   590 version
   684 version
   591     ^ '$Header: /cvs/stx/stx/libwidg2/DataSetView.st,v 1.5 1997-11-12 16:25:06 ca Exp $'
   685     ^ '$Header: /cvs/stx/stx/libwidg2/DataSetView.st,v 1.6 1997-11-14 09:25:05 ca Exp $'
   592 ! !
   686 ! !