DataSetView.st
author ca
Fri, 10 Oct 1997 15:39:32 +0200
changeset 542 e22c45e26653
child 564 fa7bb887b4fa
permissions -rw-r--r--
intitial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     1
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     4
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    11
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    12
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    13
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    14
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    15
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    16
View subclass:#DataSetView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    17
	instanceVariableNames:'columnView labelView listHolder useIndex'
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    18
	classVariableNames:''
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    19
	poolDictionaries:''
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    20
	category:'Views-DataSet'
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    21
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    22
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    23
!DataSetView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    24
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    25
copyright
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    26
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    27
 COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    28
              All Rights Reserved
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    29
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    30
 This software is furnished under a license and may be used
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    35
 hereby transferred.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    36
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    37
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    38
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    39
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    40
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    41
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    42
documentation
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    43
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    44
    This class implements a selection list view based on rows and columns.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    45
    It allows for the dynamic editing of this information.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    46
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    47
    [author:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    48
        Claus Atzkern
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    49
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    50
    [see also:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    51
        DataSetColumnSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    52
        DataSetColumn
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    53
        DSVColumnView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    54
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    55
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    56
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    57
examples
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    58
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    59
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    60
    example 1
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    61
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    62
    |top scr clDc rows slct list idx bool|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    63
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    64
    top  := StandardSystemView new label:'select'; extent:700@440.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    65
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    66
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    67
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    68
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    69
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true    #( 'foo' 'bar' 'baz' ) ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    70
    slct := #( #text   #field   #cbox    #clist    #toggle #choices               ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    71
    idx  := 11.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    72
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    73
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    74
    20 timesRepeat:[ |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    75
        values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    76
            n isString ifTrue:[n, idx printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    77
                      ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    78
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    79
        rows add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    80
        bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    81
        idx  := idx + 1.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    82
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    83
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    84
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    85
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    86
    clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    87
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    88
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    89
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    90
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    91
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    92
    scr has3Dsepartors:true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    93
    scr columnDescriptors:clDc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    94
    scr list:rows.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    95
    top open.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    96
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    97
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    98
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    99
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   100
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   101
    example 2: add a row selector
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   102
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   103
    |top scr clDc rows slct list idx bool|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   104
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   105
    top  := StandardSystemView new label:'select'; extent:700@440.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   106
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   107
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   108
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   109
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   110
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true    #( 'foo' 'bar' 'baz' ) ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   111
    slct := #( #text   #field   #cbox    #clist    #toggle #choices               ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   112
    idx  := 11.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   113
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   114
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   115
    20 timesRepeat:[ |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   116
        values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   117
            n isString ifTrue:[n, idx printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   118
                      ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   119
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   120
        rows add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   121
        bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   122
        idx  := idx + 1.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   123
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   124
    clDc add:( DataSetColumnSpec rowSelector ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   125
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   126
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   127
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   128
    clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   129
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   130
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   131
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   132
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   133
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   134
    scr has3Dsepartors:true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   135
    scr columnDescriptors:clDc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   136
    scr list:rows.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   137
    top open.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   138
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   139
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   140
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   141
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   142
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   143
    example 3: performance test
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   144
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   145
    |t1 top scr clDc rows slct list bool tmArr listModel|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   146
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   147
    top  := StandardSystemView new label:'select'; extent:600@440.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   148
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   149
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   150
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   151
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   152
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   153
    slct := #( #text   #field   #cbox    #clist    #toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   154
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   155
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   156
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   157
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   158
    clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   159
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   160
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   161
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   162
    scr columnDescriptors:clDc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   163
    scr beDependentOfRows:false.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   164
    scr has3Dsepartors:false.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   165
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   166
    top openAndWait.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   167
    tmArr := Array new:4.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   168
    listModel := List new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   169
    scr listHolder:listModel.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   170
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   171
    (1 to:tmArr size) do:[:i|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   172
        listModel removeAll.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   173
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   174
        t1 := Time millisecondsToRun:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   175
            1 to:200 do:[:i| |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   176
                values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   177
                    n isString ifTrue:[n, i printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   178
                              ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   179
                ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   180
                listModel add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   181
                bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   182
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   183
                i even ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   184
                    listModel removeFirst
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   185
                ]       
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   186
            ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   187
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   188
        tmArr at:i put:t1
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   189
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   190
    t1 := 0.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   191
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   192
    Transcript showCR:'----------'.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   193
    tmArr do:[:t|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   194
        t1 := t1 + t.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   195
        Transcript showCR:'TIME : ', t printString.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   196
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   197
    Transcript showCR:'----------'.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   198
    Transcript showCR:'DIFF : ', (t1 // tmArr size) printString.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   199
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   200
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   201
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   202
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   203
    example 4: images as label
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   204
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   205
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   206
    |lbl top scr clDc rows slct list idx bool|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   207
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   208
    top  := StandardSystemView new label:'select'; extent:400@440.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   209
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   210
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   211
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   212
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   213
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true    #( 'foo' 'bar' 'baz' ) ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   214
    slct := #( #text   #field   #cbox    #clist    #toggle #choices               ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   215
    idx  := 11.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   216
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   217
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   218
    20 timesRepeat:[ |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   219
        values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   220
            n isString ifTrue:[n, idx printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   221
                      ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   222
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   223
        rows add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   224
        bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   225
        idx  := idx + 1.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   226
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   227
    lbl := Image fromFile:('gifImages/nexthand.gif' ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   228
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   229
    clDc add:( DataSetColumnSpec label:lbl      editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   230
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   231
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   232
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   233
    lbl := Image fromFile:('xpmBitmaps/misc_tools/box_full.xpm' ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   234
    clDc add:( DataSetColumnSpec label:lbl      editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   235
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   236
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   237
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   238
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   239
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   240
    scr has3Dsepartors:true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   241
    scr columnDescriptors:clDc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   242
    scr list:rows.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   243
    top open.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   244
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   245
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   246
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   247
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   248
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   249
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   250
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   251
!DataSetView methodsFor:'accessing'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   252
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   253
columnDescriptors:colDesc
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   254
    "compute height of baseline
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   255
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   256
    |h label|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   257
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   258
    columnView columnDescriptors:colDesc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   259
    h := 0.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   260
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   261
    columnView numberOfColumns ~~ 0 ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   262
        columnView columnsDo:[:aCol|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   263
            (label := aCol label) notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   264
                h := (label heightOn:self) max:h
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   265
            ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   266
        ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   267
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   268
    h := h + 8.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   269
    labelView            corner:( 1.0 @ h ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   270
    columnView superView origin:( 0.0 @ h ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   271
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   272
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   273
useIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   274
    ^ useIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   275
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   276
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   277
useIndex:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   278
    useIndex := aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   279
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   280
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   281
!DataSetView methodsFor:'accessing menus'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   282
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   283
menuHolder:anObject
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   284
    "set the menu holder in the column view too
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   285
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   286
    super menuHolder:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   287
    columnView menuHolder:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   288
    labelView  menuHolder:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   289
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   290
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   291
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   292
menuMessage:aSymbol
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   293
    "set the menu message in the column view too
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   294
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   295
    super menuMessage:aSymbol.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   296
    columnView menuMessage:aSymbol.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   297
    labelView  menuMessage:aSymbol.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   298
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   299
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   300
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   301
menuPerformer:anObject
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   302
    "set the performer in the column view too
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   303
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   304
    super menuPerformer:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   305
    columnView menuPerformer:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   306
    labelView  menuPerformer:anObject.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   307
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   308
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   309
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   310
!DataSetView methodsFor:'accessing visibility'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   311
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   312
font:aFont
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   313
    columnView font:aFont
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   314
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   315
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   316
horizontalMini:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   317
    ^ columnView superView horizontalMini:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   318
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   319
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   320
horizontalScrollable:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   321
    ^ columnView superView horizontalScrollable:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   322
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   323
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   324
isHorizontalScrollable
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   325
    ^ columnView superView isHorizontalScrollable
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   326
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   327
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   328
isVerticalScrollable
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   329
    ^ columnView superView isVerticalScrollable
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   330
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   331
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   332
verticalMini:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   333
    columnView superView verticalMini:aBool.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   334
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   335
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   336
verticalScrollable:aBool
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   337
    columnView superView verticalScrollable:aBool.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   338
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   339
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   340
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   341
viewBackground
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   342
    "get the background color of the rows
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   343
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   344
    ^ columnView backgroundColor.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   345
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   346
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   347
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   348
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   349
viewBackground:aColor
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   350
    "set the background color of the rows
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   351
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   352
    ^ columnView backgroundColor:aColor.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   353
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   354
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   355
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   356
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   357
!DataSetView methodsFor:'adding & removing rows'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   358
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   359
add:aRow
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   360
    "add a row; reimplemented caused by add in base class
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   361
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   362
    ^ columnView add:aRow
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   363
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   364
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   365
!DataSetView methodsFor:'change & update'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   366
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   367
listHolder:aListHolder
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   368
    "set listholder and update list.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   369
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   370
    |list|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   371
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   372
    listHolder notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   373
        listHolder removeDependent:self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   374
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   375
    (listHolder := aListHolder) notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   376
        listHolder addDependent:self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   377
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   378
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   379
    (list := listHolder value) notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   380
        columnView list:(list collect:[:el| el ])
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   381
    ] ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   382
        columnView list:nil.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   383
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   384
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   385
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   386
model:aModel
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   387
    "update model and list holder (derived from model).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   388
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   389
    (model respondsTo:#list) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   390
        (model list == listHolder) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   391
            self listHolder:nil
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   392
        ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   393
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   394
    super model:aModel.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   395
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   396
    aModel notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   397
        (aModel respondsTo:#list) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   398
            self listHolder:model list
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   399
        ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   400
    ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   401
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   402
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   403
update:what with:aPara from:chgObj
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   404
    "one of my models changed
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   405
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   406
    |val|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   407
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   408
    chgObj == columnView ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   409
        chgObj == model ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   410
            (what == #selectionIndex or:[what == #selection]) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   411
                ^ columnView selectRowIndex:(model selectionIndex)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   412
            ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   413
            what == #list ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   414
                ^ self listHolder:model list
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   415
            ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   416
            model == listHolder ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   417
                what == #value ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   418
                    (val := model value) isNumber ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   419
                        columnView selectRowIndex:val
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   420
                    ] ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   421
                        columnView selectRow:val
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   422
                    ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   423
                ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   424
                ^ self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   425
            ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   426
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   427
        "/ listHolder and model could be the same
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   428
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   429
        chgObj == listHolder ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   430
            what == #at ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   431
                columnView at:aPara put:(listHolder at:aPara)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   432
            ] ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   433
                self perform:what with:aPara
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   434
            ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   435
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   436
        ^ self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   437
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   438
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   439
    what == #selection ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   440
        model notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   441
            val := columnView selectedRowIndex.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   442
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   443
            (model respondsTo:#selectionIndex:) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   444
                model selectionIndex:val
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   445
            ] ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   446
                useIndex ifFalse:[val := columnView selectedRow].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   447
                model value:val
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   448
            ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   449
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   450
        ^ self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   451
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   452
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   453
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   454
!DataSetView methodsFor:'change & update model'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   455
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   456
insert:anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   457
    "raised from listHolder: insert row derived from listHolder at anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   458
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   459
    |list|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   460
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   461
    list := listHolder value.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   462
    columnView add:(list at:anIndex) beforeIndex:anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   463
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   464
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   465
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   466
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   467
insertCollection:anArray
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   468
    "raised from listHolder: insert collection of rows derived from listHolder
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   469
     from start (anArray at:1) to stop (anArray at:2).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   470
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   471
    |start size list|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   472
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   473
    list  := listHolder value.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   474
    start := anArray first.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   475
    size  := anArray last.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   476
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   477
    size timesRepeat:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   478
        columnView add:(list at:start) beforeIndex:start.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   479
        start := start + 1
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   480
    ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   481
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   482
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   483
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   484
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   485
remove:anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   486
    "raised from listHolder: remove row at anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   487
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   488
    columnView removeIndex:anIndex
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   489
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   490
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   491
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   492
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   493
removeFrom:anArray
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   494
    "raised from listHolder: remove rows from start (anArray at:1) 
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   495
     to stop (anArray at:2).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   496
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   497
    |start stop|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   498
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   499
    start := anArray first.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   500
    stop  := anArray last.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   501
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   502
    (start == 1 and:[stop == columnView size]) ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   503
        columnView list:nil
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   504
    ] ifFalse:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   505
        (stop - start + 1) timesRepeat:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   506
            columnView removeIndex:start
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   507
        ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   508
    ]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   509
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   510
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   511
replace:anArray
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   512
    "raised from listHolder: replace collection of rows derived from listHolder
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   513
     from start (anArray at:1) to stop (anArray at:2).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   514
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   515
    |start stop list|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   516
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   517
    start := anArray first.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   518
    stop  := anArray last.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   519
    list  := listHolder value.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   520
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   521
    start to:stop do:[:anIndex|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   522
        columnView at:anIndex put:(list at:anIndex)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   523
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   524
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   525
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   526
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   527
!DataSetView methodsFor:'error handling'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   528
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   529
doesNotUnderstand:aMessage
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   530
    ^ aMessage sendTo:columnView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   531
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   532
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   533
!DataSetView methodsFor:'initialize'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   534
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   535
destroy
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   536
    "remove dependencies
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   537
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   538
    listHolder notNil ifTrue:[
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   539
        listHolder removeDependent:self
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   540
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   541
    super destroy
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   543
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   544
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   545
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   546
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   547
initialize
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   548
    "set column area
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   549
    "
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   550
    super initialize.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   551
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   552
    columnView := HVScrollableView for:DSVColumnView 
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   553
                         miniScrollerH:true
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   554
                         miniScrollerV:false
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   555
                                origin:(0.0 @ 0.0)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   556
                                corner:(1.0 @ 1.0)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   557
                                     in:self.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   558
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   559
    labelView := DSVLabelView origin:(0.0 @ 0.0)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   560
                              corner:(1.0 @ 0.0)
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   561
                                  in:self.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   562
    useIndex := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   563
    columnView := columnView scrolledView.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   564
    labelView columnView:columnView.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   565
    columnView borderWidth:0.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   566
    columnView addDependent:self.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   567
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   568
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   569
realize
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   570
    super realize.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   571
    self bitGravity:#NorthWest.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   572
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   573
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   574
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   575
!DataSetView methodsFor:'queries'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   576
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   577
specClass
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   578
    ^ DataSetSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   579
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   580
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   581
!DataSetView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   582
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   583
version
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   584
    ^ '$Header: /cvs/stx/stx/libwidg2/DataSetView.st,v 1.1 1997-10-10 13:38:51 ca Exp $'
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   585
! !