[squeak-dev] The Trunk: ToolBuilder-Morphic-mt.249.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Nov 15 14:30:45 UTC 2019


Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.249.mcz

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

Name: ToolBuilder-Morphic-mt.249
Author: mt
Time: 15 November 2019, 3:30:45.29033 pm
UUID: 6b6d260a-1c67-0f45-95bf-92b28407acf2
Ancestors: ToolBuilder-Morphic-mt.248

Fixes missing initial selection in tree widgets.

(Makes inbox commit ToolBuilder-Morphic-ct.244 obsolete.)

=============== Diff against ToolBuilder-Morphic-mt.248 ===============

Item was changed:
  ----- Method: MorphicToolBuilder>>buildPluggableTree: (in category 'widgets required') -----
  buildPluggableTree: aSpec
  	| widget |
  	widget := self treeClass new.
  	self register: widget id: aSpec name.
+ 
  	widget model: aSpec model.
+ 	widget nodeClass: aSpec nodeClass.
+ 
+ 	widget getRootsSelector: aSpec roots.
+ 	widget getChildrenSelector: aSpec getChildren.
+ 	widget hasChildrenSelector: aSpec hasChildren.
+ 
+ 	widget getSelectedSelector: aSpec getSelected.
+ 	widget setSelectedSelector: aSpec setSelected.
  	widget getSelectedPathSelector: aSpec getSelectedPath.
  	widget setSelectedPathSelector: aSpec setSelectedPath.
+ 
- 	widget setSelectedSelector: aSpec setSelected.
- 	widget getSelectedSelector: aSpec getSelected.
  	widget setSelectedParentSelector: aSpec setSelectedParent.
+ 
- 	widget getChildrenSelector: aSpec getChildren.
- 	widget hasChildrenSelector: aSpec hasChildren.
  	widget getLabelSelector: aSpec label.
  	widget getIconSelector: aSpec icon.
  	widget getHelpSelector: aSpec help.
  	widget getMenuSelector: aSpec menu.
+ 
  	widget keystrokeActionSelector: aSpec keyPress.
- 	widget nodeClass: aSpec nodeClass.
- 	widget getRootsSelector: aSpec roots.
  	widget autoDeselect: aSpec autoDeselect.
  	widget doubleClickSelector: aSpec doubleClick.
  	
  	widget dropItemSelector: aSpec dropItem.
  	widget wantsDropSelector: aSpec dropAccept.
  	widget dragItemSelector: aSpec dragItem.
  	widget dragStartedSelector: aSpec dragStarted.
  	
  	widget columns: aSpec columns.
  	
  	"Override default scroll bar policies if needed. Widget will use preference values otherwise."
  	aSpec hScrollBarPolicy ifNotNil: [:policy |
  		policy caseOf: {
  			[#always] -> [widget alwaysShowHScrollBar].
  			[#never] -> [widget hideHScrollBarIndefinitely].
  			[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]. } ].
  	aSpec vScrollBarPolicy ifNotNil: [:policy |
  		policy caseOf: {
  			[#always] -> [widget alwaysShowVScrollBar].
  			[#never] -> [widget hideVScrollBarIndefinitely].
  			[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]. } ].	
  	
  	self setFrame: aSpec frame in: widget.
  	self setLayoutHintsFor: widget spec: aSpec.
  	
  	parent ifNotNil:[self add: widget to: parent].
  "	panes ifNotNil:[
  		aSpec roots ifNotNil:[panes add: aSpec roots].
  	].	"
  	^widget!

Item was added:
+ ----- Method: PluggableTreeMorph>>getSelectedPath (in category 'selection') -----
+ getSelectedPath
+ 	
+ 	^ self getSelectedPathSelector ifNotNil: [:sel | model perform: sel]!

Item was changed:
  ----- Method: PluggableTreeMorph>>getSelectedPathSelector: (in category 'accessing') -----
  getSelectedPathSelector: aSymbol
+ 	getSelectedPathSelector := aSymbol.
+ 	self update: getSelectedPathSelector.!
- 	getSelectedPathSelector := aSymbol.!

Item was changed:
  ----- Method: PluggableTreeMorph>>getSelectedSelector: (in category 'accessing') -----
  getSelectedSelector: aSymbol
+ 	getSelectionSelector := aSymbol.
+ 	self update: getSelectionSelector.!
- 	getSelectionSelector := aSymbol.!

Item was added:
+ ----- Method: PluggableTreeMorph>>selectPath: (in category 'selection') -----
+ selectPath: path
+ 
+ 	self
+ 		selectPath: path
+ 		in: (scroller submorphs at: 1 ifAbsent: [^self]).!

Item was changed:
  ----- Method: PluggableTreeMorph>>selectPath:in: (in category 'selection') -----
  selectPath: path in: listItem
+ 	path ifNil: [^self].
  	path isEmpty ifTrue: [^self setSelectedMorph: nil].
  	listItem withSiblingsDo: [:each | 
  		(each complexContents item = path first) ifTrue: [
  			each isExpanded ifFalse: [
  				each toggleExpandedState.
  				self adjustSubmorphPositions.
  			].
  			each changed.
  			path size = 1 ifTrue: [
  				^self setSelectedMorph: each
  			].
  			each firstChild ifNil: [^self setSelectedMorph: nil].
  			^self selectPath: path allButFirst in: each firstChild
  		].
  	].
  	^self setSelectedMorph: nil
  
  !

Item was changed:
  ----- Method: PluggableTreeMorph>>update: (in category 'updating') -----
  update: what
  	what ifNil:[^self].
  	what == getRootsSelector ifTrue:[
  		self wrapRoots: (model perform: getRootsSelector).
  		^ self].
  	
  	what == getSelectedPathSelector ifTrue:[
+ 		self selectPath: self getSelectedPath.
- 		self
- 			selectPath: (model perform: getSelectedPathSelector)
- 			in: (scroller submorphs at: 1 ifAbsent: [^self]).
  		^ self].
  		
  	what == #expandRootsRequested ifTrue: [
  		self expandRoots.
  		^ self].
  	
  	super update: what.
  !



More information about the Squeak-dev mailing list