Tools__ViewTreeApplication.st
changeset 3532 12b7b904b5e1
parent 3525 5df4da794cd2
child 3551 94a23bbd725b
equal deleted inserted replaced
3531:cf715db898dd 3532:12b7b904b5e1
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 2007 by eXept Software AG
     4  COPYRIGHT (c) 2007 by eXept Software AG
     3 	      All Rights Reserved
     5 	      All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
  3165 !ViewTreeInspectorApplication::ViewTreeItem methodsFor:'operations update'!
  3167 !ViewTreeInspectorApplication::ViewTreeItem methodsFor:'operations update'!
  3166 
  3168 
  3167 updateChildren
  3169 updateChildren
  3168     |queue|
  3170     |queue|
  3169 
  3171 
  3170     queue := OrderedCollection new.
  3172     queue := OrderedCollection with:self.
  3171     queue add:self.
       
  3172 
  3173 
  3173     self criticalDo:[
  3174     self criticalDo:[
  3174 	[queue notEmpty] whileTrue:[
  3175         [queue notEmpty] whileTrue:[
  3175 	    |toRemove  elProcessed|
  3176             |toRemove  elProcessed|
  3176 
  3177 
  3177 	    elProcessed := queue removeFirst.
  3178             elProcessed := queue removeFirst.
  3178 	    toRemove := nil.
  3179             toRemove := nil.
  3179 	    elProcessed nonCriticalDo:[:el|
  3180             elProcessed nonCriticalDo:[:el|
  3180 		el exists ifTrue:[
  3181                 el exists ifTrue:[
  3181 		    queue add:el.
  3182                     queue add:el.
  3182 		] ifFalse:[
  3183                 ] ifFalse:[
  3183 		    toRemove isNil ifTrue:[toRemove := OrderedCollection new].
  3184                     toRemove isNil ifTrue:[toRemove := OrderedCollection new].
  3184 		    toRemove add:el.
  3185                     toRemove add:el.
  3185 		]
  3186                 ]
  3186 	    ].
  3187             ].
  3187 	    toRemove notNil ifTrue:[
  3188             toRemove notNil ifTrue:[
  3188 		toRemove do:[:el| elProcessed remove:el ].
  3189                 toRemove do:[:el| elProcessed remove:el ].
  3189 	    ].
  3190             ].
  3190 	].
  3191         ].
  3191     ].
  3192     ].
  3192 !
  3193 !
  3193 
  3194 
  3194 updateFromChildren:mergedList
  3195 updateFromChildren:mergedList
  3195     "update my children against the list of items derived from
  3196     "update my children against the list of items derived from