[squeak-dev] The Trunk: Tools-fbs.349.mcz

commits at source.squeak.org commits at source.squeak.org
Fri May 6 21:12:28 UTC 2011


Nicolas Cellier uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-fbs.349.mcz

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

Name: Tools-fbs.349
Author: fbs
Time: 6 May 2011, 12:10:17.399 pm
UUID: 0e8ecce7-231c-e940-9ec9-cb20ab24572d
Ancestors: Tools-cmm.348

M7628 ("DependencyBrowser "browse" button doesn't work").

The commit contains one spurious change: the class comment doesn't actually change, but I can't revert the class comment (see http://bugs.squeak.org/view.php?id=7634).

=============== Diff against Tools-cmm.348 ===============

Item was changed:
  CodeHolder subclass: #DependencyBrowser
  	instanceVariableNames: 'packageList packageDeps classDeps classList messageList packageListIndex packageDepsIndex classDepsIndex classListIndex messageListIndex'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Tools-Browser'!
  
+ !DependencyBrowser commentStamp: 'fbs 5/6/2011 11:29' prior: 0!
- !DependencyBrowser commentStamp: 'ar 3/2/2010 22:19' prior: 0!
  A simple dependency browser showing five panes:
  [1]: Packages: The list of available packages in the system.
  [2]: Package Dependencies: The dependent packages of the currently selected package.
  [3]: Class Dependencies: The classes causing the dependencies.
  [4]: Class List: The classes introducing the dependencies.
+ [5]: Messages: The messages introducing the dependencies.!
- [5]: Messages: The messages introducing the dependencies.
- !

Item was changed:
  ----- Method: DependencyBrowser>>classDeps (in category 'class deps') -----
  classDeps
  	"Class dependencies for the currently selected package"
+ 	packageDeps ifNil: [^ #()].
+ 	^ (packageDeps at: self packageDepsSelection ifAbsent:[#()]) sort.
+ !
- 	^(packageDeps at: self packageDepsSelection ifAbsent:[#()]) sort!

Item was changed:
  ----- Method: DependencyBrowser>>classList (in category 'class list') -----
  classList
  	"List of classes that refer to dependencies"
+ 	classDeps ifNil: [^ #()].
+ 	
+ 	"classList stores the actual classes displayed in my class list, corresponding to the collection of Strings returned by self classList. This allows us to unambiguously determine the class or metaclass currently being browsed simply by knowing the index of the selected class."
+ 	classList := ((classDeps at: self classDepsSelection ifAbsent:[#()]) 
+ 		collect:[:mref| mref actualClass] as: Set) asArray sort: [:a :b | a name < b name].
+ 		
+ 	^ classList collect: #name.!
- 	^((classDeps at: self classDepsSelection ifAbsent:[#()]) 
- 		collect:[:mref| mref classSymbol] as: Set) asArray sort!

Item was added:
+ ----- Method: DependencyBrowser>>hasPackageSelected (in category 'package list') -----
+ hasPackageSelected
+ 	^ packageListIndex > 0.!

Item was added:
+ ----- Method: DependencyBrowser>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	packageListIndex := 0.
+ 	packageDepsIndex := 0.
+ 	classDepsIndex := 0.
+ 	classListIndex := 0.
+ 	messageListIndex := 0.!

Item was changed:
  ----- Method: DependencyBrowser>>messageList (in category 'message list') -----
  messageList
  	"List of messages creating dependencies"
  	| selectedClass |
+ 	classDeps ifNil: [^ #()].
+ 	
  	selectedClass := self classListSelection.
  	^((classDeps at: self classDepsSelection ifAbsent:[#()]) 
+ 		select:[:each| each actualClass name = selectedClass]
- 		select:[:each| each classSymbol = selectedClass]
  		thenCollect:[:mref| mref methodSymbol]) asArray sort!

Item was added:
+ ----- Method: DependencyBrowser>>selectedClass (in category 'class list') -----
+ selectedClass
+ 	"Answer the class that is currently selected. Answer nil if no selection 
+ 	exists."
+ 	
+ 	| name envt |
+ 	(name := self selectedClassName) ifNil: [^ nil].
+ 	(envt := self selectedEnvironment) ifNil: [^ nil].
+ 	^ envt at: name ifAbsent: [nil]!

Item was added:
+ ----- Method: DependencyBrowser>>selectedClassName (in category 'class list') -----
+ selectedClassName
+ 	| idx |
+ 	idx := classListIndex ifNil: [0].
+ 	^ self classList ifNotNil: [ :l | l at: idx ifAbsent: [nil]]!

Item was added:
+ ----- Method: DependencyBrowser>>selectedClassOrMetaClass (in category 'class list') -----
+ selectedClassOrMetaClass
+ 	"Answer the class or metaclass that is currently selected. Answer nil if no selection 
+ 	exists."
+ 	classList ifNil: [^nil].
+ 	^ classList at: classListIndex ifAbsent: [nil].!

Item was added:
+ ----- Method: DependencyBrowser>>selectedEnvironment (in category 'accessing') -----
+ selectedEnvironment
+ 	"Answer the name of the selected package or nil."
+ 
+ 	self hasPackageSelected ifFalse: [^nil].
+ 	^ Smalltalk!

Item was added:
+ ----- Method: DependencyBrowser>>selectedMessageName (in category 'message list') -----
+ selectedMessageName
+ 	^ self messageList at: messageListIndex ifAbsent: [nil]!

Item was changed:
  ----- Method: StringHolder>>browseMethodFull (in category '*Tools') -----
  browseMethodFull
  	"Create and schedule a full Browser and then select the current class and message."
  
  	| myClass |
+ 	^ (myClass := self selectedClassOrMetaClass) ifNotNil:
- 	(myClass := self selectedClassOrMetaClass) ifNotNil:
  		[Browser fullOnClass: myClass selector: self selectedMessageName]!




More information about the Squeak-dev mailing list