UIHelpTool.st
changeset 1198 6b7cfe55105b
parent 1184 c67bdfe67afd
child 1243 03c4a3e4ddd2
equal deleted inserted replaced
1197:ef91ed58b7d4 1198:6b7cfe55105b
   756 
   756 
   757     |helpSpecSuperClass superHelpSpecKeys helpSpec|
   757     |helpSpecSuperClass superHelpSpecKeys helpSpec|
   758 
   758 
   759     ((aClass class implements: specSelector)
   759     ((aClass class implements: specSelector)
   760     and: [(helpSpecSuperClass := aClass allSuperclasses detect: [:cls| cls class implements: specSelector] ifNone: nil) notNil])
   760     and: [(helpSpecSuperClass := aClass allSuperclasses detect: [:cls| cls class implements: specSelector] ifNone: nil) notNil])
   761     ifTrue:
   761     ifTrue:[                  
   762     [                  
       
   763         superHelpSpecKeys := helpSpecSuperClass helpSpec keys.
   762         superHelpSpecKeys := helpSpecSuperClass helpSpec keys.
   764         helpSpec := Dictionary new.
   763         helpSpec := Dictionary new.
   765         aClass helpSpec associationsDo:
   764         aClass helpSpec keysAndValuesDo:[:key :value |
   766         [:asso|
   765             (superHelpSpecKeys includes:key) ifFalse: [
   767             (superHelpSpecKeys includes: asso key) ifFalse: [helpSpec at: asso key put: asso value]
   766                 helpSpec at:key put:value
       
   767             ]
   768         ].          
   768         ].          
   769         ^dictionary := helpSpec
   769         ^ dictionary := helpSpec
   770     ].
   770     ].
   771     ^dictionary := Dictionary new 
   771     ^ dictionary := Dictionary new 
   772 !
   772 !
   773 
   773 
   774 findHelpSpecForKey: aHelpKey
   774 findHelpSpecForKey: aHelpKey
   775     "finds the help spec class including aHelpKey in its help dictionary and make it current"
   775     "finds the help spec class including aHelpKey in its help dictionary and make it current"
   776 
   776 
   777     |dictTemp|
   777     |dictTemp listOfHelpSpecClasses|
   778 
   778 
   779     aHelpKey isNil ifTrue: [^nil].
   779     aHelpKey isNil ifTrue: [^nil].
       
   780 
   780     dictTemp := dictionary.
   781     dictTemp := dictionary.
   781     self listOfHelpSpecClasses value do:
   782     listOfHelpSpecClasses := self listOfHelpSpecClasses.
   782     [:clsName|            
   783     listOfHelpSpecClasses value do:[:clsName|            
   783         (dictionary := dictionaries at: clsName ifAbsent: nil) isNil
   784         (dictionary := dictionaries at: clsName ifAbsent: nil) isNil ifTrue:[        
   784         ifTrue:
       
   785         [        
       
   786             dictionary := dictionaries at: clsName put: (self extractHelpSpecForClass: (Smalltalk at: clsName))
   785             dictionary := dictionaries at: clsName put: (self extractHelpSpecForClass: (Smalltalk at: clsName))
   787         ].
   786         ].
   788         (dictionary includesKey: aHelpKey asSymbol)  
   787         (dictionary includesKey: aHelpKey asSymbol) ifTrue:[            
   789         ifTrue:
       
   790         [            
       
   791             self updateList.
   788             self updateList.
   792             ^(builder componentAt: #listOfHelpSpecClassesView) selection: 
   789             ^(builder componentAt: #listOfHelpSpecClassesView) selection: 
   793                 (self listOfHelpSpecClasses value indexOf: clsName).
   790                 (listOfHelpSpecClasses value indexOf: clsName).
   794         ]
   791         ]
   795     ].
   792     ].
   796     dictionary := dictTemp
   793     dictionary := dictTemp
   797 
   794 
   798 
   795