[squeak-dev] The Inbox: HelpSystem-Core-kfr.60.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jul 2 19:25:11 UTC 2014
A new version of HelpSystem-Core was added to project The Inbox:
http://source.squeak.org/inbox/HelpSystem-Core-kfr.60.mcz
==================== Summary ====================
Name: HelpSystem-Core-kfr.60
Author: kfr
Time: 2 July 2014, 9:24:54.717 pm
UUID: 4aca0aab-3091-9245-ac35-efe868da9974
Ancestors: HelpSystem-Core-kfr.59
Add search to HelpBrowser
=============== Diff against HelpSystem-Core-kfr.59 ===============
Item was changed:
Object subclass: #HelpBrowser
+ instanceVariableNames: 'rootTopic window treeMorph contentMorph topicClass topicMethod topic result'
- instanceVariableNames: 'rootTopic window treeMorph contentMorph topicClass topicMethod topic'
classVariableNames: 'DefaultHelpBrowser'
poolDictionaries: ''
category: 'HelpSystem-Core-UI'!
!HelpBrowser commentStamp: 'tbn 3/8/2010 09:33' prior: 0!
A HelpBrowser is used to display a hierarchy of help topics and their contents.
Instance Variables
rootTopic: <HelpTopic>
window: <StandardWindow>
treeMorph: <PluggableTreeMorph>
contentMorph: <Morph>
rootTopic
- xxxxx
window
- xxxxx
treeMorph
- xxxxx
contentMorph
- xxxxx
!
Item was added:
+ ----- Method: HelpBrowser>>find (in category 'actions') -----
+ find
+ "Prompt the user for a string to search for, and search the receiver from the current selection onward for it."
+
+ | reply |
+ reply := UIManager default request: 'Find what? ' initialAnswer: ''.
+ reply size = 0 ifTrue: [
+ ^ self].
+ self findStringInHelpTopic: reply
+ !
Item was changed:
----- Method: HelpBrowser>>find: (in category 'actions') -----
find: aString
^SystemNavigation allMethodsSelect: [:method |
method hasLiteralSuchThat: [:lit |
(lit isString and: [lit isSymbol not]) and:
+ [lit includesSubstring: aString caseSensitive: false]]]
+ localTo: CustomHelp
- [lit includesSubstring: aString caseSensitive: true]]]
!
Item was added:
+ ----- Method: HelpBrowser>>findStringInHelpTopic: (in category 'actions') -----
+ findStringInHelpTopic: aString
+ | list |
+ result := OrderedCollection new.
+ list := treeMorph scroller submorphs collect: [ :each | each complexContents].
+ list do:[ : topic | self inSubtopic: topic find: aString ].
+ self onItemClicked: result first.
+ !
Item was added:
+ ----- Method: HelpBrowser>>inSubtopic:find: (in category 'actions') -----
+ inSubtopic: aTopic find: aString
+ ((aTopic asString includesSubString: aString)
+ or: [aTopic item contents asString includesSubString: aString])
+ ifTrue: [result add: aTopic item].
+ aTopic contents
+ do: [:sub | self inSubtopic: sub find: aString]!
Item was changed:
----- Method: HelpBrowser>>initWindow (in category 'initialize-release') -----
initWindow
window := SystemWindow labelled: 'Help Browser'.
window model: self.
"Tree"
treeMorph := PluggableTreeMorph new.
+ treeMorph model: self; setSelectedSelector: #onItemClicked:; getMenuSelector: #codePaneMenu:shifted:.
- treeMorph model: self; setSelectedSelector: #onItemClicked:.
window addMorph: treeMorph frame: (0 at 0 corner: 0.3 at 1).
"Text"
contentMorph := self defaultViewerClass on: self
text: nil accept: #accept:
readSelection: nil menu: #codePaneMenu:shifted:.
window addMorph: contentMorph frame: (0.3 at 0 corner: 1 at 1).
!
Item was changed:
----- Method: HelpBrowser>>onItemClicked: (in category 'events') -----
onItemClicked: anItem
| classList |
anItem isNil ifTrue: [^contentMorph setText: rootTopic asHelpTopic contents].
contentMorph setText: anItem contents.
topic := anItem.
+ classList := (self find: anItem contents) asOrderedCollection.
- classList := self find: anItem contents.
classList ifNotEmpty:[
topicClass := classList first actualClass theNonMetaClass.
+ topicMethod := classList first selector].
+ !
- topicMethod := classList first selector]!
More information about the Squeak-dev
mailing list
|