[squeak-dev] The Inbox: Tools-fbs.315.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Mar 16 11:31:21 UTC 2011
A new version of Tools was added to project The Inbox:
http://source.squeak.org/inbox/Tools-fbs.315.mcz
==================== Summary ====================
Name: Tools-fbs.315
Author: fbs
Time: 16 March 2011, 11:31:01.535 am
UUID: 4574d03d-deea-3d42-9a6e-180f40459116
Ancestors: Tools-fbs.314
Browser's classListIndex is no more.
=============== Diff against Tools-fbs.314 ===============
Item was changed:
CodeHolder subclass: #Browser
+ instanceVariableNames: 'systemOrganizer classOrganizer metaClassOrganizer messageCategoryListIndex messageListIndex editSelection metaClassIndicated selectedSystemCategory selectedClassName'
- instanceVariableNames: 'systemOrganizer classOrganizer metaClassOrganizer classListIndex messageCategoryListIndex messageListIndex editSelection metaClassIndicated selectedSystemCategory selectedClassName'
classVariableNames: 'ListClassesHierarchically RecentClasses'
poolDictionaries: ''
category: 'Tools-Browser'!
!Browser commentStamp: '<historical>' prior: 0!
I represent a query path into the class descriptions, the software of the system.!
Item was changed:
----- Method: Browser>>classListIndex (in category 'class list') -----
classListIndex
"Answer the index of the current class selection."
+ ^ self classListIndexOf: self selectedClassName.!
- ^classListIndex!
Item was changed:
----- Method: Browser>>classListIndex: (in category 'class list') -----
classListIndex: anInteger
+ | newClassName |
+ newClassName := self classList at: anInteger ifAbsent: [ nil ].
+ newClassName := newClassName ifNotNil: [newClassName withoutLeadingBlanks asSymbol].
+ self selectClassNamed: newClassName.!
- "Set anInteger to be the index of the current class selection."
-
- | className currentMessageCategoryName currentMessageName |
- currentMessageCategoryName := [self selectedMessageCategoryName]
- on: Error
- do: [:ex| ex return: nil].
- currentMessageName := [self selectedMessageName]
- on: Error
- do: [:ex| ex return: nil].
-
- classListIndex := anInteger.
- selectedClassName := (self classList collect: [:each | each withoutLeadingBlanks]) at: classListIndex ifAbsent: [ nil ].
- self setClassOrganizer.
-
- "Try to reselect the category and/or selector if the new class has them."
- messageCategoryListIndex := self messageCategoryList
- indexOf: currentMessageCategoryName
- ifAbsent: [0].
- messageListIndex := messageCategoryListIndex = 0
- ifTrue: [0]
- ifFalse: [self messageList
- indexOf: currentMessageName
- ifAbsent: [0]].
-
- messageListIndex ~= 0 ifTrue:
- [self editSelection: #editMessage] ifFalse:
- [messageCategoryListIndex ~= 0 ifTrue:
- [self editSelection: #newMessage] ifFalse:
- [self classCommentIndicated
- ifTrue: []
- ifFalse: [self editSelection: (anInteger = 0
- ifTrue: [(metaClassIndicated or: [ self hasSystemCategorySelected not ])
- ifTrue: [#none]
- ifFalse: [#newClass]]
- ifFalse: [#editClass])]]].
- contents := nil.
- self selectedClass isNil
- ifFalse: [className := self selectedClass name.
- (RecentClasses includes: className)
- ifTrue: [RecentClasses remove: className].
- RecentClasses addFirst: className.
- RecentClasses size > 16
- ifTrue: [RecentClasses removeLast]].
- self changed: #classSelectionChanged.
- self changed: #classCommentText.
- self changed: #classListIndex. "update my selection"
- self changed: #messageCategoryList.
- self changed: #messageList.
- self changed: #relabel.
- self contentsChanged!
Item was changed:
----- Method: Browser>>renameCategory (in category 'message category functions') -----
renameCategory
"Prompt for a new category name and add it before the
current selection, or at the end if no current selection"
| oldIndex oldName newName |
self hasClassSelected ifFalse: [^ self].
self okToChange ifFalse: [^ self].
(oldIndex := messageCategoryListIndex) = 0 ifTrue: [^ self].
oldName := self selectedMessageCategoryName.
newName := self
request: 'Please type new category name'
initialAnswer: oldName.
newName isEmpty
ifTrue: [^ self]
ifFalse: [newName := newName asSymbol].
newName = oldName ifTrue: [^ self].
self classOrMetaClassOrganizer
renameCategory: oldName
toBe: newName.
+ self selectClassNamed: selectedClassName.
- self classListIndex: classListIndex.
self messageCategoryListIndex: oldIndex.
self changed: #messageCategoryList.
!
Item was changed:
----- Method: Browser>>selectClass: (in category 'class list') -----
selectClass: classNotMeta
+ ^ self selectClassNamed:
+ (classNotMeta
+ ifNil: [ nil ]
+ ifNotNil: [ classNotMeta name ]).!
- self selectClassNamed: classNotMeta name.!
Item was changed:
----- Method: Browser>>selectClassNamed: (in category 'class list') -----
selectClassNamed: aSymbolOrString
+ | className currentMessageCategoryName currentMessageName |
+ currentMessageCategoryName := [self selectedMessageCategoryName]
+ on: Error
+ do: [:ex| ex return: nil].
+ currentMessageName := [self selectedMessageName]
+ on: Error
+ do: [:ex| ex return: nil].
+
selectedClassName := aSymbolOrString ifNotNil: [ aSymbolOrString asSymbol ].
+ self setClassOrganizer.
+
+ "Try to reselect the category and/or selector if the new class has them."
+ messageCategoryListIndex := self messageCategoryList
+ indexOf: currentMessageCategoryName
+ ifAbsent: [0].
+ messageListIndex := messageCategoryListIndex = 0
+ ifTrue: [0]
+ ifFalse: [self messageList
+ indexOf: currentMessageName
+ ifAbsent: [0]].
+
+ messageListIndex ~= 0 ifTrue:
+ [self editSelection: #editMessage] ifFalse:
+ [messageCategoryListIndex ~= 0 ifTrue:
+ [self editSelection: #newMessage] ifFalse:
+ [self classCommentIndicated
+ ifTrue: []
+ ifFalse: [self editSelection: (self hasClassSelected not
+ ifTrue: [(metaClassIndicated or: [ self hasSystemCategorySelected not ])
+ ifTrue: [#none]
+ ifFalse: [#newClass]]
+ ifFalse: [#editClass])]]].
+ contents := nil.
+ self selectedClass isNil
+ ifFalse: [className := self selectedClass name.
+ (RecentClasses includes: className)
+ ifTrue: [RecentClasses remove: className].
+ RecentClasses addFirst: className.
+ RecentClasses size > 16
+ ifTrue: [RecentClasses removeLast]].
+ self changed: #classSelectionChanged.
+ self changed: #classCommentText.
+ self changed: #classListIndex. "update my selection"
+ self changed: #messageCategoryList.
+ self changed: #messageList.
+ self changed: #relabel.
+ self contentsChanged!
- aSymbolOrString
- ifNil: [ self classListIndex: 0 ]
- ifNotNil: [ self classListIndex: (self classListIndexOf: selectedClassName) ]!
Item was changed:
----- Method: Browser>>selectSystemCategory: (in category 'system category list') -----
selectSystemCategory: aSymbol
"Set the selected system category. Update all other selections to be deselected."
selectedSystemCategory := aSymbol.
selectedClassName := nil.
- classListIndex := 0.
messageCategoryListIndex := 0.
messageListIndex := 0.
self editSelection: ( aSymbol isNil ifTrue: [#none] ifFalse: [#newClass]).
metaClassIndicated := false.
self setClassOrganizer.
contents := nil.
self changed: #systemCategorySelectionChanged.
self changed: #systemCategoryListIndex. "update my selection"
self changed: #classList.
self changed: #messageCategoryList.
self changed: #messageList.
self changed: #relabel.
self contentsChanged!
Item was changed:
----- Method: Browser>>selectedClassName (in category 'class list') -----
selectedClassName
+ ^ selectedClassName.!
- " ^ selectedClassName."
- | className |
- self classList ifNil: [ ^ nil ].
- className := self classList
- at: classListIndex
- ifAbsent: [^ nil].
- self class listClassesHierarchically ifTrue: [
- className := className withoutLeadingBlanks asSymbol].
- ^ className.!
Item was changed:
----- Method: Browser>>systemOrganizer: (in category 'initialize-release') -----
systemOrganizer: aSystemOrganizer
"Initialize the receiver as a perspective on the system organizer,
aSystemOrganizer. Typically there is only one--the system variable
SystemOrganization."
contents := nil.
systemOrganizer := aSystemOrganizer.
selectedSystemCategory := nil.
selectedClassName := nil.
- classListIndex := 0.
messageCategoryListIndex := 0.
messageListIndex := 0.
metaClassIndicated := false.
self setClassOrganizer.
self editSelection: #none.!
Item was changed:
----- Method: Browser>>veryDeepInner: (in category 'copying') -----
veryDeepInner: deepCopier
"Copy all of my instance variables. Some need to be not copied at all, but shared. See DeepCopier class comment."
super veryDeepInner: deepCopier.
"systemOrganizer := systemOrganizer. clone has the old value. we share it"
"classOrganizer := classOrganizer clone has the old value. we share it"
"metaClassOrganizer := metaClassOrganizer clone has the old value. we share it"
selectedSystemCategory := selectedSystemCategory veryDeepCopyWith: deepCopier.
selectedClassName := selectedClassName veryDeepCopyWith: deepCopier.
- classListIndex := classListIndex veryDeepCopyWith: deepCopier.
messageCategoryListIndex := messageCategoryListIndex veryDeepCopyWith: deepCopier.
messageListIndex := messageListIndex veryDeepCopyWith: deepCopier.
editSelection := editSelection veryDeepCopyWith: deepCopier.
metaClassIndicated := metaClassIndicated veryDeepCopyWith: deepCopier.
!
Item was changed:
----- Method: HierarchyBrowser>>initHierarchyForClass: (in category 'initialization') -----
initHierarchyForClass: aClassOrMetaClass
| nonMetaClass |
centralClass := aClassOrMetaClass.
nonMetaClass := aClassOrMetaClass theNonMetaClass.
self systemOrganizer: SystemOrganization.
metaClassIndicated := aClassOrMetaClass isMeta.
classDisplayList := OrderedCollection new.
self
flattenHierarchyTree: (self createHierarchyTreeOf: (nonMetaClass allSuperclasses, { nonMetaClass }, nonMetaClass allSubclasses))
on: classDisplayList
indent: ''
by: ' '.
self selectClass: nonMetaClass.!
Item was added:
+ ----- Method: HierarchyBrowser>>selectClassNamed: (in category 'initialization') -----
+ selectClassNamed: aSymbolOrString
+ | newClassName |
+ newClassName := aSymbolOrString ifNotNil: [ aSymbolOrString asSymbol ].
+ selectedSystemCategory := (systemOrganizer categories at:
+ (systemOrganizer numberOfCategoryOfElement: newClassName) ifAbsent: [ nil ]).
+
+ super selectClassNamed: newClassName.
+ self changed: #systemCategorySingleton.
+
+ ^ newClassName.!
More information about the Squeak-dev
mailing list
|