add method:
authorca
Wed, 15 Oct 1997 12:31:52 +0200
changeset 557 7cf5f021983d
parent 556 0e04616de48c
child 558 11294b25e4dd
add method: #updateFromChannels
SubCanvas.st
--- a/SubCanvas.st	Wed Oct 15 12:29:40 1997 +0200
+++ b/SubCanvas.st	Wed Oct 15 12:31:52 1997 +0200
@@ -85,7 +85,7 @@
     (clientHolder := aValueHolder) notNil ifTrue:[
         clientHolder addDependent:self
     ].
-    self client:clientHolder value
+    self updateFromChannels
 !
 
 specHolder
@@ -100,7 +100,7 @@
     (specHolder := aValueHolder) notNil ifTrue:[
         specHolder addDependent:self
     ].
-
+    self updateFromChannels
 ! !
 
 !SubCanvas methodsFor:'building'!
@@ -146,17 +146,35 @@
 update:something with:aParameter from:changedObject
     "one of my models changed its value
     "
-    changedObject == clientHolder ifTrue:[^ self client:(clientHolder value)].
-    changedObject == specHolder   ifTrue:[
-        client isNil ifTrue:[
-            (client := self application) notNil ifTrue:[
-                builder := client builder
-            ]
-        ].
-        ^ self spec:(specHolder value)
+    (changedObject == clientHolder or:[changedObject == specHolder]) ifTrue:[
+        self updateFromChannels
+    ] ifFalse:[
+        super update:something with:aParameter from:changedObject.
+    ]
+
+!
+
+updateFromChannels
+    "update canvas from channel
+    "
+    |client spec|
+
+    clientHolder isNil ifTrue:[
+        client := self application
+    ] ifFalse:[
+        client := clientHolder value
     ].
 
-    super update:something with:aParameter from:changedObject.
+    specHolder isNil ifTrue:[
+        spec := #windowSpec
+    ] ifFalse:[
+        spec := specHolder value
+    ].
+    (client notNil and:[spec notNil]) ifTrue:[
+        self client:client spec:spec
+    ] ifFalse:[
+        self client:nil
+    ]
 
 
 ! !
@@ -185,5 +203,5 @@
 !SubCanvas class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.4 1997-10-12 11:29:49 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.5 1997-10-15 10:31:52 ca Exp $'
 ! !