SelList.st
author claus
Tue, 06 Jun 1995 06:16:07 +0200
changeset 130 338e856bddc9
parent 129 a0728fb8d54e
child 133 e58c7c979f33
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
129
claus
parents: 114
diff changeset
     1
'From Smalltalk/X, Version:2.10.5 on 9-may-1995 at 12:01:39 pm'!
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
     2
129
claus
parents: 114
diff changeset
     3
ValueHolder subclass:#SelectionInList
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
     4
	 instanceVariableNames:'listHolder indexHolder'
5d736ee65276 Initial revision
claus
parents:
diff changeset
     5
	 classVariableNames:''
5d736ee65276 Initial revision
claus
parents:
diff changeset
     6
	 poolDictionaries:''
129
claus
parents: 114
diff changeset
     7
	 category:'Interface-Support-Models'
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
     8
!
5d736ee65276 Initial revision
claus
parents:
diff changeset
     9
5d736ee65276 Initial revision
claus
parents:
diff changeset
    10
!SelectionInList class methodsFor:'instance creation'!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    11
5d736ee65276 Initial revision
claus
parents:
diff changeset
    12
new
5d736ee65276 Initial revision
claus
parents:
diff changeset
    13
    ^ super new initialize
5d736ee65276 Initial revision
claus
parents:
diff changeset
    14
!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    15
5d736ee65276 Initial revision
claus
parents:
diff changeset
    16
with:aList 
5d736ee65276 Initial revision
claus
parents:
diff changeset
    17
    ^ self new listHolder:(ValueHolder with:aList)
5d736ee65276 Initial revision
claus
parents:
diff changeset
    18
! !
5d736ee65276 Initial revision
claus
parents:
diff changeset
    19
5d736ee65276 Initial revision
claus
parents:
diff changeset
    20
!SelectionInList methodsFor:'initialization'!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    21
5d736ee65276 Initial revision
claus
parents:
diff changeset
    22
initialize
5d736ee65276 Initial revision
claus
parents:
diff changeset
    23
    listHolder := ValueHolder new.
5d736ee65276 Initial revision
claus
parents:
diff changeset
    24
    indexHolder := ValueHolder new.
5d736ee65276 Initial revision
claus
parents:
diff changeset
    25
! !
5d736ee65276 Initial revision
claus
parents:
diff changeset
    26
5d736ee65276 Initial revision
claus
parents:
diff changeset
    27
!SelectionInList methodsFor:'accessing'!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    28
129
claus
parents: 114
diff changeset
    29
list
claus
parents: 114
diff changeset
    30
    ^ listHolder value
claus
parents: 114
diff changeset
    31
!
claus
parents: 114
diff changeset
    32
claus
parents: 114
diff changeset
    33
listHolder:aValueHolder
claus
parents: 114
diff changeset
    34
    listHolder := aValueHolder
claus
parents: 114
diff changeset
    35
!
claus
parents: 114
diff changeset
    36
claus
parents: 114
diff changeset
    37
selectionIndex:newIndex 
claus
parents: 114
diff changeset
    38
    indexHolder isNil ifTrue:[
claus
parents: 114
diff changeset
    39
	indexHolder := ValueHolder new.
claus
parents: 114
diff changeset
    40
    ].
claus
parents: 114
diff changeset
    41
    indexHolder value:newIndex.
claus
parents: 114
diff changeset
    42
    self notifyChange:#selectionIndex.
claus
parents: 114
diff changeset
    43
claus
parents: 114
diff changeset
    44
!
claus
parents: 114
diff changeset
    45
claus
parents: 114
diff changeset
    46
index
claus
parents: 114
diff changeset
    47
    "OBSOLETE interface"
claus
parents: 114
diff changeset
    48
claus
parents: 114
diff changeset
    49
    ^ self selectionIndex
claus
parents: 114
diff changeset
    50
!
claus
parents: 114
diff changeset
    51
claus
parents: 114
diff changeset
    52
selectionIndex 
claus
parents: 114
diff changeset
    53
    ^ indexHolder value
claus
parents: 114
diff changeset
    54
!
claus
parents: 114
diff changeset
    55
claus
parents: 114
diff changeset
    56
selection:anObject 
claus
parents: 114
diff changeset
    57
    ^ self selectionIndex:(self list indexOf:anObject ifAbsent:0)
claus
parents: 114
diff changeset
    58
claus
parents: 114
diff changeset
    59
!
claus
parents: 114
diff changeset
    60
claus
parents: 114
diff changeset
    61
selection 
claus
parents: 114
diff changeset
    62
    |idx|
claus
parents: 114
diff changeset
    63
claus
parents: 114
diff changeset
    64
    idx := self selectionIndex.
claus
parents: 114
diff changeset
    65
    (idx isNil or:[idx == 0]) ifTrue:[^ nil].
claus
parents: 114
diff changeset
    66
    ^ self list at:idx
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
    67
!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    68
5d736ee65276 Initial revision
claus
parents:
diff changeset
    69
selectionIndexHolder
5d736ee65276 Initial revision
claus
parents:
diff changeset
    70
    ^ indexHolder
5d736ee65276 Initial revision
claus
parents:
diff changeset
    71
!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    72
129
claus
parents: 114
diff changeset
    73
index:newIndex
claus
parents: 114
diff changeset
    74
    "OBSOLETE interface"
claus
parents: 114
diff changeset
    75
claus
parents: 114
diff changeset
    76
    ^ self selectionIndex:newIndex
claus
parents: 114
diff changeset
    77
!
claus
parents: 114
diff changeset
    78
claus
parents: 114
diff changeset
    79
list:aCollection
claus
parents: 114
diff changeset
    80
    listHolder isNil ifTrue:[
claus
parents: 114
diff changeset
    81
	listHolder := ValueHolder new.
claus
parents: 114
diff changeset
    82
    ].
claus
parents: 114
diff changeset
    83
    listHolder value:aCollection.
claus
parents: 114
diff changeset
    84
    indexHolder isNil ifTrue:[
claus
parents: 114
diff changeset
    85
	indexHolder := ValueHolder new.
claus
parents: 114
diff changeset
    86
    ].
claus
parents: 114
diff changeset
    87
    indexHolder value:0.
claus
parents: 114
diff changeset
    88
    self notifyChange:#list.
claus
parents: 114
diff changeset
    89
!
claus
parents: 114
diff changeset
    90
claus
parents: 114
diff changeset
    91
listHolder
claus
parents: 114
diff changeset
    92
    ^ listHolder
claus
parents: 114
diff changeset
    93
!
claus
parents: 114
diff changeset
    94
claus
parents: 114
diff changeset
    95
indexHolder
claus
parents: 114
diff changeset
    96
    ^ indexHolder
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
    97
!
5d736ee65276 Initial revision
claus
parents:
diff changeset
    98
5d736ee65276 Initial revision
claus
parents:
diff changeset
    99
selectionIndexHolder:aValueHolder
5d736ee65276 Initial revision
claus
parents:
diff changeset
   100
    indexHolder := aValueHolder
129
claus
parents: 114
diff changeset
   101
!
claus
parents: 114
diff changeset
   102
claus
parents: 114
diff changeset
   103
indexHolder:aValueHolder
claus
parents: 114
diff changeset
   104
    indexHolder := aValueHolder
114
5d736ee65276 Initial revision
claus
parents:
diff changeset
   105
! !
5d736ee65276 Initial revision
claus
parents:
diff changeset
   106