[squeak-dev] The Inbox: HelpSystem-Core-kfr.59.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jul 5 14:57:01 UTC 2014


A new version of HelpSystem-Core was added to project The Inbox:
http://source.squeak.org/inbox/HelpSystem-Core-kfr.59.mcz

==================== Summary ====================

Name: HelpSystem-Core-kfr.59
Author: kfr
Time: 29 June 2014, 9:53:04.669 pm
UUID: cb93ef4f-12d3-ea46-b92f-eaa54938646d
Ancestors: HelpSystem-Core-kfr.58

Edit and accecept in help browser pane.
Browser is refreshed/reset on accept and current location is lost! I'll se if I can find a work around.

=============== Diff against HelpSystem-Core-kfr.58 ===============

Item was changed:
  Object subclass: #HelpBrowser
+ 	instanceVariableNames: 'rootTopic window treeMorph contentMorph topicClass topicMethod topic'
- 	instanceVariableNames: 'rootTopic window treeMorph contentMorph'
  	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>>accept: (in category 'actions') -----
+ accept: text
+ 	"Accept edited text. Compile it into a HelpTopic"
+ 
+ 	| code |
+ 	code := String streamContents:[:s|
+ 		s nextPutAll: topicMethod.
+ 		s crtab; nextPutAll: '"This method was automatically generated. Edit it using:"'.
+ 		s crtab; nextPutAll: '"', self name,' edit: ', topicMethod storeString,'"'.
+ 		s crtab; nextPutAll: '^HelpTopic'.
+ 		s crtab: 2; nextPutAll: 'title: ', topic title storeString.
+ 		s crtab: 2; nextPutAll: 'contents: '.
+ 		s cr; nextPutAll: (String streamContents:[:c| c nextChunkPutWithStyle: text]) storeString.
+ 		s nextPutAll:' readStream nextChunkText'.
+ 	].
+ 
+ 	topicClass class
+ 		compile: code
+ 		classified: ((topicClass class organization categoryOfElement: topicMethod) ifNil:['pages']).
+ 	self refresh.
+     !

Item was changed:
  ----- Method: HelpBrowser>>codePaneMenu:shifted: (in category 'events') -----
  codePaneMenu: aMenu shifted: shifted
- aMenu
- 		add: 'edit' target: self selector: #editContents argument: self.
  
  	^StringHolder codePaneMenu: aMenu shifted: shifted.
  !

Item was removed:
- ----- Method: HelpBrowser>>editContents (in category 'actions') -----
- editContents
- 	| classList |
- 	classList := self find: contentMorph textMorph contents string. 
- 	classList first actualClass theNonMetaClass edit: classList first selector.
- 	self refresh!

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:.
  	window addMorph: treeMorph frame: (0 at 0 corner: 0.3 at 1).
  	
  	"Text"
  	contentMorph := self defaultViewerClass on: self 
+ 			text: nil accept: #accept:
- 			text: nil accept: nil
  			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. 
+ 	classList ifNotEmpty:[
+ 	topicClass := classList first actualClass theNonMetaClass. 
+ 	topicMethod := classList first selector]!
- 	contentMorph setText: anItem contents!



More information about the Squeak-dev mailing list