DSVLabelView.st
author Claus Gittinger <cg@exept.de>
Fri, 15 Jun 2018 10:54:35 +0200
changeset 5816 7876c07931a7
parent 5674 b0c29ac08517
child 5943 5bd4c8c6ec5f
permissions -rw-r--r--
#DOCUMENTATION by cg class: ComboListView class comment/format in: #documentation
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
"
1844
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    13
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
    14
"{ NameSpace: Smalltalk }"
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
    15
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    16
SimpleView subclass:#DSVLabelView
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    17
	instanceVariableNames:'dataSet lineDrag columns selection enabled preferredHeight
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    18
		handleCursor tabSpacing opaqueColumnResize verticalLabelSpacing
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    19
		indexOfSortColumn reverseSort'
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    20
	classVariableNames:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    21
	poolDictionaries:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    22
	category:'Views-DataSet'
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    23
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    24
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
    25
Object subclass:#LineDrag
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    26
	instanceVariableNames:'topX topY botY column minX startX transX topView color'
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    27
	classVariableNames:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    28
	poolDictionaries:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    29
	privateIn:DSVLabelView
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    30
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    31
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    32
!DSVLabelView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    33
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    34
copyright
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    35
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    36
 COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    37
              All Rights Reserved
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    38
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    39
 This software is furnished under a license and may be used
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    40
 only in accordance with the terms of that license and with the
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    42
 be provided or otherwise made available to, or used by, any
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    43
 other person.  No title to or ownership of the software is
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    44
 hereby transferred.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    45
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    46
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    47
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    48
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    49
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    50
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    51
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    52
documentation
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    53
"
2789
e7c8596999e7 comment
Claus Gittinger <cg@exept.de>
parents: 2685
diff changeset
    54
    shows the labels assigned to the column descriptions. 
e7c8596999e7 comment
Claus Gittinger <cg@exept.de>
parents: 2685
diff changeset
    55
    Used as the title-part of a DataSetView.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    56
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    57
    [Instance variables:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    58
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    59
        dataSet         <DSVColumnView>         column view which shows the columns
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    60
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    61
        selection       <Integer or nil>        current selected index or nil.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    62
1086
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    63
        enabled         <Boolean>               if a press action exists on a column
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    64
                                                entry, this action could be enabled or
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    65
                                                disabled.
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    66
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    67
        preferredHeight <Integer>               the preferred height of the labelView
1086
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    68
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    69
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    70
    [author:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    71
        Claus Atzkern
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    72
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    73
    [see also:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    74
        DSVColumnView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    75
        DataSetColumnSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    76
        DataSetColumn
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    77
        DataSetView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    78
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    79
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    80
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    81
!DSVLabelView class methodsFor:'accessing'!
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    82
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    83
tabSpacing
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    84
    "returns the tab spacing
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    85
    "
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    86
    ^ 2
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    87
! !
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    88
1844
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    89
!DSVLabelView class methodsFor:'defaults'!
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    90
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    91
defaultFont
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    92
    ^ DSVColumnView defaultFont
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    93
! !
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    94
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    95
!DSVLabelView methodsFor:'accessing'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    96
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    97
columns:aListOfColumns
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
    98
    "the list of columns changed"
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
    99
2152
6c52408279f9 halts and unused methods removed
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   100
    aListOfColumns = columns ifTrue:[^ self].
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   101
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   102
    columns         := aListOfColumns.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   103
    preferredHeight := nil.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   104
    selection       := nil.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   105
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   106
    self changed:#columnLayout.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   107
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   108
3583
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   109
dataSet
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   110
    ^ dataSet
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   111
!
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   112
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   113
indexOfSortColumn
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   114
    ^ indexOfSortColumn
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   115
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   116
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   117
opaqueColumnResize
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   118
    ^ opaqueColumnResize
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   119
!
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   120
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   121
opaqueColumnResize:aBoolean
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   122
    opaqueColumnResize := aBoolean
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   123
!
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   124
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   125
reverseSort
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   126
    ^ reverseSort
884
4b2f2ddef43c bug fix:
ca
parents: 859
diff changeset
   127
! !
4b2f2ddef43c bug fix:
ca
parents: 859
diff changeset
   128
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   129
!DSVLabelView methodsFor:'drawing'!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   130
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   131
invalidate
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   132
    (shown) ifTrue:[
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   133
        super invalidate
1408
1cda0a4fb566 use invalidate... insteat of redraw...
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   134
    ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   135
!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   136
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   137
invalidateItemAt:anIndex
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   138
    "invalidate rectangle assigned to an item at an index
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   139
    "
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   140
    |cL xL xR hg|
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   141
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   142
    (shown) ifTrue:[
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   143
        cL := columns at:anIndex ifAbsent:[^ nil].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   144
        xL := self xVisibleOfColNr:anIndex.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   145
        xR := xL + cL width.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   146
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   147
        (xL < width and:[xR > 0]) ifTrue:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   148
            xL := xL max:0.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   149
            xR := xR min:width.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   150
            hg := height - margin - margin.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   151
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   152
            self invalidate:(Rectangle left:xL top:margin width:(xR - xL) height:hg)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   153
        ]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   154
    ]
1408
1cda0a4fb566 use invalidate... insteat of redraw...
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   155
!
562
b7db6629f2cf recompute height from column labels
ca
parents: 560
diff changeset
   156
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   157
redrawColumnsInX:x y:y width:w height:h
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   158
    "redraw a rectangle"
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   159
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   160
    |bg fg fgColor bgColor
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   161
     inset  "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   162
     maxX   "{ Class:SmallInteger }"
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   163
     lblH  "{ Class:SmallInteger }"
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   164
     wt     "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   165
     x1     "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   166
     x0     "{ Class:SmallInteger }"
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   167
     item|
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   168
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   169
    (shown) ifFalse:[^ self].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   170
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   171
    bgColor := dataSet labelBackgroundColor.
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   172
    gc paint:bgColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   173
    gc fillRectangleX:x y:y width:w height:h.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   174
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   175
    columns isEmpty ifTrue:[^ self].
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   176
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   177
    fgColor := dataSet labelForegroundColor.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   178
    inset   := dataSet horizontalSpacing + 1.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   179
    maxX    := (x + w) min:(width - margin).
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   180
    lblH    := height - margin - margin.
859
e63eb6f321e1 support List for columns
ca
parents: 824
diff changeset
   181
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   182
    x1 := self xVisibleOfColNr:1.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   183
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   184
    columns keysAndValuesDo:[:eachKey :eachCol| 
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   185
        item := eachCol label.
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   186
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   187
        wt := eachCol width.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   188
        x0 := x1.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   189
        x1 := x1 + wt.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   190
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   191
        (x1 > x and:[x0 < maxX]) ifTrue:[
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   192
            |left right rect|
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   193
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   194
            left  := x0 max:x.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   195
            right := x1 min:maxX.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   196
            rect  := Rectangle left:left top:y width:(right - left) height:h.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   197
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   198
"/            clipRect := nil.
5410
56776faa77eb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
   199
            self clippingBounds:rect.
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   200
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   201
            fg := (item foregroundColor) ? fgColor.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   202
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   203
            (bg := item backgroundColor) notNil ifTrue:[
907
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   204
                bg ~= bgColor ifTrue:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   205
                    gc paint:bg.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   206
                    gc fillRectangleX:x0 y:margin width:wt height:lblH.
907
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   207
                ]
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   208
            ] ifFalse:[
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   209
                bg := bgColor
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   210
            ].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   211
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   212
            gc paint:fg on:bg.            
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   213
            item redrawX:x0 w:wt h:height inset:inset on:self.
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   214
        ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   215
    ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   216
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   217
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   218
redrawEdgesX:x y:yTop width:aWidth height:aHeight
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   219
    "redraw the edges in the range
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   220
    "
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   221
    |desc startOfTabX endOfTabX lastColumn has3Dseparators separatorOneDColor
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   222
     maxX "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   223
     h    "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   224
     x1   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   225
     x0   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   226
     y0   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   227
     absLabelLevel
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   228
    |
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   229
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   230
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   231
    maxX := (x + aWidth) min:(width - margin).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   232
    absLabelLevel := 1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   233
    x1   := self xVisibleOfColNr:1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   234
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   235
    y0 := margin.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   236
    h  := height - margin - margin.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   237
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   238
    has3Dseparators    := dataSet has3Dseparators.
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   239
    separatorOneDColor := dataSet separatorOneDColor.
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   240
    lastColumn         := columns last.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   241
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   242
    columns keysAndValuesDo:[:aKey :aCol|
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   243
        desc := aCol description.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   244
        x0   := x1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   245
        x1   := x1 + aCol width.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   246
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   247
        endOfTabX := nil.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   248
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   249
        aKey == selection ifTrue:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   250
            startOfTabX notNil ifTrue:[ endOfTabX := x0 ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   251
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   252
            (x1 > x and:[x0 < maxX]) ifTrue:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   253
                dataSet drawEdgesAtX:x0 y:y0 width:(x1 - x0) height:h level:-1 on:self.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   254
            ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   255
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   256
        ] ifFalse:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   257
            desc labelHasButtonLayout ifTrue:[
3466
e35f9173be58 changed #redrawEdgesX:y:width:height:
ca
parents: 3465
diff changeset
   258
                startOfTabX isNil ifTrue:[ startOfTabX := x0 ].
e35f9173be58 changed #redrawEdgesX:y:width:height:
ca
parents: 3465
diff changeset
   259
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   260
                (desc== lastColumn or:[desc labelIsPartOfGroup not]) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   261
                    endOfTabX := x1.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   262
                ]
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   263
            ] ifFalse:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   264
                startOfTabX notNil ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   265
                    endOfTabX := x0.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   266
                ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   267
            ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   268
        ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   269
        endOfTabX notNil ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   270
            startOfTabX isNil ifTrue:[ startOfTabX := x0 ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   271
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   272
            startOfTabX < endOfTabX ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   273
                (endOfTabX > x and:[startOfTabX < maxX]) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   274
                    has3Dseparators ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   275
                        dataSet drawEdgesAtX:startOfTabX y:y0 width:(endOfTabX - startOfTabX) height:h level:absLabelLevel on:self.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   276
                    ] ifFalse:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   277
                        gc paint:separatorOneDColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   278
                        gc displayLineFromX:endOfTabX-1 y:0 toX:endOfTabX-1 y:h.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   279
                    ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   280
                ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   281
            ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   282
            startOfTabX := nil.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   283
        ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   284
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   285
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   286
    has3Dseparators ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   287
        x1 < (maxX - absLabelLevel - absLabelLevel - 3) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   288
            dataSet
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   289
                drawEdgesAtX:x1 y:y0
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   290
                width:(width"-margin"-x1"-absLabelLevel") height:h
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   291
                level:absLabelLevel on:self
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   292
        ].
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   293
    ] ifFalse:[
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   294
        h := h - 1.
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   295
        gc paint:separatorOneDColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   296
        gc displayLineFromX:x y:h toX:(x + aWidth) y:h.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   297
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   298
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   299
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   300
redrawX:xArg y:y width:wArg height:h
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   301
    |savClip x w |
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   302
3694
8a9158be10d7 dont do a super redraw - it clears what has just been drawn
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
   303
    shown ifFalse:[^ self].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   304
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   305
    x := xArg.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   306
    w := wArg.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   307
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   308
    self redrawColumnsInX:x y:y width:w height:h.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   309
    columns size == 0 ifTrue:[ ^ self ].
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   310
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   311
    savClip := gc clippingBoundsOrNil.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   312
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   313
    dataSet has3Dseparators ifTrue:[ | eoXlastCol |
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   314
        eoXlastCol := self xVisibleOfColNr:( columns size + 1).
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   315
        x >= eoXlastCol ifTrue:[
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   316
            w := w +( x - eoXlastCol ).
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   317
            x := eoXlastCol.
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   318
        ].
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   319
    ].
5189
ff07b0369121 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5078
diff changeset
   320
    self clippingBounds:(Rectangle left:x top:margin width:w height:height-margin-margin).
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   321
        
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   322
    xArg > x ifTrue:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   323
        gc paint:(dataSet backgroundColor).
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   324
        gc fillRectangleX:x y:y width:w height:h.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   325
    ].    
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   326
    self redrawEdgesX:x y:y width:w height:h.
5189
ff07b0369121 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5078
diff changeset
   327
    self clippingBounds:savClip.
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   328
! !
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   329
2820
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   330
!DSVLabelView methodsFor:'enumerating columns'!
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   331
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   332
columnsDo:aOneArgBlock 
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   333
    "evaluate the argument, aOneArgBlock for every column"
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   334
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   335
    columns do:aOneArgBlock
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   336
! !
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   337
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   338
!DSVLabelView methodsFor:'event handling'!
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   339
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   340
buttonMotion:state x:x y:y
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   341
    "mouse-button was moved;
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   342
     redraw thumb at its new position and, if scroll-mode is asynchronous, 
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   343
     the scroll action is performed
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   344
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   345
    |colNr x1 col|
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   346
1958
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   347
    state = 0 ifTrue:[
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   348
        lineDrag := nil.
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   349
    ].
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   350
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   351
    lineDrag notNil ifTrue:[
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   352
        (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifTrue:[
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   353
            lineDrag moveToX:x.      
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   354
            dataSet changeWidthOfColumn:lineDrag column deltaX:lineDrag deltaX.
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   355
            lineDrag resetDeltaX.    
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   356
        ] ifFalse:[
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   357
            lineDrag invertLinesMovingToX:x.
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   358
        ].
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   359
        ^ self.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   360
    ].
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   361
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   362
    "/ in the resize area ?
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   363
    colNr := self xVisibleToColNr:(x-tabSpacing).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   364
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   365
        col := columns at:colNr.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   366
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   367
        (col notNil and:[col isResizeable]) ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   368
            x1 := self xVisibleOfColNr:(colNr + 1).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   369
            (x between:(x1-tabSpacing) and:(x1+tabSpacing))
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   370
            "/ x + tabSpacing > x1 
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   371
            ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   372
                self cursor:handleCursor.
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   373
                ^ self
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   374
            ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   375
        ].
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   376
    ].
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   377
    self cursor:(Cursor normal)
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   378
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   379
    "Modified: / 26-03-2007 / 15:20:27 / cg"
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   380
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   381
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   382
buttonPress:button x:x y:y
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   383
    "handle a button press event; checks whether the item under the mouse
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   384
     is selectable. If true, the selection is set to the item.
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   385
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   386
    |x1 colNr col|
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   387
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   388
    (enabled and:[shown]) ifFalse:[
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   389
        ^ self
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   390
    ].
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   391
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   392
    "/ in the resize area ?
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   393
    colNr := self xVisibleToColNr:(x-tabSpacing).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   394
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   395
        col := columns at:colNr.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   396
        col isResizeable ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   397
            x1 := self xVisibleOfColNr:(colNr + 1).
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   398
            (x between:(x1-tabSpacing) and:(x1+tabSpacing)) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   399
                col := columns at:colNr ifAbsent:nil.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   400
                self cursor:handleCursor.
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   401
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   402
                lineDrag := LineDrag new.
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   403
                lineDrag column:col
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   404
                              x:x
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   405
                              y:margin
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   406
                              h:(self height + dataSet height)
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   407
                           minX:(x1 - col width + col minimumRequiredWidth)
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   408
                             on:self.
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   409
                (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifFalse:[
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   410
                    lineDrag invertLine.
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   411
                ].
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   412
                ^ self
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   413
            ]
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   414
        ]
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   415
    ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   416
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   417
    colNr := self xVisibleToColNr:x.
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   418
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   419
        col := columns at:colNr.
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   420
        col label isSelectable ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   421
            self invalidateItemAt:(selection := colNr)
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   422
        ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   423
    ].
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   424
    self cursor:(Cursor normal).
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   425
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   426
    "Modified: / 26-03-2007 / 15:21:00 / cg"
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   427
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   428
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   429
buttonRelease:button x:x y:y
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   430
    "handle a button press event; checks whether the item under the mouse
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   431
     is the selected item. If true, the application is informed.
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   432
    "
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   433
    |selected column deltaX colNr|
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   434
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   435
    self cursor:(Cursor normal).
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   436
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   437
    selection isNil ifTrue:[
1933
be953fb15d3d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1932
diff changeset
   438
        lineDrag notNil ifTrue:[
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   439
            (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifFalse:[
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   440
                lineDrag invertLine.
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   441
                column   := lineDrag column.
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   442
                deltaX   := lineDrag deltaX.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   443
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   444
                deltaX abs > 0 "2" ifTrue:[
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   445
                    dataSet changeWidthOfColumn:column deltaX:deltaX
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   446
                ]
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   447
            ].
1933
be953fb15d3d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1932
diff changeset
   448
            lineDrag := nil.
4428
dc1eea56fb2f class: DSVLabelView
Claus Gittinger <cg@exept.de>
parents: 4162
diff changeset
   449
            ^ self.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   450
        ].
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   451
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   452
        ((colNr := dataSet xVisibleToColNr:x) notNil
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   453
        and:[ (column := columns at:colNr) notNil
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   454
        and:[ column label isSortable ]]) ifTrue:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   455
            indexOfSortColumn == colNr ifTrue:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   456
                reverseSort := (reverseSort ? false) not
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   457
            ] ifFalse:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   458
                reverseSort := false.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   459
                indexOfSortColumn := colNr.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   460
            ].
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   461
            self invalidateItemAt:colNr.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   462
            dataSet updateList.
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   463
        ].
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   464
        ^ self.
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   465
    ].
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   466
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   467
    colNr := self xVisibleToSelectionIndex:x.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   468
    selected  := (colNr == selection).
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   469
    colNr     := selection.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   470
    selection := nil.
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   471
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   472
    self invalidateItemAt:colNr.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   473
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   474
    selected ifTrue:[
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   475
        self sendClickMsgForColumnNr:colNr
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   476
    ]
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   477
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   478
5562
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   479
fontChanged
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   480
    "invoked after the font has changed"
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   481
    preferredHeight := nil.
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   482
    columns do:[:each| each label fontChangedOn:self].
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   483
!
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   484
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   485
mouseWheelZoom:amount
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   486
    ^ dataSet mouseWheelZoom:amount
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   487
!
5a25c39f1864 #BUGFIX by ca
ca
parents: 5446
diff changeset
   488
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   489
pointerLeave:state
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   490
    "mouse left view - restore cursor.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   491
    "
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   492
    self sensor anyButtonPressed ifFalse:[
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   493
        self cursor:(Cursor normal)
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   494
    ].
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   495
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   496
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   497
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   498
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   499
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   500
sendClickMsgForColumnNr:colNr
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   501
    "inform the receiver of a button release notification"
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   502
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   503
    |receiver col description labelActionSelector|
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   504
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   505
    receiver := self application.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   506
    receiver isNil ifTrue:[^ self].
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   507
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   508
    col := columns at:colNr.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   509
    description := col description.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   510
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   511
    (labelActionSelector := description labelActionSelector) notNil ifTrue:[
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   512
        receiver perform:labelActionSelector withOptionalArgument:(description labelActionArgument) and:colNr
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   513
    ].
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   514
!
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   515
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   516
xVisibleToColNr:x
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   517
    "returns the column number for a physical x position.
5078
1712c18ead27 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4990
diff changeset
   518
     Returns nil if x is beyond the last column."
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   519
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   520
    |x0 x1|
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   521
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   522
    x1 := self xVisibleOfColNr:1.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   523
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   524
    columns keysAndValuesDo:[:index :aCol|
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   525
        x0 := x1.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   526
        x1 := x0 + aCol width.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   527
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   528
        (x1 > x and:[x0 < x]) ifTrue:[
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   529
            ^ index
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   530
        ]
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   531
    ].
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   532
    ^ nil
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   533
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   534
    "Modified: / 26-03-2007 / 15:21:37 / cg"
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   535
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   536
3188
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   537
!DSVLabelView methodsFor:'focus handling'!
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   538
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   539
canTab
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   540
    ^ false
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   541
!
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   542
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   543
wantsFocusWithButtonPress
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   544
    "never wants the focus - view which keeps the labels
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   545
    "
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   546
    ^ false
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   547
! !
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   548
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   549
!DSVLabelView methodsFor:'help'!
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   550
5674
b0c29ac08517 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   551
helpTextAt:aPoint
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   552
    "return the helpText for aPoint (i.e. when mouse-pointer is moved over an item)."
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   553
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   554
    |colNr col|
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   555
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   556
    columns isEmpty ifTrue:[^ nil].
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   557
    colNr := self xVisibleToColNr:aPoint x.
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   558
    colNr notNil ifTrue:[
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   559
        col := columns at:colNr.
3523
26c2bafdd0fb separate activeHelp for labels
Claus Gittinger <cg@exept.de>
parents: 3489
diff changeset
   560
        ^ col activeHelpTextForLabel.
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   561
    ].
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   562
    ^ nil
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   563
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   564
    "Created: / 26-03-2007 / 13:43:20 / cg"
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   565
    "Modified: / 26-03-2007 / 15:21:07 / cg"
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   566
! !
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   567
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   568
!DSVLabelView methodsFor:'initialization'!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   569
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   570
initStyle
2924
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   571
    <resource: #style (#'dataSet.labelView.level'
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   572
                       #'dataSet.labelView.verticalSpace' 
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   573
                       )>
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   574
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   575
    super initStyle.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   576
4990
bf3fb53d4dc0 device access
Claus Gittinger <cg@exept.de>
parents: 4876
diff changeset
   577
    handleCursor := (VariablePanel cursorForOrientation:#horizontal onDevice: device) onDevice: device.
5238
cebbdb8032de #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5189
diff changeset
   578
    gc font:self class defaultFont.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   579
    "/ self level:0.
2924
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   580
    self level:(styleSheet at:#'dataSet.labelView.level' default:-1).
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   581
    verticalLabelSpacing := (styleSheet at:#'dataSet.labelView.verticalSpace' default:2).
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   582
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   583
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   584
initialize
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   585
    super initialize.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   586
    "/ super level:(self defaultLevel).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   587
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   588
    enabled    := true.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   589
    columns    := #().
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   590
    tabSpacing := self class tabSpacing.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   591
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   592
    self enableMotionEvents.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   593
! !
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   594
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   595
!DSVLabelView methodsFor:'instance creation'!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   596
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   597
for:aColumnView
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   598
    "initialization
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   599
    "
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   600
    dataSet   := aColumnView.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   601
"/    self level:(dataSet level).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   602
"/    self borderWidth:(dataSet borderWidth).
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   603
!
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   604
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   605
realize
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   606
    "recompute contents and fit columns to view
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   607
    "
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   608
    self  bitGravity:#NorthWest.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   609
    super realize.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   610
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   611
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   612
!DSVLabelView methodsFor:'queries'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   613
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   614
columnIndexOfDescription:aColumnDescription
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   615
    ^ columns findFirst:[:col | col description == aColumnDescription]
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   616
!
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   617
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   618
enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   619
    "true, if widget is enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   620
    "
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   621
    ^ enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   622
!
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   623
5446
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   624
enabled:aBoolean
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   625
    "true, if widget is enabled"
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   626
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   627
    enabled := aBoolean.
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   628
6371c5e1a429 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
   629
    "Modified (comment): / 04-02-2017 / 21:31:52 / cg"
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   630
!
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   631
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   632
indexOfLabel:aLabel
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   633
    ^ columns findFirst:[:col | col label == aLabel].
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   634
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   635
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   636
preferredExtent
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   637
3572
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   638
    "/ If I have an explicit preferredExtent..
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   639
    explicitExtent notNil ifTrue:[
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   640
        ^ explicitExtent
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   641
    ].
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   642
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   643
    "/ If I have a cached preferredExtent value..
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   644
    preferredExtent notNil ifTrue:[
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   645
        ^ preferredExtent
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   646
    ].
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   647
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   648
    ^ 100 @ self preferredHeight
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   649
!
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   650
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   651
preferredHeight
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   652
    |maxLabelHeight|
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   653
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   654
    preferredHeight notNil ifTrue:[
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   655
        ^ preferredHeight
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   656
    ].
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   657
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   658
    maxLabelHeight :=
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   659
        columns inject:0 into:[:maxSoFar :col | (col label preferredHeight) max:maxSoFar ].
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   660
4621
6b74f4a3bd60 class: DSVLabelView
Claus Gittinger <cg@exept.de>
parents: 4522
diff changeset
   661
    ^ ((self margin + verticalLabelSpacing) * 2) + maxLabelHeight 
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   662
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   663
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   664
xVisibleOfColNr:colNr
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   665
    "/ must adjust, because dataset includes its own margin, which might be different from ours
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   666
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   667
    ^ (dataSet xVisibleOfColNr:colNr) - dataSet margin + margin
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   668
!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   669
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   670
xVisibleToSelectionIndex:x
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   671
    "returns the column number assigned to a physical x or nil. If
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   672
     the column exists but is not selectable nil is returned.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   673
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   674
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   675
    |colNr column|
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   676
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   677
    (shown and:[enabled]) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   678
        ((colNr  := dataSet xVisibleToColNr:x)  notNil
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   679
         and:[(column := columns at:colNr) notNil
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   680
         and:[column label isSelectable]]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   681
        ) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   682
            ^ colNr
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   683
        ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   684
    ].
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   685
    ^ nil
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   686
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   687
    "Modified: / 26-03-2007 / 15:21:27 / cg"
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   688
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   689
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   690
!DSVLabelView methodsFor:'scrolling'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   691
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   692
copyFromX:x0 y:y0 toX:x1 y:y1 width:w invalidateX:leftX
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   693
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   694
    (shown) ifFalse:[^ self].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   695
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   696
    (self sensor hasDamageFor:self) ifTrue:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   697
        self invalidate
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   698
    ] ifFalse:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   699
        self   copyFrom:self x:x0 y:y0 toX:x1 y:y1 width:w height:height async:false.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   700
        self invalidate:(Rectangle left:leftX top:0 width:(width - w) height:height)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   701
              repairNow:true
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   702
    ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   703
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   704
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   705
!DSVLabelView::LineDrag methodsFor:'accessing'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   706
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   707
column
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   708
    "return the value of the instance variable 'column' (automatically generated)"
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   709
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   710
    ^ column
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   711
!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   712
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   713
deltaX
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   714
    "returns the distance x between the start and end action
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   715
    "
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   716
    ^ topX - startX
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   717
!
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   718
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   719
resetDeltaX
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   720
    startX := topX
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   721
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   722
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   723
!DSVLabelView::LineDrag methodsFor:'dragging'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   724
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   725
invertLine
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   726
    "invert current line
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   727
    "
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   728
    self invertLinesMovingToX:nil.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   729
!
2027
e61da28e7ffc use new #translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 1959
diff changeset
   730
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   731
invertLinesMovingToX:viewX
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   732
    "invert current line
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   733
     if x notNil than change x position and invert new line"
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   734
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   735
    topView clippedByChildren:false.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   736
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   737
    topView xoring:[
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   738
        topView paint:color.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   739
        topView lineWidth:2.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   740
        topView displayLineFromX:topX y:topY toX:topX y:botY.
2027
e61da28e7ffc use new #translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 1959
diff changeset
   741
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   742
        viewX notNil ifTrue:[
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   743
            self moveToX:viewX.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   744
            topView displayLineFromX:topX y:topY toX:topX y:botY.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   745
        ].
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   746
        topView flush
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   747
    ].
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   748
    topView clippedByChildren:true.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   749
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   750
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   751
moveToX:viewX
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   752
    topX := (minX max:viewX) + transX.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   753
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   754
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   755
!DSVLabelView::LineDrag methodsFor:'setup'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   756
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   757
column:aColumn x:x y:y h:h minX:aMinX on:aView
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   758
    |device point|
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   759
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   760
    column  := aColumn.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   761
    topView := aView topView.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   762
    device  := topView device.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   763
    color   := Color colorId:(device blackpixel bitXor:device whitepixel).
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   764
    point   := device translatePoint:(x@y) fromView:aView toView:topView.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   765
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   766
    topX     := point x.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   767
    topY     := point y.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   768
    botY     := topY + h.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   769
    minX     := aMinX.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   770
    startX   := topX.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   771
    transX   := topX - x.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   772
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   773
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   774
!DSVLabelView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   775
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   776
version
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   777
    ^ '$Header$'
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   778
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   779
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   780
version_CVS
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   781
    ^ '$Header$'
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   782
! !
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   783