--- a/ResourceSelectionBrowser.st Mon Feb 13 09:54:24 2006 +0100
+++ b/ResourceSelectionBrowser.st Mon Feb 13 09:54:36 2006 +0100
@@ -69,28 +69,24 @@
!ResourceSelectionBrowser class methodsFor:'instance creation'!
-request: aTitle onSuperclass: aSuperclass andClass: aClass andSelector: aSelector withResourceTypes: resourceTypes
- "opens a ResourceSelectionBrowser
- with aTitle
- on aSuperclassOrSymbol,
- and aClassOrSymbol,
- and aSelector,
- with allowed aResourceTypes"
+request:aTitle onSuperclass:aSuperclass andClass:aClassOrClassName andSelector:aSelector withResourceTypes:resourceTypes
+ "opens a ResourceSelectionBrowser; return a Message-object or nil."
+
+ ^ (self new
+ title: aTitle)
+ openOnSuperclass:aSuperclass
+ andClass:aClassOrClassName
+ andSelector:aSelector
+ withResourceTypes:resourceTypes
+
"
- ResourceSelectionBrowser
+ ResourceSelectionBrowser
request: 'Select a Resource Selector'
onSuperclass: #ApplicationModel
- andClass: #MenuEditor
+ andClassNamed: #MenuEditor
andSelector: #menuItemImage
withResourceTypes: #(image)
"
-
- ^self new
- title: aTitle;
- openOnSuperclass: aSuperclass
- andClass: aClass
- andSelector: aSelector
- withResourceTypes: resourceTypes
! !
!ResourceSelectionBrowser class methodsFor:'callbacks-default'!
@@ -704,11 +700,10 @@
|cls|
resourceSuperclass notNil ifTrue:[
- cls := Smalltalk at: resourceSuperclass.
+ cls := Smalltalk classNamed: resourceSuperclass.
].
cls notNil ifTrue:[^ cls].
^ self class treeViewClassHierarchyContents
-
!
validateDoubleClick: aTreeItem
@@ -735,7 +730,7 @@
ifFalse: [sel := self selectionOfClassCategories value].
sel notNil ifTrue:[
- resourceClass := sel name.
+ resourceClass := sel.
].
self updateResourceMethodList.
!
@@ -757,15 +752,15 @@
foundClass notNil ifTrue: [
foundClass := foundClass autoload.
- resourceClass := foundClass name.
+ resourceClass := foundClass.
ClassPresentation = #'Class Hierarchy' ifTrue: [
|searchArgs nonSuperclasses hierItem|
false "foundClass isPrivate"
ifFalse: [searchArgs := foundClass withAllSuperclasses reverse]
- ifTrue: [searchArgs := foundClass owningClass withAllSuperclasses reverse. searchArgs add: foundClass]
-.
+ ifTrue: [searchArgs := foundClass owningClass withAllSuperclasses reverse.
+ searchArgs add: foundClass].
(nonSuperclasses := self treeViewClassHierarchyContents allSuperclasses) notNil
ifTrue: [searchArgs := searchArgs reject: [:cls| nonSuperclasses includes: cls]].
@@ -809,13 +804,11 @@
|class className item|
- resourceClass notNil ifTrue:[
- class := Smalltalk at:resourceClass asSymbol.
- ].
- class isNil ifTrue:[
+ (class := resourceClass) isNil ifTrue:[
ClassPresentation = #'Class Hierarchy'
ifTrue: [item := self selectionOfClassHierarchy value ]
ifFalse: [item := self selectionOfClassCategories value ].
+
item notNil ifTrue:[
className := item name.
class := Smalltalk at:className asSymbol
@@ -848,37 +841,33 @@
!ResourceSelectionBrowser methodsFor:'instance creation'!
-openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
- "opens a ResourceSelectionBrowser on
- aSuperclassOrSymbol,
- and aClassOrSymbol,
- and aSelector,
- with allowed aResourceTypes"
+openOnSuperclass: aSuperclassOrSymbol andClass:aClassOrClassName andSelector: aSelector withResourceTypes: aResourceTypes
+ "opens a ResourceSelectionBrowser; return a Message-object or nil"
- |clsName clsNameString cls|
+ |selectedClass enteredClassName className cls|
resourceMethod := aSelector.
resourceTypes := aResourceTypes.
resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
resourceClass := nil.
- aClassOrSymbol isClass
- ifTrue: [cls := aClassOrSymbol. resourceClass := aClassOrSymbol name]
- ifFalse: [
- aClassOrSymbol size > 0 ifTrue:[
- (cls := Smalltalk at: aClassOrSymbol) notNil
- ifTrue: [resourceClass := aClassOrSymbol]
+ aClassOrClassName notNil ifTrue:[
+ aClassOrClassName isClass ifTrue: [
+ cls := aClassOrClassName.
+ resourceClass := aClassOrClassName
+ ] ifFalse: [
+ cls := Smalltalk classNamed: aClassOrClassName.
+ cls notNil ifTrue:[
+ resourceClass := cls
]
- ].
+ ]
+ ].
self valueOfResourceSelector value:(aSelector ? '').
- cls notNil ifTrue:[
- "/ TODO: update tree
- ].
self open.
- (clsName := self selectionOfClassHierarchy value) isNil ifTrue:[
- (clsName := self selectionOfClassCategories value) isNil ifTrue:[
- (clsNameString := self valueOfClassName value) isNil ifTrue:[
+ (selectedClass := self selectionOfClassHierarchy value) isNil ifTrue:[
+ (selectedClass := self selectionOfClassCategories value) isNil ifTrue:[
+ (enteredClassName := self valueOfClassName value) isNil ifTrue:[
accept value ifTrue:[
self warn:'No valid class selected/entered'.
].
@@ -887,13 +876,13 @@
]
].
- clsNameString isNil ifTrue:[
- clsNameString := clsName name upTo:Character space
+ className := enteredClassName.
+ className isNil ifTrue:[
+ className := selectedClass name
].
- clsNameString := clsNameString asSymbol.
-
- ((Smalltalk at: clsNameString) isClass and:[accept value]) ifTrue:[
- ^ clsNameString, ' ', self valueOfResourceSelector value
+ cls := Smalltalk classNamed:className.
+ (cls isClass and:[accept value]) ifTrue:[
+ ^ Method::MethodWhoInfo class:cls selector:(self valueOfResourceSelector value)
].
accept value ifTrue:[
@@ -913,15 +902,15 @@
|classSelection classNameInputField|
allClasses := self treeViewClassHierarchyContents withAllSubclasses reject: [:cls| cls isPrivate].
- classSelection := resourceClass.
+ classSelection := resourceClass isNil ifTrue:[nil] ifFalse:[resourceClass name].
- (classSelection isNil or:[Smalltalk at: classSelection]) isNil
+ (classSelection isNil or:[ (Smalltalk classNamed: classSelection) isNil])
ifTrue: [classSelection := self class lastSelection].
"/ (classSelection isNil or:[Smalltalk at: classSelection]) isNil
"/ ifTrue: [classSelection := self treeViewContents].
classSelectionBlock := [:clsPattern | self classSelectionUpdate:clsPattern].
- self valueOfClassName value: classSelection.
+ self valueOfClassName value:classSelection.
(classNameInputField := builder componentAt: #classNameInputField)
entryCompletionBlock: