DataSetView.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 5326 cd7b51c4248c
child 5665 45468b027cc5
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
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
"
2090
af478f964ac0 avoid overhead in scrollbar creation.
Claus Gittinger <cg@exept.de>
parents: 1495
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
af478f964ac0 avoid overhead in scrollbar creation.
Claus Gittinger <cg@exept.de>
parents: 1495
diff changeset
    13
5326
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
    14
"{ NameSpace: Smalltalk }"
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
    15
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
    16
ScrollableView subclass:#DataSetView
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
    17
	instanceVariableNames:'labelView rememberedTopOffsetOfScrolledView'
542
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.
4481
6211245b2416 class: DataSetView
Claus Gittinger <cg@exept.de>
parents: 4259
diff changeset
    45
    Instances are wrapping a DSVLabelView and a DSVCompumnView.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    46
    It allows for the dynamic editing of this information.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    47
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
    48
    This is a replacement for the obsolete TableView.
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
    49
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    50
    [author:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    51
        Claus Atzkern
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    52
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    53
    [see also:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    54
        DataSetColumnSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    55
        DataSetColumn
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    56
        DSVColumnView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    57
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    58
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    59
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    60
examples
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    61
"
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
    62
  example 1: list with valid rows of type Array
611
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    63
                                                                                [exBegin]
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    64
    |top scr columns rows bool rdWtSel|
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    65
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    66
    top  := StandardSystemView new label:'Simple Test'; extent:700@440.
611
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    67
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    68
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    69
    columns := OrderedCollection new.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    70
    rows    := OrderedCollection new.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    71
    bool    := true.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    72
    rdWtSel := #( #at: #at:put: ).
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    73
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    74
    1 to:1000 do:[:i||n|
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    75
        n := i printString.
3506
a5df2627ebde refactored;
Claus Gittinger <cg@exept.de>
parents: 2901
diff changeset
    76
        rows add:(Array with:('text: ', n) with:('input: ', n) with:bool with:(i==20)).
611
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    77
        bool := bool not.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    78
    ].
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    79
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    80
    columns add:(DataSetColumnSpec label:'Text'   editorType:#None        selector:rdWtSel).
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    81
    columns add:(DataSetColumnSpec label:'Input'  editorType:#InputField  selector:rdWtSel).
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    82
    columns add:(DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:rdWtSel).
3506
a5df2627ebde refactored;
Claus Gittinger <cg@exept.de>
parents: 2901
diff changeset
    83
    columns add:(DataSetColumnSpec label:'Radio'  editorType:#RadioButton selector:rdWtSel).
611
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    84
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    85
    scr columnDescriptors:columns.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    86
    scr list:rows.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    87
    top open.
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    88
                                                                                [exEnd]
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    89
7fb299f3f542 implement writeSelector
ca
parents: 607
diff changeset
    90
619
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    91
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
    92
  example 2: list with none valid rows; defining #rowIfAbsent: block
619
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    93
                                                                                [exBegin]
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    94
    |top scr columns bool rdWtSel|
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    95
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    96
    top  := StandardSystemView new label:'Row Is Absent'; extent:700@440.
619
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    97
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    98
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
    99
    columns := OrderedCollection new.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   100
    bool    := true.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   101
    rdWtSel := #( #at: #at:put: ).
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   102
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   103
    columns add:(DataSetColumnSpec label:'Text'   editorType:#None        selector:rdWtSel).
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   104
    columns add:(DataSetColumnSpec label:'Input'  editorType:#InputField  selector:rdWtSel).
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   105
    columns add:(DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:rdWtSel).
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   106
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   107
    scr rowIfAbsent:[:i|
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   108
        bool := bool not.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   109
        Array with:('text: ', i printString) with:('input: ') with:bool
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   110
    ].
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   111
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   112
    scr columnDescriptors:columns.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   113
    scr list:(Array new:1000).
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   114
    top open.
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   115
                                                                                [exEnd]
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   116
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   117
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   118
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
   119
  example 3: list with valid rows of type Structure
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   120
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   121
    |top scr clDc rows slct list idx bool|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   122
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   123
    top  := StandardSystemView new label:'Editors'; extent:700@440.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   124
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   125
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   126
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   127
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   128
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true    #( 'foo' 'bar' 'baz' ) ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   129
    slct := #( #text   #field   #cbox    #clist    #toggle #choices               ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   130
    idx  := 11.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   131
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   132
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   133
    20 timesRepeat:[ |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   134
        values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   135
            n isString ifTrue:[n, idx printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   136
                      ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   137
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   138
        rows add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   139
        bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   140
        idx  := idx + 1.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   141
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   142
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   143
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   144
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   145
    clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   146
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   147
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   148
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   149
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   150
607
a5e0c2bf1370 support of multiple select:rows
ca
parents: 570
diff changeset
   151
    scr has3Dseparators:true.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   152
    scr columnDescriptors:clDc.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   153
    scr list:rows.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   154
    top open.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   155
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   156
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   157
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   158
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   159
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
   160
  example 4: table includes a row selector and multiple select is enabled
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   161
                                                                                [exBegin]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   162
    |top scr clDc rows slct list idx bool|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   163
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   164
    top  := StandardSystemView new label:'Multiple Select'; extent:700@440.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   165
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   166
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   167
    clDc := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   168
    rows := OrderedCollection new.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   169
    list := #( 'Text ' 'Field ' 'C-Box ' 'C-List ' true    #( 'foo' 'bar' 'baz' ) ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   170
    slct := #( #text   #field   #cbox    #clist    #toggle #choices               ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   171
    idx  := 11.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   172
    bool := true.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   173
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   174
    20 timesRepeat:[ |values|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   175
        values := list collect:[:n|
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   176
            n isString ifTrue:[n, idx printString]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   177
                      ifFalse:[n == true ifTrue:[bool] ifFalse:[n]]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   178
        ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   179
        rows add:(Structure newWith:slct values:values).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   180
        bool := bool not.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   181
        idx  := idx + 1.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   182
    ].
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   183
    clDc add:( DataSetColumnSpec rowSelector ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   184
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   185
    clDc add:( DataSetColumnSpec label:'Text'   editorType:#None        selector:#text ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   186
    clDc add:( DataSetColumnSpec label:'Field'  editorType:#InputField  selector:#field ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   187
    clDc add:( DataSetColumnSpec label:'C-Box'  editorType:#ComboBox    selector:#cbox ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   188
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   189
    clDc add:( DataSetColumnSpec label:'C-List' editorType:#ComboList   selector:#clist ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   190
    clDc last choices:#choices.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   191
    clDc add:( DataSetColumnSpec label:'Toggle' editorType:#CheckToggle selector:#toggle ).
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   192
607
a5e0c2bf1370 support of multiple select:rows
ca
parents: 570
diff changeset
   193
    scr has3Dseparators:true.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   194
    scr columnDescriptors:clDc.
619
4a919c3f5f04 add examples
ca
parents: 611
diff changeset
   195
    scr multipleSelectOk:true.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   196
    scr list:rows.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   197
    top open.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   198
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   199
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   200
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
   201
  example 5: Images and Layout
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   202
                                                                                [exBegin]
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   203
    |top scr columns rows colDesc image text|
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   204
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   205
    text := 'Text'.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   206
    rows := Array new:1000.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   207
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   208
    1 to:(rows size) do:[:i|
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   209
        rows at:i put:(Array with:('Id: ', i printString) with:text with:text)
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   210
    ].
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   211
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   212
    columns := OrderedCollection new.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   213
    image   := Image fromFile:('xpmBitmaps/misc_tools/box_full.xpm' ).
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   214
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   215
    colDesc := DataSetColumnSpec label:(LabelAndIcon icon:image string:'Left') selector:#at:.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   216
    colDesc labelAlignment:#left.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   217
    colDesc columnAlignment:#left.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   218
    columns add:colDesc.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   219
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   220
    colDesc := DataSetColumnSpec label:(LabelAndIcon icon:image string:'Right') selector:#at:.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   221
    colDesc labelAlignment:#right.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   222
    colDesc columnAlignment:#right.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   223
    columns add:colDesc.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   224
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   225
    colDesc := DataSetColumnSpec label:(LabelAndIcon icon:image string:'Center') selector:#at:.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   226
    colDesc labelAlignment:#center.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   227
    colDesc columnAlignment:#center.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   228
    columns add:colDesc.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   229
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   230
    columns do:[:el|el labelActionSelector:#dummy].
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   231
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   232
    top := StandardSystemView new label:'Layout'; extent:500@500.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   233
    scr := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   234
    scr has3Dseparators:true.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   235
    scr columnDescriptors:columns.
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   236
    scr list:rows.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   237
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   238
    top open
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   239
                                                                                [exEnd]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   240
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   241
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   242
2901
060a02611d9e comment
Claus Gittinger <cg@exept.de>
parents: 2829
diff changeset
   243
  example 6: adding and removing
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   244
                                                                                [exBegin]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   245
    |top scr list|
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   246
1495
edd56c071260 update examples
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   247
    top  := StandardSystemView new label:'Adding & Removing'; extent:600@440.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   248
    scr  := DataSetView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:top.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   249
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   250
    scr columnDescriptors:( Array with:(DataSetColumnSpec label:'FOO' selector:#at:)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   251
                                  with:(DataSetColumnSpec label:'BAR' selector:#at:)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   252
                                  with:(DataSetColumnSpec label:'BAZ' selector:#at:)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   253
                          ).
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   254
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   255
    scr has3Dseparators:true.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   256
    scr listHolder:(list := List new).
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   257
    top openAndWait.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   258
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   259
    1 to:32 do:[:i| |pid|
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   260
        pid := i printString.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   261
        list add:(Array with:('foo: ', pid) with:('bar: ', pid) with:('baz: ', pid)).
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   262
        i even ifTrue:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   263
            list removeFirst
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   264
        ].       
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   265
        Delay waitForSeconds:0.1.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   266
    ].
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   267
                                                                                [exEnd]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   268
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   269
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   270
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   271
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   272
2829
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   273
!DataSetView methodsFor:'accessing'!
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   274
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   275
columnView
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   276
    ^ scrolledView
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   277
!
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   278
4259
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   279
ignoreReselect: aBoolean
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   280
    "Defined here to make it polymorph with SelectionInListView"
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   281
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   282
    "Created: / 28-06-2013 / 11:22:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   283
!
9eb1c2e046d5 class: DataSetView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4177
diff changeset
   284
2829
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   285
labelView
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   286
    ^ labelView
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   287
! !
d2a9adc19c59 subview access
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
   288
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   289
!DataSetView methodsFor:'change & update'!
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   290
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   291
update:something with:aParameter from:changedObject
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   292
    changedObject == labelView ifTrue:[
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   293
        ((something == #columnLayout) 
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   294
        or:[something == #visibility]) ifTrue:[
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   295
            self recomputeLayouts.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   296
            ^ self
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   297
        ].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   298
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   299
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   300
    super update:something with:aParameter from:changedObject
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   301
! !
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   302
2500
1477b0a5a918 method category rename
Claus Gittinger <cg@exept.de>
parents: 2153
diff changeset
   303
!DataSetView methodsFor:'initialization & release'!
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   304
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   305
initialize
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   306
    "set column area
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   307
    "
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   308
    |columnView|
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   309
2090
af478f964ac0 avoid overhead in scrollbar creation.
Claus Gittinger <cg@exept.de>
parents: 1495
diff changeset
   310
    "/ preset flags to avoid creation and later destruction of scrollBars ...
af478f964ac0 avoid overhead in scrollbar creation.
Claus Gittinger <cg@exept.de>
parents: 1495
diff changeset
   311
    self setVertical:true mini:false horizontal:true mini:true.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   312
    super initialize.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   313
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1483
diff changeset
   314
    self setupVertical:true mini:false horizontal:true mini:true.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   315
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   316
    labelView := DSVLabelView in:self.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   317
    columnView := DSVColumnView new.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   318
    columnView labelView:labelView.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   319
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   320
    "/ columnView addDependent:self.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   321
    labelView addDependent:self.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   322
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   323
    self scrolledView:columnView.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   324
! !
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   325
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   326
!DataSetView methodsFor:'layout computation'!
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   327
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   328
recomputeLayouts
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   329
    |columnView columnViewLayout newOffset|
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   330
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   331
    columnView := self scrolledView.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   332
    columnView isNil ifTrue:[^ self].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   333
    (columnViewLayout := columnView layout) isNil ifTrue:[^ self].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   334
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   335
    labelView isVisible ifFalse:[
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   336
        newOffset := scrolledViewLayout topOffset.
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   337
    ] ifTrue:[
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   338
        newOffset := scrolledViewLayout topOffset + (columnView preferredLabelViewHeight).
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   339
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   340
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   341
    newOffset ~~ columnViewLayout topOffset ifTrue:[
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   342
        columnViewLayout topOffset:newOffset.
2721
5d00500ffc3e do not ignore sizechange while being invisible
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
   343
"/        columnView realized ifTrue:[
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   344
            columnView containerChangedSize.
2721
5d00500ffc3e do not ignore sizechange while being invisible
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
   345
"/        ]
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   346
    ].
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   347
    labelView containerChangedSize.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   348
!
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   349
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   350
scrolledViewLayout:aLayout
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   351
    "invoked by superclasses setLayout method, whenever the scrolled views
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   352
     layout changes (due to added/removed scrollbars)."
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   353
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   354
    |modifiedLayout originalTopOffset labelViewLayout newLeft newRight|
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   355
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   356
    "/ always copy - since layout it destructively modified in #recomputeLayouts
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   357
    modifiedLayout := aLayout copy.    
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   358
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   359
    originalTopOffset := scrolledViewLayout topOffset.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   360
    labelView isVisible ifTrue:[
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   361
        modifiedLayout topOffset:(originalTopOffset + labelView height).
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   362
    ].
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   363
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   364
    newLeft := aLayout leftOffset.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   365
    newRight := aLayout rightOffset.
2151
50f8723054e7 selected row is highlighted over the full width;
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
   366
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   367
    (scrolledView level == 0
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   368
    and:[self level < 0 
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   369
    and:[labelView level == 0]]) ifTrue:[
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   370
        newRight := (newRight + 1) min:0.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   371
        modifiedLayout rightOffset:newRight.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   372
    ].
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   373
2153
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   374
    labelViewLayout := labelView layout.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   375
    labelViewLayout topOffset:originalTopOffset.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   376
    labelViewLayout 
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   377
        leftOffset:newLeft 
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   378
        rightOffset:newRight.
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   379
0e2bc053f48a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   380
    labelView isVisible ifTrue:[
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   381
        labelView containerChangedSize.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   382
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2090
diff changeset
   383
    super scrolledViewLayout:modifiedLayout
5326
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   384
!
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   385
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   386
verticalScrollBarLayout:aLayout
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   387
    "redefined to care for the label view, 
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   388
     which is at the top and NOT scrolled.
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   389
     It covers the top areay of myself, so we have to make the vertical
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   390
     scrollbar a little smaller."
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   391
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   392
    labelView notNil ifTrue:[
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   393
        aLayout topOffset:(aLayout topOffset + labelView height).
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   394
    ].    
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   395
    super verticalScrollBarLayout:aLayout
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   396
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   397
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   398
!DataSetView methodsFor:'queries'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   399
4177
bc837fdacd46 class: DataSetView
Stefan Vogel <sv@exept.de>
parents: 3703
diff changeset
   400
canTab
bc837fdacd46 class: DataSetView
Stefan Vogel <sv@exept.de>
parents: 3703
diff changeset
   401
    ^ labelView notNil and:[labelView enabled]
bc837fdacd46 class: DataSetView
Stefan Vogel <sv@exept.de>
parents: 3703
diff changeset
   402
!
bc837fdacd46 class: DataSetView
Stefan Vogel <sv@exept.de>
parents: 3703
diff changeset
   403
3677
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   404
preferredExtent
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   405
    "return my preferredExtent from the scrolledViews prefExtent
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   406
     plus the size of the scrollBar"
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   407
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   408
    |preferred|
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   409
3703
818df7b84e65 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3677
diff changeset
   410
    "/ If I have an explicit preferredExtent..
3677
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   411
    explicitExtent notNil ifTrue:[
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   412
        ^ explicitExtent
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   413
    ].
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   414
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   415
    "/ If I have a cached preferredExtent value..
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   416
    preferredExtent notNil ifTrue:[
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   417
        ^ preferredExtent
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   418
    ].
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   419
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   420
    preferred := super preferredExtent.
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   421
    ^ (preferred x) @ (preferred y + labelView preferredHeight).
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   422
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   423
    "Created: 6.3.1997 / 18:06:24 / cg"
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   424
    "Modified: 6.3.1997 / 22:34:09 / cg"
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   425
!
bffaafb77e62 #preferredExtent - consider label view
Stefan Vogel <sv@exept.de>
parents: 3506
diff changeset
   426
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   427
specClass
637
e56ec99923ae VW compatible
ca
parents: 619
diff changeset
   428
    "returns my spec class
e56ec99923ae VW compatible
ca
parents: 619
diff changeset
   429
    "
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   430
    ^ DataSetSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   431
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   432
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   433
!DataSetView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   434
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   435
version
5326
cd7b51c4248c #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4481
diff changeset
   436
    ^ '$Header$'
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   437
! !
4177
bc837fdacd46 class: DataSetView
Stefan Vogel <sv@exept.de>
parents: 3703
diff changeset
   438