InspectorListView.st
author ca
Mon, 13 Jan 1997 17:46:56 +0100
changeset 34 0f083a268b66
child 39 03af455029eb
permissions -rw-r--r--
intitial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     1
"{ NameSpace: NewInspector }"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     2
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     3
SelectionInListView subclass:#InspectorListView
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     4
	instanceVariableNames:'actionHolder listHolder includesSelf'
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     5
	classVariableNames:''
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     6
	poolDictionaries:''
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     7
	category:'Inspector'
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     8
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
     9
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    10
!InspectorListView class methodsFor:'documentation'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    11
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    12
examples
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    13
"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    14
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    15
        |top slv a|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    16
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    17
        a := OrderedCollection new.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    18
        a add:1.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    19
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    20
        top := StandardSystemView new
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    21
                label:'select';
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    22
                extent:200@200.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    23
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    24
        slv := ScrollableView for:self in:top.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    25
        slv origin:0.0@0.0 corner:1.0@1.0.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    26
        slv := slv scrolledView.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    27
        slv inspect:top.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    28
        slv action:[:el|Transcript showCR:(el printString)].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    29
        top open
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    30
"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    31
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    32
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    33
!InspectorListView methodsFor:'accessing actions'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    34
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    35
action:aOneArgAction
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    36
    "set the single click action block.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    37
     If non-nil, that one is evaluated on single click, passing the
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    38
     selected instance as argument
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    39
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    40
    actionHolder := aOneArgAction
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    41
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    42
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    43
!InspectorListView methodsFor:'accessing attributes'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    44
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    45
includesSelf
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    46
    ^ includesSelf
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    47
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    48
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    49
includesSelf:aBool
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    50
    includesSelf := aBool
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    51
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    52
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    53
inspectedObject
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    54
    ^ listHolder inspectedObject
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    55
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    56
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    57
isEmpty
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    58
    "returns true if view is empty
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    59
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    60
    ^ listHolder size == 0
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    61
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    62
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    63
listHolder
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    64
    ^ listHolder
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    65
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    66
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    67
notEmpty
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    68
    "returns true if view is empty
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    69
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    70
    ^ listHolder size ~~ 0
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    71
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    72
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    73
!InspectorListView methodsFor:'accessing contents'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    74
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    75
updateFromList:aListHolder
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    76
    "set the lists contents from a list
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    77
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    78
    listHolder := aListHolder.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    79
    listHolder includesSelf:includesSelf.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    80
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    81
    super list:(listHolder instanceNames).
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    82
    self setSelection:(listHolder selection).
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    83
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    84
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    85
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    86
updateFromView:aInspectorListView
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    87
    "update contents from other view
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    88
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    89
    self updateFromList:(aInspectorListView listHolder)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    90
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    91
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    92
updateList 
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    93
    "set the lists contents dependant on the object
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    94
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    95
    self updateList:(listHolder inspectedObject) selection:selection.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    96
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    97
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    98
!InspectorListView methodsFor:'actions'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
    99
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   100
accept:aText notifying:aView
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   101
    "on error #Error is returned otherwise the inspected object instance
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   102
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   103
    |res|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   104
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   105
    res := listHolder accept:aText notifying:aView.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   106
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   107
    res ~~ #Error ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   108
        super list:(listHolder instanceNames).
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   109
        self setSelection:(listHolder selection)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   110
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   111
    ^ res
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   112
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   113
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   114
doIt:aCode notifying:aView
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   115
    "on success the value returned from parser is returned otherwise #Error
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   116
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   117
    |res|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   118
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   119
    res := listHolder doIt:aCode notifying:aView.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   120
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   121
    res ~~ #Error ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   122
        super list:(listHolder instanceNames).
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   123
        self setSelection:(listHolder selection)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   124
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   125
    ^ res
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
inspect:anObject
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   130
    "inspect an object
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   131
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   132
    ^ self inspect:anObject selection:nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   133
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   134
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   135
inspect:anObject selection:aNumber
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   136
    "inspect an object and set the selection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   137
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   138
    aNumber notNil ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   139
        selection := aNumber
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   140
    ] ifFalse:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   141
        (listHolder inspectedObject) ~~ anObject ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   142
            selection := nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   143
        ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   144
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   145
    self updateList:anObject selection:selection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   146
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   147
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   148
!InspectorListView methodsFor:'drawing'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   149
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   150
drawVisibleLineSelected:visLineNr with:fg and:bg
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   151
    "redraw a single line as selected."
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   152
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   153
    |nr| 
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   154
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   155
    (nr := self visibleLineToListLine:visLineNr) notNil ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   156
        ^ self drawVisibleLine:visLineNr with:fg and:bg.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   157
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   158
    ^ super drawVisibleLine:visLineNr with:fg and:bg
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   159
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   160
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   161
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   162
redrawArrowVisibleLine:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   163
    "draw a right arrow for visible line"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   164
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   165
    |nr|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   166
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   167
    nr := self visibleLineToListLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   168
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   169
    (listHolder instanceTypeAt:nr) == #directory ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   170
        self drawRightArrowInVisibleLine:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   171
    ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   172
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   173
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   174
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   175
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   176
redrawFromVisibleLine:startVisLineNr to:endVisLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   177
    "redefined to look for directory in every line
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   178
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   179
    super redrawFromVisibleLine:startVisLineNr to:endVisLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   180
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   181
    startVisLineNr to:endVisLineNr do:[:visLineNr|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   182
        self redrawArrowVisibleLine:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   183
    ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   184
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   185
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   186
redrawVisibleLine:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   187
    "if the line is one for a directory, draw a right arrow
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   188
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   189
    super redrawVisibleLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   190
    self  redrawArrowVisibleLine:visLineNr.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   191
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   192
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   193
visibleLineNeedsSpecialCare:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   194
    |nr|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   195
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   196
    (listHolder instanceTypeAt:nr) == #directory ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   197
        ^ true
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   198
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   199
    ^ super visibleLineNeedsSpecialCare:visLineNr
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   200
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   201
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   202
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   203
widthForScrollBetween:firstLine and:lastLine
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   204
    "return the width in pixels for a scroll between firstLine and lastLine
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   205
     - return full width here since there might be directory marks
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   206
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   207
    ^ (width - margin - margin)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   208
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   209
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   210
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   211
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   212
!InspectorListView methodsFor:'event handling'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   213
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   214
sizeChanged:how
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   215
    "redraw marks"
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   216
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   217
    super sizeChanged:how.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   218
    shown ifTrue:[self invalidate]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   219
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   220
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   221
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   222
!InspectorListView methodsFor:'initialization'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   223
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   224
initialize
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   225
    "initialization
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   226
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   227
    super initialize.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   228
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   229
    ignoreReselect := false.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   230
    includesSelf   := false.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   231
    actionHolder   := [:el|].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   232
    listHolder     := InspectorList for:nil.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   233
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   234
    actionBlock := [:dummy|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   235
        self setSelection:selection.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   236
        actionHolder value:(self selectedInstanceVar)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   237
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   238
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   239
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   240
!InspectorListView methodsFor:'private'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   241
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   242
updateList:inspObject selection:aSelection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   243
    "set the lists contents dependant on the object
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   244
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   245
    listHolder := InspectorList for:inspObject.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   246
    listHolder includesSelf:includesSelf.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   247
    super list:(listHolder instanceNames).
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   248
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   249
    aSelection notNil ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   250
        self setSelection:aSelection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   251
    ] ifFalse:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   252
        includesSelf ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   253
            self setSelection:1
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   254
        ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   255
    ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   256
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   257
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   258
!InspectorListView methodsFor:'selections'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   259
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   260
selectedInstanceName
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   261
    "returns the name assigned to the selected instance or nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   262
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   263
    ^ listHolder instanceNameAt:selection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   264
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   265
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   266
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   267
selectedInstanceType
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   268
    "returns the type of the selected instance or nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   269
     known types are: #directory #normal or:#self
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   270
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   271
    ^ listHolder instanceTypeAt:selection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   272
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   273
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   274
selectedInstanceVar
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   275
    "returns the value assigned to the selected instance or nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   276
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   277
    ^ listHolder instanceVarAt:selection
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   278
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   279
!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   280
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   281
setSelection:aNumberOrNil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   282
    "select line, aNumber or deselect if argument is nil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   283
    "
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   284
    |type|
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   285
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   286
    aNumberOrNil notNil ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   287
        type := listHolder instanceTypeAt:aNumberOrNil.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   288
        listHolder selection:aNumberOrNil.
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   289
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   290
        type == #grow ifTrue:[
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   291
            super list:(listHolder instanceNames)
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   292
        ]
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   293
    ].
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   294
    super setSelection:aNumberOrNil
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   295
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   296
! !
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   297
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   298
!InspectorListView class methodsFor:'documentation'!
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   299
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   300
version
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   301
    ^ '$Header$'
0f083a268b66 intitial checkin
ca
parents:
diff changeset
   302
! !