# HG changeset patch # User Claus Gittinger # Date 1139820876 -3600 # Node ID c4334704dc58cc018b65e82bc830bfe1800a66af # Parent cf8a54d02ac0381ab2ead2fee72f16a7174a3286 code cleanup & refactoring diff -r cf8a54d02ac0 -r c4334704dc58 ResourceSelectionBrowser.st --- 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: