ResourceSelectionBrowser.st
changeset 517 91ff807d8a23
parent 504 1ff52096d1d3
child 523 eec155f1b037
equal deleted inserted replaced
516:d336effde882 517:91ff807d8a23
    57     "self
    57     "self
    58         request: 'Select A Resource Selector'
    58         request: 'Select A Resource Selector'
    59         onSuperclass: #ApplicationModel 
    59         onSuperclass: #ApplicationModel 
    60         andClass: #ToolApplicationModel 
    60         andClass: #ToolApplicationModel 
    61         andSelector: #saveIcon 
    61         andSelector: #saveIcon 
    62         withResourceTypes: #(canvas menu image) 
    62         withResourceTypes: #(image) 
    63     "
    63     "
    64 
    64 
    65     ^self new
    65     ^self new
    66         title: aTitle;
    66         title: aTitle;
    67         openOnSuperclass: aSuperclass
    67         openOnSuperclass: aSuperclass
   278     
   278     
   279     self selectionOfClass value isNil ifTrue: [^nil].
   279     self selectionOfClass value isNil ifTrue: [^nil].
   280     self withWaitCursorDo:
   280     self withWaitCursorDo:
   281     [
   281     [
   282         |clsName|
   282         |clsName|
   283         resourceTypes isNil ifTrue: [resourceTypes := #(canvas menu image fileImage)].
   283         resourceTypes isNil ifTrue: [resourceTypes := Method resourceTypes].
   284         clsName := self listOfClassesView list at: anIndex.
   284         clsName := self listOfClassesView list at: anIndex.
   285         self valueOfClassName value: clsName.
   285         self valueOfClassName value: clsName.
   286         self class lastSelection: clsName.
   286         self class lastSelection: clsName.
   287         self listOfResources contents:
   287         self listOfResources contents:
   288             ((Smalltalk at: clsName) 
   288             ((Smalltalk at: clsName) 
   289                 class methodDictionary
   289                 class methodDictionary
   290                 asOrderedCollection select: 
   290                 asOrderedCollection select: 
   291                     [:m| m resources notNil and: [resourceTypes includes: m resourceType]]).
   291                     [:m|m resources notNil and: [resourceTypes includes: m resourceType]]).
   292     ]
   292     ]
   293 !
   293 !
   294 
   294 
   295 resourceDoubleClicked
   295 resourceDoubleClicked
   296 
   296 
   309 
   309 
   310 postBuildWith:aBuilder
   310 postBuildWith:aBuilder
   311 
   311 
   312     |classSelection classSelectionBlock|
   312     |classSelection classSelectionBlock|
   313     allClasses := Smalltalk allClasses asArray.
   313     allClasses := Smalltalk allClasses asArray.
   314     classSelection := self class lastSelection ? resourceClass ? #Object.
   314     classSelection :=  resourceClass ? self class lastSelection ? #Object.
   315     classSelectionBlock := 
   315     classSelectionBlock := 
   316     [:clsPattern|                                  
   316     [:clsPattern|                                  
   317         |foundClass classes|         
   317         |foundClass classes|         
   318         ((foundClass := Smalltalk at: clsPattern asSymbol) isNil or:
   318         ((foundClass := Smalltalk at: clsPattern asSymbol) isNil or:
   319         [foundClass name ~= clsPattern])
   319         [foundClass name ~= clsPattern])
   334         ].
   334         ].
   335         self valueOfClassName value: clsPattern
   335         self valueOfClassName value: clsPattern
   336     ].
   336     ].
   337     classSelectionBlock value: classSelection.
   337     classSelectionBlock value: classSelection.
   338     self valueOfClassName value: classSelection.
   338     self valueOfClassName value: classSelection.
       
   339     self selectionOfResource value: (self listOfResources detect: [:m| m who methodSelector == resourceMethod] ifNone: nil).
   339     self classNameInputField entryCompletionBlock:
   340     self classNameInputField entryCompletionBlock:
   340     [:value|
   341     [:value|
   341         |what|
   342         |what|
   342         what := Smalltalk classnameCompletion: value withoutSpaces.
   343         what := Smalltalk classnameCompletion: value withoutSpaces.
   343         self classNameInputField contents:what first.
   344         self classNameInputField contents:what first.
   351 !ResourceSelectionBrowser methodsFor:'instance creation'!
   352 !ResourceSelectionBrowser methodsFor:'instance creation'!
   352 
   353 
   353 openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
   354 openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
   354 
   355 
   355     |cls sel|
   356     |cls sel|
       
   357     resourceMethod := aSelector.
   356     resourceTypes := aResourceTypes.
   358     resourceTypes := aResourceTypes.
   357     resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
   359     resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
   358     resourceClass := aClassOrSymbol isClass ifTrue: [aClassOrSymbol name] ifFalse: [aClassOrSymbol].
   360     resourceClass := aClassOrSymbol isClass ifTrue: [aClassOrSymbol name] ifFalse: [aClassOrSymbol].
   359     self valueOfSelector value:(aSelector ? '').
   361     self valueOfSelector value:(aSelector ? '').
   360 
   362 
   365           and:[accept value]]
   367           and:[accept value]]
   366     ) ifTrue:[
   368     ) ifTrue:[
   367         ^cls name, ' ', self valueOfSelector value
   369         ^cls name, ' ', self valueOfSelector value
   368     ].
   370     ].
   369     ^nil
   371     ^nil
   370 
       
   371     "Modified: / 26.1.1998 / 22:26:50 / stefan"
       
   372 ! !
   372 ! !
   373 
   373 
   374 !ResourceSelectionBrowser methodsFor:'startup / release'!
   374 !ResourceSelectionBrowser methodsFor:'startup / release'!
   375 
   375 
   376 closeCancel
   376 closeCancel