Torsten Bergmann uploaded a new version of HelpSystem-Core to project The Trunk:
http://source.squeak.org/trunk/HelpSystem-Core-tbn.53.mcz ==================== Summary ==================== Name: HelpSystem-Core-tbn.53 Author: tbn Time: 1 October 2010, 12:11:03.269 am UUID: cffd5e9f-f4db-224d-b40d-7fdab1718a39 Ancestors: HelpSystem-Core-tbn.52 Custom help books are now able to define where subbooks should be placed/displayed See also http://code.google.com/p/pharo/issues/detail?id=3022 and thanx to Enrico Spinielli for the idea and initial implementation. =============== Diff against HelpSystem-Core-tbn.52 =============== Item was changed: ----- Method: CustomHelpHelpBuilder>>createTopicFrom: (in category 'private') ----- createTopicFrom: aDescription + "Create a topic from a description stored on a class. + aDescription can specify (via #pages) the name of a class and not + only a selector. This allows for hierarchies with 'subtrees in the middle'" - "Create a topic from a description stored on a class" + |topic page pageClasses | - |topic page method pragma | topic := HelpTopic named: aDescription bookName. topic key: aDescription key. + topic icon: aDescription icon. + pageClasses := Set new. + aDescription pages do: [:pageSelectorOrClass| + page:= (Smalltalk hasClassNamed: pageSelectorOrClass asString) + ifFalse: [aDescription perform: pageSelectorOrClass] + ifTrue: [pageClasses add: (Smalltalk classNamed: pageSelectorOrClass asString). + (Smalltalk classNamed: pageSelectorOrClass asString) asHelpTopic]. - topic icon: aDescription icon. - aDescription pages do: [:pageSelector| - page := aDescription perform: pageSelector. topic addSubtopic: page. ]. + ((aDescription subclasses asSet) + removeAllFoundIn: pageClasses; + yourself) do: [:subclass | topic subtopics add: subclass asHelpTopic ]. - aDescription subclasses do: [:subclass | - topic subtopics add: subclass asHelpTopic ]. ^topic! Item was changed: ----- Method: HelpHowToHelpTopicsFromCode classSide>>pages (in category 'accessing') ----- pages + ^#(overview step1 step2 step3 step4 step5 step6 step7)! - ^#(overview step1 step2 step3 step4 step5)! Item was added: + ----- Method: HelpHowToHelpTopicsFromCode classSide>>step6 (in category 'pages') ----- + step6 + ^HelpTopic + title: 'Step 6 - Add more structure' + contents: + 'STEP 6 - ADD MORE STRUCTURE + + If you add a new subclass to your custom help class and repeating step 2 to 4 you can + profide new substructures (subbooks) since the help books are mapped to the + class hierarchy. Example: + + MyAppHelp subclass: #MyAppTutorial + instanceVariableNames: '''' + classVariableNames: '''' + poolDictionaries: '''' + category: ''MyApp-Help'' + + then implement a #bookName, the pages and a #pages method as before on this new + class and reopen the help browser. + ' + ! Item was added: + ----- Method: HelpHowToHelpTopicsFromCode classSide>>step7 (in category 'pages') ----- + step7 + ^HelpTopic + title: 'Step 7 - Tips and Tricks' + contents: + 'STEP 7 - TIPS AND TRICKS + + Tip1: + If you implement the #pages method you can also + use the name of a custom help class that should be + integrated between the specific pages: + + #pages + ^(firstPage MyAppTutorial secondPage) + + Tip2: + You can easily edit the help contents of a page by + using the #edit: message. For our example just evaluate: + + MyAppHelp edit: #firstPage + + This will open a workspace with the help contents and + when you accept it it will be saved back to the help + method defining the topic. + + + ' + ! |
Free forum by Nabble | Edit this page |