SubCanvas.st
changeset 557 7cf5f021983d
parent 554 c32ed45bfc6e
child 609 ad75d5f13ca1
equal deleted inserted replaced
556:0e04616de48c 557:7cf5f021983d
    83         clientHolder removeDependent:self
    83         clientHolder removeDependent:self
    84     ].
    84     ].
    85     (clientHolder := aValueHolder) notNil ifTrue:[
    85     (clientHolder := aValueHolder) notNil ifTrue:[
    86         clientHolder addDependent:self
    86         clientHolder addDependent:self
    87     ].
    87     ].
    88     self client:clientHolder value
    88     self updateFromChannels
    89 !
    89 !
    90 
    90 
    91 specHolder
    91 specHolder
    92     ^ specHolder
    92     ^ specHolder
    93 !
    93 !
    98         specHolder removeDependent:self
    98         specHolder removeDependent:self
    99     ].
    99     ].
   100     (specHolder := aValueHolder) notNil ifTrue:[
   100     (specHolder := aValueHolder) notNil ifTrue:[
   101         specHolder addDependent:self
   101         specHolder addDependent:self
   102     ].
   102     ].
   103 
   103     self updateFromChannels
   104 ! !
   104 ! !
   105 
   105 
   106 !SubCanvas methodsFor:'building'!
   106 !SubCanvas methodsFor:'building'!
   107 
   107 
   108 rebuild
   108 rebuild
   144 !SubCanvas methodsFor:'change & update'!
   144 !SubCanvas methodsFor:'change & update'!
   145 
   145 
   146 update:something with:aParameter from:changedObject
   146 update:something with:aParameter from:changedObject
   147     "one of my models changed its value
   147     "one of my models changed its value
   148     "
   148     "
   149     changedObject == clientHolder ifTrue:[^ self client:(clientHolder value)].
   149     (changedObject == clientHolder or:[changedObject == specHolder]) ifTrue:[
   150     changedObject == specHolder   ifTrue:[
   150         self updateFromChannels
   151         client isNil ifTrue:[
   151     ] ifFalse:[
   152             (client := self application) notNil ifTrue:[
   152         super update:something with:aParameter from:changedObject.
   153                 builder := client builder
   153     ]
   154             ]
   154 
   155         ].
   155 !
   156         ^ self spec:(specHolder value)
   156 
   157     ].
   157 updateFromChannels
   158 
   158     "update canvas from channel
   159     super update:something with:aParameter from:changedObject.
   159     "
       
   160     |client spec|
       
   161 
       
   162     clientHolder isNil ifTrue:[
       
   163         client := self application
       
   164     ] ifFalse:[
       
   165         client := clientHolder value
       
   166     ].
       
   167 
       
   168     specHolder isNil ifTrue:[
       
   169         spec := #windowSpec
       
   170     ] ifFalse:[
       
   171         spec := specHolder value
       
   172     ].
       
   173     (client notNil and:[spec notNil]) ifTrue:[
       
   174         self client:client spec:spec
       
   175     ] ifFalse:[
       
   176         self client:nil
       
   177     ]
   160 
   178 
   161 
   179 
   162 ! !
   180 ! !
   163 
   181 
   164 !SubCanvas methodsFor:'initialization'!
   182 !SubCanvas methodsFor:'initialization'!
   183 ! !
   201 ! !
   184 
   202 
   185 !SubCanvas class methodsFor:'documentation'!
   203 !SubCanvas class methodsFor:'documentation'!
   186 
   204 
   187 version
   205 version
   188     ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.4 1997-10-12 11:29:49 ca Exp $'
   206     ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.5 1997-10-15 10:31:52 ca Exp $'
   189 ! !
   207 ! !