author | martin |
Tue, 07 Nov 2000 15:19:03 +0100 | |
changeset 1417 | 810fdd94d742 |
parent 1366 | 7a2a23c17724 |
child 1558 | 1ae43779327f |
permissions | -rw-r--r-- |
0 | 1 |
" |
6 | 2 |
COPYRIGHT (c) 1992 by Claus Gittinger |
35 | 3 |
All Rights Reserved |
0 | 4 |
|
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
12 |
||
13 |
Object subclass:#Model |
|
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
14 |
instanceVariableNames:'dependents' |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
15 |
classVariableNames:'' |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
16 |
poolDictionaries:'' |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
17 |
category:'Interface-Support-Models' |
0 | 18 |
! |
19 |
||
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
20 |
!Model class methodsFor:'documentation'! |
21 | 21 |
|
22 |
copyright |
|
23 |
" |
|
24 |
COPYRIGHT (c) 1992 by Claus Gittinger |
|
35 | 25 |
All Rights Reserved |
0 | 26 |
|
21 | 27 |
This software is furnished under a license and may be used |
28 |
only in accordance with the terms of that license and with the |
|
29 |
inclusion of the above copyright notice. This software may not |
|
30 |
be provided or otherwise made available to, or used by, any |
|
31 |
other person. No title to or ownership of the software is |
|
32 |
hereby transferred. |
|
33 |
" |
|
34 |
! |
|
0 | 35 |
|
21 | 36 |
documentation |
37 |
" |
|
238 | 38 |
Models are things which represent information models, i.e. something |
39 |
which holds the data for user interface components and on which these operate. |
|
40 |
Basically, instances keep track of which components depend on them and |
|
41 |
inform the dependents of any changes. |
|
42 |
||
43 |
The Model class itself is abstract and not too useful, see subclasses, |
|
44 |
especially, ValueHolder and SelectionInList. |
|
45 |
||
46 |
Notice: |
|
47 |
Actually the Model class is not really needed; since the dependency |
|
48 |
mechanism is inherited by Object, you can take any object as a model. |
|
49 |
However, instances of Model (and subclasses) keep the dependents locally |
|
50 |
in an instance variable; thus speeding up access a bit. |
|
35 | 51 |
|
223 | 52 |
[Instance variables:] |
238 | 53 |
dependents <Collection> those objects which depend on me. |
54 |
To save some storage, a single dependent |
|
55 |
is kept directly here. |
|
56 |
Otherwise, if there are multiple dependents, |
|
57 |
a collection of dependents is held here. |
|
223 | 58 |
|
59 |
[author:] |
|
60 |
Claus Gittinger |
|
238 | 61 |
|
62 |
[see also:] |
|
63 |
ValueHolder SelectionInList |
|
64 |
( introduction to view programming :html: programming/viewintro.html#MVC ) |
|
21 | 65 |
" |
125 | 66 |
! ! |
67 |
||
1244 | 68 |
!Model methodsFor:'converting'! |
69 |
||
70 |
skippedInLiteralEncoding |
|
71 |
"return a Collection with it's elements are slots for skipping |
|
72 |
" |
|
73 |
^ OrderedCollection with:#dependents |
|
74 |
! ! |
|
75 |
||
125 | 76 |
!Model methodsFor:'copying'! |
77 |
||
78 |
postCopy |
|
79 |
"release dependents after copying" |
|
80 |
||
81 |
self dependents:nil |
|
1236
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
82 |
! |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
83 |
|
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
84 |
skipInstvarIndexInDeepCopy:index |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
85 |
"a helper for deepCopy; only indices for which this method returns |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
86 |
false are copied in a deep copy." |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
87 |
|
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
88 |
index == 1 ifTrue:[ |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
89 |
^ true "/ skip dependents |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
90 |
]. |
bdd6c63288bd
deepCopy fix (do not copy dependents)
Claus Gittinger <cg@exept.de>
parents:
795
diff
changeset
|
91 |
^ false |
21 | 92 |
! ! |
0 | 93 |
|
83 | 94 |
!Model methodsFor:'dependents access'! |
0 | 95 |
|
83 | 96 |
addDependent:anObject |
97 |
"make the argument, anObject be a dependent of the receiver" |
|
98 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
99 |
|wasBlocked| |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
100 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
101 |
wasBlocked := OperatingSystem blockInterrupts. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
102 |
[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
103 |
|deps| |
83 | 104 |
|
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
105 |
deps := dependents. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
106 |
"/ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
107 |
"/ store the very first dependent directly in |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
108 |
"/ the dependents instVar |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
109 |
"/ |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
110 |
(deps isNil and:[anObject isCollection not]) ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
111 |
dependents := anObject |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
112 |
] ifFalse:[ |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
113 |
"/ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
114 |
"/ store more dependents in the dependents collection |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
115 |
"/ |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
116 |
deps isCollection ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
117 |
deps add:anObject |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
118 |
] ifFalse:[ |
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
119 |
deps == anObject ifFalse:[ |
1366 | 120 |
deps isNil ifTrue:[ |
121 |
dependents := (IdentitySet with:anObject) |
|
122 |
] ifFalse:[ |
|
123 |
dependents := (IdentitySet with:deps with:anObject) |
|
124 |
] |
|
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
125 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
126 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
127 |
] |
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
128 |
] valueNowOrOnUnwindDo:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
129 |
wasBlocked ifFalse:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
130 |
OperatingSystem unblockInterrupts |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
131 |
] |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
132 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
133 |
|
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
134 |
"Modified: 8.1.1997 / 23:40:30 / cg" |
83 | 135 |
! |
136 |
||
125 | 137 |
dependents |
771 | 138 |
"return a Collection of dependents" |
125 | 139 |
|
720
b0e0977e1759
dependents now always returns a collection
Claus Gittinger <cg@exept.de>
parents:
353
diff
changeset
|
140 |
dependents isNil ifTrue:[^ #()]. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
141 |
dependents isCollection ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
142 |
^ dependents |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
143 |
]. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
144 |
^ IdentitySet with:dependents |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
145 |
|
771 | 146 |
"Modified: / 26.1.1998 / 11:18:24 / cg" |
125 | 147 |
! |
148 |
||
149 |
dependents:aCollection |
|
150 |
"set the collection of dependents" |
|
151 |
||
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
152 |
|dep| |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
153 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
154 |
aCollection size == 1 ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
155 |
dep := aCollection first. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
156 |
dep isCollection ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
157 |
dependents := aCollection first. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
158 |
^ self |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
159 |
] |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
160 |
]. |
125 | 161 |
dependents := aCollection |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
162 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
163 |
"Modified: 19.4.1996 / 12:23:05 / cg" |
125 | 164 |
! |
165 |
||
83 | 166 |
dependentsDo:aBlock |
167 |
"evaluate aBlock for all of my dependents" |
|
168 |
||
169 |
|deps| |
|
170 |
||
171 |
deps := dependents. |
|
172 |
deps notNil ifTrue:[ |
|
153
0a44627e1712
oops - did not like Id'Dicts as dependents ...
Claus Gittinger <cg@exept.de>
parents:
129
diff
changeset
|
173 |
deps isCollection ifTrue:[ |
83 | 174 |
deps do:aBlock |
175 |
] ifFalse:[ |
|
176 |
aBlock value:deps |
|
177 |
] |
|
178 |
] |
|
179 |
! |
|
180 |
||
125 | 181 |
release |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
182 |
"remove all dependencies from the receiver" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
183 |
|
125 | 184 |
dependents := nil |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
185 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
186 |
"Modified: 19.4.1996 / 10:31:35 / cg" |
125 | 187 |
! |
188 |
||
83 | 189 |
removeDependent:anObject |
190 |
"make the argument, anObject be independent of the receiver" |
|
191 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
192 |
|wasBlocked| |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
193 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
194 |
"/ must do this save from interrupts, since the dependents collection |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
195 |
"/ is possibly accessed from multiple threads. |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
196 |
"/ Used to use #valueUninterruptably here; inlined that code for slightly |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
197 |
"/ faster execution. |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
198 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
199 |
wasBlocked := OperatingSystem blockInterrupts. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
200 |
[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
201 |
|deps sz dep| |
83 | 202 |
|
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
203 |
deps := dependents. |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
204 |
deps notNil ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
205 |
deps isCollection ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
206 |
deps remove:anObject ifAbsent:[]. |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
207 |
(sz := deps size) == 0 ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
208 |
dependents := nil |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
209 |
] ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
210 |
sz == 1 ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
211 |
(dep := deps first) isCollection ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
212 |
dependents := dep |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
213 |
] |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
214 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
215 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
216 |
] ifFalse:[ |
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
217 |
deps == anObject ifTrue:[ |
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
218 |
dependents := nil |
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
219 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
220 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
221 |
] |
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
222 |
] valueNowOrOnUnwindDo:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
223 |
wasBlocked ifFalse:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
224 |
OperatingSystem unblockInterrupts |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
225 |
] |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
226 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
227 |
|
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
228 |
"Modified: 8.1.1997 / 23:41:39 / cg" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
229 |
! ! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
230 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
231 |
!Model methodsFor:'dependents access (non weak)'! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
232 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
233 |
addNonWeakDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
234 |
"make the argument, anObject be a dependent of the receiver. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
235 |
Since all dependencies are nonWeak in Model, this is simply |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
236 |
forwarded to addDependent:" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
237 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
238 |
^ self addDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
239 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
240 |
"Created: 19.4.1996 / 10:28:53 / cg" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
241 |
! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
242 |
|
337
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
243 |
interests |
795
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
244 |
"return a Collection of interests - empty if there is none. |
337
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
245 |
Here, we use the normal dependents collection for interests." |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
246 |
|
189 | 247 |
^ self dependents |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
248 |
|
795
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
249 |
"Created: / 19.4.1996 / 12:28:23 / cg" |
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
250 |
"Modified: / 14.10.1996 / 22:19:58 / stefan" |
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
251 |
"Modified: / 30.1.1998 / 14:07:43 / cg" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
252 |
! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
253 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
254 |
nonWeakDependents |
795
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
255 |
"return a Collection of dependents - empty if there is none. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
256 |
Since all dependencies are nonWeak in Model, this is a dummy." |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
257 |
|
190 | 258 |
^ self dependents |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
259 |
|
795
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
260 |
"Created: / 19.4.1996 / 10:29:43 / cg" |
f79766570dd7
#nonWeakDependents always returns a collection
Claus Gittinger <cg@exept.de>
parents:
771
diff
changeset
|
261 |
"Modified: / 30.1.1998 / 14:06:17 / cg" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
262 |
! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
263 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
264 |
removeNonWeakDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
265 |
"make the argument, anObject be independent of the receiver. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
266 |
Since all dependencies are nonWeak in Model, this is simply |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
267 |
forwarded to removeDependent:" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
268 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
269 |
^ self removeDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
270 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
271 |
"Created: 19.4.1996 / 12:19:40 / cg" |
0 | 272 |
! ! |
273 |
||
353
e9071756b6a7
oops - removeDependent: removed the dependent, even if
Claus Gittinger <cg@exept.de>
parents:
337
diff
changeset
|
274 |
!Model class methodsFor:'documentation'! |
129 | 275 |
|
276 |
version |
|
1366 | 277 |
^ '$Header: /cvs/stx/stx/libview2/Model.st,v 1.33 2000-03-28 17:40:43 cg Exp $' |
129 | 278 |
! ! |