# HG changeset patch # User tz # Date 889829288 -3600 # Node ID 6454aaabda519d72486e203242d65175b7a29a96 # Parent 9320f2f0ae6e5d2bd64d91975ba5b6a6086fb6ec take care for those who do close very quickly diff -r 9320f2f0ae6e -r 6454aaabda51 ResourceSelectionBrowser.st --- 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.