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 |