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. |
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 ] |