--- a/ResourceSelectionBrowser.st Fri Mar 13 23:33:15 1998 +0100
+++ b/ResourceSelectionBrowser.st Fri Mar 13 23:48:08 1998 +0100
@@ -13,7 +13,7 @@
SelectionBrowser subclass:#ResourceSelectionBrowser
instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes
- allClasses classSelectionBlock'
+ allClasses classSelectionBlock classAndResourceSelectionProcess'
classVariableNames:''
poolDictionaries:''
category:'Interface-Dialogs'
@@ -516,7 +516,7 @@
openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
- |cls clsName|
+ |clsName|
resourceMethod := aSelector.
resourceTypes := aResourceTypes.
resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
@@ -529,11 +529,10 @@
self open.
- clsName := (self selectionOfClass value name upTo: $ ) asSymbol.
+ (clsName := self selectionOfClass value) isNil ifTrue: [^nil].
+ clsName := (clsName name upTo: $ ) asSymbol.
- (self selectionOfClass value notNil and:
- [(cls := Smalltalk at: clsName) isClass and:
- [accept value]])
+ ((Smalltalk at: clsName) isClass and: [accept value])
ifTrue:
[
^clsName, ' ', self valueOfSelector value
@@ -546,6 +545,7 @@
closeCancel
resourceMethod := nil.
+ classAndResourceSelectionProcess notNil ifTrue: [classAndResourceSelectionProcess terminate].
super closeCancel
@@ -597,9 +597,11 @@
self listOfClassesView validateDoubleClickBlock: [:aTreeItem | aTreeItem contents ~~ self treeViewContents].
self listOfClassesView selectedNodeExpand: true.
+ classAndResourceSelectionProcess :=
[
[classSelectionBlock value: classSelection] value.
- self selectionOfResource value: (self listOfResources detect: [:m| m selector == resourceMethod] ifNone: nil)
+ self selectionOfResource value: (self listOfResources detect: [:m| m selector == resourceMethod] ifNone: nil).
+ classAndResourceSelectionProcess := nil
]
forkAt: 4.