author | Stefan Vogel <sv@exept.de> |
Mon, 14 Oct 1996 23:26:28 +0200 | |
changeset 337 | e6642ba7cca9 |
parent 318 | 097d70e8163f |
child 353 | e9071756b6a7 |
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 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
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 |
||
68 |
!Model methodsFor:'copying'! |
|
69 |
||
70 |
postCopy |
|
71 |
"release dependents after copying" |
|
72 |
||
73 |
self dependents:nil |
|
21 | 74 |
! ! |
0 | 75 |
|
83 | 76 |
!Model methodsFor:'dependents access'! |
0 | 77 |
|
83 | 78 |
addDependent:anObject |
79 |
"make the argument, anObject be a dependent of the receiver" |
|
80 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
81 |
|wasBlocked| |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
82 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
83 |
wasBlocked := OperatingSystem blockInterrupts. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
84 |
[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
85 |
|deps| |
83 | 86 |
|
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
87 |
deps := dependents. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
88 |
"/ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
89 |
"/ store the very first dependent directly in |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
90 |
"/ the dependents instVar |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
91 |
"/ |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
92 |
(deps isNil and:[anObject isCollection not]) ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
93 |
dependents := anObject |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
94 |
] ifFalse:[ |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
95 |
"/ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
96 |
"/ store more dependents in the dependents collection |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
97 |
"/ |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
98 |
deps isCollection ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
99 |
deps add:anObject |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
100 |
] ifFalse:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
101 |
dependents := IdentitySet with:dependents with:anObject |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
102 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
103 |
] |
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
104 |
] valueNowOrOnUnwindDo:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
105 |
wasBlocked ifFalse:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
106 |
OperatingSystem unblockInterrupts |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
107 |
] |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
108 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
109 |
|
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
110 |
"Modified: 19.7.1996 / 12:39:22 / cg" |
83 | 111 |
! |
112 |
||
125 | 113 |
dependents |
114 |
"return a Collection of dependents - nil if there is none" |
|
115 |
||
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
116 |
dependents isNil ifTrue:[^ nil]. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
117 |
dependents isCollection ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
118 |
^ dependents |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
119 |
]. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
120 |
^ IdentitySet with:dependents |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
121 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
122 |
"Modified: 19.4.1996 / 12:22:04 / cg" |
125 | 123 |
! |
124 |
||
125 |
dependents:aCollection |
|
126 |
"set the collection of dependents" |
|
127 |
||
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
128 |
|dep| |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
129 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
130 |
aCollection size == 1 ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
131 |
dep := aCollection first. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
132 |
dep isCollection ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
133 |
dependents := aCollection first. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
134 |
^ self |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
135 |
] |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
136 |
]. |
125 | 137 |
dependents := aCollection |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
138 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
139 |
"Modified: 19.4.1996 / 12:23:05 / cg" |
125 | 140 |
! |
141 |
||
83 | 142 |
dependentsDo:aBlock |
143 |
"evaluate aBlock for all of my dependents" |
|
144 |
||
145 |
|deps| |
|
146 |
||
147 |
deps := dependents. |
|
148 |
deps notNil ifTrue:[ |
|
153
0a44627e1712
oops - did not like Id'Dicts as dependents ...
Claus Gittinger <cg@exept.de>
parents:
129
diff
changeset
|
149 |
deps isCollection ifTrue:[ |
83 | 150 |
deps do:aBlock |
151 |
] ifFalse:[ |
|
152 |
aBlock value:deps |
|
153 |
] |
|
154 |
] |
|
155 |
! |
|
156 |
||
125 | 157 |
release |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
158 |
"remove all dependencies from the receiver" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
159 |
|
125 | 160 |
dependents := nil |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
161 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
162 |
"Modified: 19.4.1996 / 10:31:35 / cg" |
125 | 163 |
! |
164 |
||
83 | 165 |
removeDependent:anObject |
166 |
"make the argument, anObject be independent of the receiver" |
|
167 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
168 |
|wasBlocked| |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
169 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
170 |
"/ 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
|
171 |
"/ is possibly accessed from multiple threads. |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
172 |
"/ 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
|
173 |
"/ faster execution. |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
174 |
|
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
175 |
wasBlocked := OperatingSystem blockInterrupts. |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
176 |
[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
177 |
|deps sz dep| |
83 | 178 |
|
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
179 |
deps := dependents. |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
180 |
deps notNil ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
181 |
deps isCollection ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
182 |
deps remove:anObject ifAbsent:[]. |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
183 |
(sz := deps size) == 0 ifTrue:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
184 |
dependents := nil |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
185 |
] ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
186 |
sz == 1 ifTrue:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
187 |
(dep := deps first) isCollection ifFalse:[ |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
188 |
dependents := dep |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
189 |
] |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
190 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
191 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
192 |
] ifFalse:[ |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
193 |
dependents := nil |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
194 |
] |
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
195 |
] |
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
196 |
] valueNowOrOnUnwindDo:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
197 |
wasBlocked ifFalse:[ |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
198 |
OperatingSystem unblockInterrupts |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
199 |
] |
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
200 |
] |
163
80f4fe3bcc71
care for interrupts while adding/removing dependents
Claus Gittinger <cg@exept.de>
parents:
153
diff
changeset
|
201 |
|
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
202 |
"Modified: 19.7.1996 / 12:40:59 / cg" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
203 |
! ! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
204 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
205 |
!Model methodsFor:'dependents access (non weak)'! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
206 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
207 |
addNonWeakDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
208 |
"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
|
209 |
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
|
210 |
forwarded to addDependent:" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
211 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
212 |
^ self addDependent:anObject |
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 |
"Created: 19.4.1996 / 10:28:53 / cg" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
215 |
! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
216 |
|
337
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
217 |
interests |
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
218 |
"return a Collection of interests - nil if there is none. |
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
219 |
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
|
220 |
|
189 | 221 |
^ self dependents |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
222 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
223 |
"Created: 19.4.1996 / 12:28:23 / cg" |
189 | 224 |
"Modified: 19.4.1996 / 18:07:12 / cg" |
337
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
225 |
"Modified: 14.10.1996 / 22:19:58 / stefan" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
226 |
! |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
227 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
228 |
nonWeakDependents |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
229 |
"return a Collection of dependents - nil if there is none. |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
230 |
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
|
231 |
|
190 | 232 |
^ self dependents |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
233 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
234 |
"Created: 19.4.1996 / 10:29:43 / cg" |
190 | 235 |
"Modified: 19.4.1996 / 18:07:31 / cg" |
188
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
236 |
! |
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 |
removeNonWeakDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
239 |
"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
|
240 |
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
|
241 |
forwarded to removeDependent:" |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
242 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
243 |
^ self removeDependent:anObject |
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
244 |
|
38e92ed0e1b9
interrest changes in model (nonWeak stuff)
Claus Gittinger <cg@exept.de>
parents:
163
diff
changeset
|
245 |
"Created: 19.4.1996 / 12:19:40 / cg" |
0 | 246 |
! ! |
247 |
||
318
097d70e8163f
use inline interrupt blocking in dependents acces methods.
Claus Gittinger <cg@exept.de>
parents:
238
diff
changeset
|
248 |
!Model class methodsFor:'documentation'! |
129 | 249 |
|
250 |
version |
|
337
e6642ba7cca9
Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents:
318
diff
changeset
|
251 |
^ '$Header: /cvs/stx/stx/libview2/Model.st,v 1.26 1996-10-14 21:26:28 stefan Exp $' |
129 | 252 |
! ! |