NewInspectorListView.st
author Claus Gittinger <cg@exept.de>
Sun, 28 Jul 2019 01:09:11 +0200
changeset 3741 373454460851
parent 3613 5b03d091c507
permissions -rw-r--r--
#DOCUMENTATION by exept class: MethodFinderWindow comment/format in: #search
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
809
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     1
"
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
     3
	      All Rights Reserved
809
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     4
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     5
 This software is furnished under a license and may be used
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     6
 only in accordance with the terms of that license and with the
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     8
 be provided or otherwise made available to, or used by, any
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
     9
 other person.  No title to or ownership of the software is
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    10
 hereby transferred.
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    11
"
3613
5b03d091c507 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2621
diff changeset
    12
"{ Package: 'stx:libtool2' }"
809
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    13
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    14
"{ NameSpace: Tools }"
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    15
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
    16
SelectionInListView subclass:#NewInspectorListView
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    17
	instanceVariableNames:'actionHolder inspectorList includesSelf'
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    18
	classVariableNames:''
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    19
	poolDictionaries:''
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
    20
	category:'Interface-NewInspector'
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    21
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    22
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
    23
!NewInspectorListView class methodsFor:'documentation'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    24
809
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    25
copyright
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    26
"
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    27
 COPYRIGHT (c) 1997 by eXept Software AG
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    28
	      All Rights Reserved
809
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    29
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    30
 This software is furnished under a license and may be used
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    31
 only in accordance with the terms of that license and with the
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    33
 be provided or otherwise made available to, or used by, any
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    34
 other person.  No title to or ownership of the software is
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    35
 hereby transferred.
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    36
"
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    37
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    38
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    39
!
6f127dd5e578 added copyright & documentation
Claus Gittinger <cg@exept.de>
parents: 327
diff changeset
    40
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    41
examples
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    42
"
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    43
	open a list view on an instance
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    44
									[exBegin]
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    45
	|top slv a|
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    46
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    47
	a := OrderedCollection new.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    48
	a add:1.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    49
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    50
	top := StandardSystemView new
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    51
		label:'select';
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    52
		extent:200@200.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    53
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    54
	slv := ScrollableView for:self in:top.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    55
	slv origin:0.0@0.0 corner:1.0@1.0.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    56
	slv := slv scrolledView.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    57
	slv inspect:top.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    58
	slv action:[:el|Transcript showCR:(el printString)].
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    59
	top open
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    60
									[exEnd]
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    61
"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    62
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    63
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
    64
!NewInspectorListView methodsFor:'accessing'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    65
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    66
includesSelf:aBool
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    67
    includesSelf := aBool
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    68
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    69
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    70
list
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    71
    ^ inspectorList
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    72
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    73
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    74
list:aList
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    75
    "set the lists contents from another list
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    76
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    77
    aList notNil ifTrue:[inspectorList := aList list]
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
    78
		ifFalse:[inspectorList := NewInspectorList new].
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    79
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    80
    inspectorList includesSelf:includesSelf.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    81
    super list:(inspectorList instanceNames).
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    82
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    83
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    84
update
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    85
    "update the current list
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    86
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    87
    inspectorList update.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    88
    super list:(inspectorList instanceNames).
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    89
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    90
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    91
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
    92
!NewInspectorListView methodsFor:'accessing actions'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    93
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    94
action:aOneArgAction
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    95
    "set the single click action block. If non-nil, that one is evaluated on single
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    96
     click, passing the selected instance as argument
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    97
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
    98
    actionHolder := aOneArgAction
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    99
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   100
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   101
!NewInspectorListView methodsFor:'drawing'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   102
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   103
drawVisibleLineSelected:visLineNr with:fg and:bg
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   104
    "redraw a single line as selected.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   105
    "
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   106
    |nr|
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   107
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   108
    (nr := self visibleLineToListLine:visLineNr) notNil ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   109
	^ self drawVisibleLine:visLineNr with:fg and:bg.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   110
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   111
    ^ super drawVisibleLine:visLineNr with:fg and:bg
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   112
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   113
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   114
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   115
redrawArrowVisibleLine:visLineNr
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   116
    "draw a right arrow for visible line
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   117
    "
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   118
    |nr|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   119
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   120
    nr := self visibleLineToListLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   121
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   122
    (inspectorList instanceTypeAt:nr) == #directory ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   123
	self drawRightArrowInVisibleLine:visLineNr
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   124
    ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   125
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   126
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   127
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   128
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   129
redrawFromVisibleLine:startVisLineNr to:endVisLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   130
    "redefined to look for directory in every line
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   131
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   132
    super redrawFromVisibleLine:startVisLineNr to:endVisLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   133
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   134
    startVisLineNr to:endVisLineNr do:[:visLineNr|
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   135
	self redrawArrowVisibleLine:visLineNr
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   136
    ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   137
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   138
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   139
redrawVisibleLine:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   140
    "if the line is one for a directory, draw a right arrow
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   141
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   142
    super redrawVisibleLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   143
    self  redrawArrowVisibleLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   144
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   145
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   146
visibleLineNeedsSpecialCare:visLineNr
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   147
    "returns true if the visible line needs special care
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   148
    "
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   149
    |nr|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   150
327
0040d47658c6 check - warnings eliminated. Fix in InspectorList.st
Claus Gittinger <cg@exept.de>
parents: 39
diff changeset
   151
    nr := self visibleLineToListLine:visLineNr.
0040d47658c6 check - warnings eliminated. Fix in InspectorList.st
Claus Gittinger <cg@exept.de>
parents: 39
diff changeset
   152
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   153
    (inspectorList instanceTypeAt:nr) == #directory ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   154
	^ true
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   155
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   156
    ^ super visibleLineNeedsSpecialCare:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   157
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   158
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   159
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   160
widthForScrollBetween:firstLine and:lastLine
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   161
    "return the width in pixels for a scroll between firstLine and lastLine
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   162
     - return full width here since there might be directory marks
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   163
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   164
    ^ (width - margin - margin)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   165
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   166
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   167
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   168
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   169
!NewInspectorListView methodsFor:'event handling'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   170
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   171
sizeChanged:how
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   172
    "redraw marks
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   173
    "
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   174
    super sizeChanged:how.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   175
    shown ifTrue:[self invalidate]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   176
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   177
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   178
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   179
!NewInspectorListView methodsFor:'initialization'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   180
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   181
initialize
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   182
    "initialization
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   183
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   184
    super initialize.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   185
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   186
    ignoreReselect := false.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   187
    includesSelf   := false.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   188
    actionHolder   := [:el|].
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   189
    inspectorList  := NewInspectorList new.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   190
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   191
    actionBlock := [:dummy|
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   192
	self setSelection:selection.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   193
	actionHolder value:(self selectedInstanceVar)
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   194
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   195
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   196
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   197
!NewInspectorListView methodsFor:'private'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   198
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   199
doesNotUnderstand:aMessage
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   200
    "forward a message to the inspectorList
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   201
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   202
    (inspectorList respondsTo:(aMessage selector)) ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   203
	^ aMessage sendTo:inspectorList
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   204
    ].
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   205
    ^ super doesNotUnderstand:aMessage
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   206
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   207
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   208
!
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   209
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   210
list:aCollection keepSelection:aBoolean
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   211
    "set the list - redefined, since setting the list implies unselecting
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   212
     and clearing attributes."
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   213
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   214
    "somewhat of a kludge: if selection is first line,
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   215
     we have to remove the highlight frame by hand here"
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   216
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   217
    (shown and:[hilightLevel ~~ 0]) ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   218
	selection == firstLineShown ifTrue:[
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   219
	   self paint:bgColor.
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   220
	   self fillRectangleX:margin y:margin
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   221
			  width:(width - (margin * 2))
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   222
			 height:(hilightLevel abs).
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   223
	].
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   224
    ].
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   225
    listAttributes := nil.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   226
    super list:aCollection expandTabs:false.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   227
    super setSelection:(inspectorList selection).
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   228
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   229
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   230
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   231
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   232
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   233
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   234
!NewInspectorListView methodsFor:'selections'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   235
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   236
setSelection:aNumberOrNil
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   237
    "select line, aNumber or deselect if argument is nil
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   238
    "
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   239
    |oldSize|
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   240
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   241
    oldSize := inspectorList size.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   242
    inspectorList setSelection:aNumberOrNil.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   243
    oldSize == inspectorList size ifTrue:[super setSelection:(inspectorList selection)]
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   244
				 ifFalse:[super list:(inspectorList instanceNames)].
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   245
! !
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   246
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   247
!NewInspectorListView methodsFor:'user interaction'!
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   248
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   249
accept:aText notifying:aView
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   250
    "evaluating aText on the selected instance var; if an error occurs #Error
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   251
     is returned otherwise the inspected object instance. On success the list
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   252
     will be updated.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   253
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   254
    |res|
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   255
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   256
    res := inspectorList accept:aText notifying:aView.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   257
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   258
    res ~~ #Error ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   259
	super list:(inspectorList instanceNames)
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   260
    ].
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   261
    ^ res
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   262
!
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   263
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   264
doIt:aCode notifying:aView
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   265
    "evaluating aCode on the selected instance var; if an error occurs #Error
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   266
     is returned otherwise the result returned from the evaluator. On success
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   267
     the list will be updated.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   268
    "
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   269
    |res|
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   270
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   271
    res := inspectorList doIt:aCode notifying:aView.
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   272
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   273
    res ~~ #Error ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   274
	super list:(inspectorList instanceNames)
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   275
    ].
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   276
    ^ res
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   277
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   278
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   279
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   280
inspect:anObject
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   281
    "inspect a new instance; update contents
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   282
    "
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   283
    (inspectorList inspectedObject) == anObject ifTrue:[
2621
285fa261cbcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   284
	^ self update
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   285
    ].
1286
843f8ef3b26e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1213
diff changeset
   286
    inspectorList := NewInspectorList for:anObject.
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   287
    inspectorList includesSelf:includesSelf.
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   288
39
03af455029eb *** empty log message ***
ca
parents: 34
diff changeset
   289
    super list:(inspectorList instanceNames).
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   290
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   291
1213
6cf7a4c2dfce *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 810
diff changeset
   292
!NewInspectorListView class methodsFor:'documentation'!
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   293
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   294
version
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   295
    ^ '$Header$'
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   296
! !
3613
5b03d091c507 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2621
diff changeset
   297