ResourceSelectionBrowser.st
changeset 733 6454aaabda51
parent 730 238d796c5da0
child 746 8b3532f50ea9
equal deleted inserted replaced
732:9320f2f0ae6e 733:6454aaabda51
    11 "
    11 "
    12 
    12 
    13 
    13 
    14 SelectionBrowser subclass:#ResourceSelectionBrowser
    14 SelectionBrowser subclass:#ResourceSelectionBrowser
    15 	instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes
    15 	instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes
    16 		allClasses classSelectionBlock'
    16 		allClasses classSelectionBlock classAndResourceSelectionProcess'
    17 	classVariableNames:''
    17 	classVariableNames:''
    18 	poolDictionaries:''
    18 	poolDictionaries:''
    19 	category:'Interface-Dialogs'
    19 	category:'Interface-Dialogs'
    20 !
    20 !
    21 
    21 
   514 
   514 
   515 !ResourceSelectionBrowser methodsFor:'instance creation'!
   515 !ResourceSelectionBrowser methodsFor:'instance creation'!
   516 
   516 
   517 openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
   517 openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
   518 
   518 
   519     |cls clsName|
   519     |clsName|
   520     resourceMethod := aSelector.
   520     resourceMethod := aSelector.
   521     resourceTypes := aResourceTypes.
   521     resourceTypes := aResourceTypes.
   522     resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
   522     resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
   523     resourceClass := aClassOrSymbol isClass 
   523     resourceClass := aClassOrSymbol isClass 
   524         ifTrue: [aClassOrSymbol name] 
   524         ifTrue: [aClassOrSymbol name] 
   527             ifFalse: [nil]].      
   527             ifFalse: [nil]].      
   528     self valueOfSelector value:(aSelector ? '').
   528     self valueOfSelector value:(aSelector ? '').
   529 
   529 
   530     self open.
   530     self open.
   531 
   531 
   532     clsName := (self selectionOfClass value name upTo: $ ) asSymbol.
   532     (clsName := self selectionOfClass value) isNil ifTrue: [^nil].
   533 
   533     clsName := (clsName name upTo: $ ) asSymbol.
   534     (self selectionOfClass value notNil and:
   534 
   535     [(cls := Smalltalk at: clsName) isClass and:
   535     ((Smalltalk at: clsName) isClass and: [accept value]) 
   536     [accept value]]) 
       
   537     ifTrue:
   536     ifTrue:
   538     [            
   537     [            
   539         ^clsName, ' ', self valueOfSelector value
   538         ^clsName, ' ', self valueOfSelector value
   540     ].
   539     ].
   541     ^nil
   540     ^nil
   544 !ResourceSelectionBrowser methodsFor:'startup / release'!
   543 !ResourceSelectionBrowser methodsFor:'startup / release'!
   545 
   544 
   546 closeCancel
   545 closeCancel
   547 
   546 
   548     resourceMethod := nil.
   547     resourceMethod := nil.
       
   548     classAndResourceSelectionProcess notNil ifTrue: [classAndResourceSelectionProcess terminate].
   549     super closeCancel
   549     super closeCancel
   550 
   550 
   551 
   551 
   552 
   552 
   553 !
   553 !
   595         classSelectionBlock value: self classNameInputField contents
   595         classSelectionBlock value: self classNameInputField contents
   596     ].
   596     ].
   597     self listOfClassesView validateDoubleClickBlock: [:aTreeItem | aTreeItem contents ~~ self treeViewContents].
   597     self listOfClassesView validateDoubleClickBlock: [:aTreeItem | aTreeItem contents ~~ self treeViewContents].
   598     self listOfClassesView selectedNodeExpand: true.
   598     self listOfClassesView selectedNodeExpand: true.
   599 
   599 
       
   600     classAndResourceSelectionProcess := 
   600     [
   601     [
   601         [classSelectionBlock value: classSelection] value.
   602         [classSelectionBlock value: classSelection] value.
   602         self selectionOfResource value: (self listOfResources detect: [:m| m selector == resourceMethod] ifNone: nil)
   603         self selectionOfResource value: (self listOfResources detect: [:m| m selector == resourceMethod] ifNone: nil).
       
   604         classAndResourceSelectionProcess := nil
   603     ]
   605     ]
   604     forkAt: 4.
   606     forkAt: 4.
   605 
   607 
   606     ^super postBuildWith:aBuilder
   608     ^super postBuildWith:aBuilder
   607 
   609