SelectionInTree.st
author ca
Tue, 05 Aug 1997 08:34:47 +0200
changeset 482 7f922ead2b06
parent 458 e4b907c8f0ce
child 491 c7d57a5e7a21
permissions -rw-r--r--
add method: updateList recompute list without notification
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
458
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     1
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     4
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    11
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    12
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    13
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    14
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    15
Model subclass:#SelectionInTree
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    16
	instanceVariableNames:'root list selection'
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    17
	classVariableNames:''
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    18
	poolDictionaries:''
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    19
	category:'Interface-Support-Models'
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    20
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    21
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    22
!SelectionInTree class methodsFor:'documentation'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    23
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    24
copyright
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    25
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    26
 COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    27
              All Rights Reserved
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    28
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    29
 This software is furnished under a license and may be used
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    30
 only in accordance with the terms of that license and with the
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    32
 be provided or otherwise made available to, or used by, any
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    33
 other person.  No title to or ownership of the software is
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    34
 hereby transferred.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    35
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    36
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    37
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    38
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    39
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    40
documentation
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    41
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    42
    list and selection holder for hierarchical list structures. Used
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    43
    to buildup file-trees, class tress etc.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    44
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    45
    Especially suited for use with SelectionInTreeView.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    46
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    47
    [See also:]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    48
        TreeItem
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    49
        SelectionInTreeView
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    50
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    51
    [Author:]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    52
        W. Olberding
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    53
        Claus Atzkern
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    54
"
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    55
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    56
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    57
!SelectionInTree methodsFor:'accessing'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    58
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    59
list
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    60
    "get list oc currently shown objects
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    61
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    62
    ^ list
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    63
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    64
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    65
root
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    66
    "get the root node
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    67
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    68
    ^ root
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    69
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    70
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    71
root:aRootNode
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    72
    "set a new root and recompute list
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    73
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    74
    root := aRootNode.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    75
    self recomputeList.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    76
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    77
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    78
!SelectionInTree methodsFor:'accessing hierarchy'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    79
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    80
collapse:something 
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    81
    "collapse a node or collection of nodes
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    82
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    83
    |invalidate|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    84
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    85
    self each:something do:[:aNode|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    86
        aNode isCollapsable ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    87
            aNode collapse.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    88
            invalidate := true
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    89
        ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    90
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    91
    invalidate == true ifTrue:[self recomputeList]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    92
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    93
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    94
expand:something 
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    95
    "expand a node or collection of nodes
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    96
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    97
    |invalidate|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    98
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
    99
    self each:something do:[:aNode|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   100
        aNode isExpandable ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   101
            aNode expand.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   102
            invalidate := true
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   103
        ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   104
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   105
    invalidate == true ifTrue:[self recomputeList]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   106
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   107
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   108
!SelectionInTree methodsFor:'adding & removing'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   109
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   110
add:something after:aChild
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   111
    "add a node or collection of nodes to parent after a child
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   112
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   113
    "add a node or collection of nodes to after a child
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   114
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   115
    aChild notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   116
        aChild parent add:something after:aChild.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   117
        self recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   118
    ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   119
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   120
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   121
add:something afterIndex:anIndex below:aParent
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   122
    "add a node or collection of nodes to parent after an index
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   123
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   124
    aParent add:something afterIndex:anIndex.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   125
    self recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   126
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   127
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   128
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   129
add:something before:aChild
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   130
    "add a node or collection of nodes to before a child
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   131
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   132
    aChild notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   133
        aChild parent add:something before:aChild.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   134
        self recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   135
    ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   136
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   137
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   138
add:something beforeIndex:anIndex below:aParent
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   139
    "add a node or collection of nodes to parent before an index
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   140
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   141
    aParent add:something beforeIndex:anIndex.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   142
    self recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   143
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   144
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   145
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   146
add:something below:aParent
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   147
    "add a node or collection of nodes to parent
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   148
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   149
    aParent add:something.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   150
    self recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   151
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   152
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   153
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   154
remove:something
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   155
    "remove a node or collection of nodes
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   156
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   157
    |invalidate|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   158
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   159
    self each:something do:[:aNode|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   160
        aNode parent notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   161
            aNode parent remove:aNode.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   162
            invalidate := true
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   163
        ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   164
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   165
    invalidate == true ifTrue:[self recomputeList].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   166
  ^ something
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   167
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   168
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   169
removeIndex:something
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   170
    "remove a node at index or collection of indexed nodes
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   171
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   172
    |invalidate node|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   173
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   174
    something isCollection ifFalse:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   175
        (something isNil or:[something == 0]) ifFalse:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   176
            ^ self remove:(list at:something)
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   177
        ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   178
      ^ nil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   179
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   180
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   181
    (SortedCollection withAll:something) reverseDo:[:anIndex|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   182
        node := list at:anIndex.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   183
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   184
        node parent notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   185
            node parent remove:node.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   186
            invalidate := true
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   187
        ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   188
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   189
    invalidate == true ifTrue:[self recomputeList].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   190
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   191
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   192
removeSelection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   193
    "remove selected nodes
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   194
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   195
    self removeIndex:(self selectionIndex).
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   196
    self selectionIndex:nil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   197
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   198
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   199
!SelectionInTree methodsFor:'enumerating'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   200
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   201
each:something do:aBlock
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   202
    "evaluate a block for something or in case of a collection for each
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   203
     element in the collection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   204
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   205
    something notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   206
        something isCollection ifTrue:[something do:[:el|aBlock value:el]]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   207
                              ifFalse:[aBlock value:something]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   208
    ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   209
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   210
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   211
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   212
!SelectionInTree methodsFor:'private'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   213
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   214
recomputeList
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   215
    "Travers the tree and build a new list."
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   216
482
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   217
    self updateList.
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   218
    self changed:#list.
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   219
!
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   220
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   221
updateList
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   222
    "Travers the tree and build a new list.; no notification raised"
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   223
458
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   224
    list := OrderedCollection new.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   225
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   226
    root notNil ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   227
        list add:root.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   228
        root recomputeList:list
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   229
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   230
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   231
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   232
!SelectionInTree methodsFor:'selection'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   233
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   234
selection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   235
    "get the selection or nil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   236
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   237
    ^ self selectionIndex
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   238
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   239
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   240
selection:indexesOrNil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   241
    "set the selection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   242
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   243
    self selectionIndex:indexesOrNil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   244
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   245
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   246
selectionIndex
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   247
    "get the selection or nil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   248
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   249
    ^ selection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   250
!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   251
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   252
selectionIndex:indexesOrNil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   253
    "set the selection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   254
    "
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   255
    |indexes|
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   256
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   257
    indexes := indexesOrNil.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   258
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   259
    indexes size == 0 ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   260
        (indexes isCollection or:[indexes == 0]) ifTrue:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   261
            indexes := nil
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   262
        ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   263
    ].
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   264
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   265
    indexes = selection ifFalse:[
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   266
        selection := indexes.
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   267
        self changed:#selection
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   268
    ]
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   269
! !
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   270
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   271
!SelectionInTree class methodsFor:'documentation'!
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   272
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   273
version
482
7f922ead2b06 add method: updateList
ca
parents: 458
diff changeset
   274
    ^ '$Header: /cvs/stx/stx/libwidg2/SelectionInTree.st,v 1.2 1997-08-05 06:34:47 ca Exp $'
458
e4b907c8f0ce intitial checkin
ca
parents:
diff changeset
   275
! !