--- a/ResourceSelectionBrowser.st Mon Jan 26 13:53:41 1998 +0100
+++ b/ResourceSelectionBrowser.st Mon Jan 26 15:59:20 1998 +0100
@@ -12,7 +12,8 @@
SelectionBrowser subclass:#ResourceSelectionBrowser
- instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes'
+ instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes
+ allClasses'
classVariableNames:''
poolDictionaries:''
category:'Interface-Advanced-Tools'
@@ -87,11 +88,11 @@
#'window:'
#(#WindowSpec
#'name:' 'Resource Browser'
- #'layout:' #(#LayoutFrame 195 0 357 0 606 0 656 0)
+ #'layout:' #(#LayoutFrame 315 0 311 0 726 0 610 0)
#'label:' 'Resource Browser'
#'min:' #(#Point 400 300)
#'max:' #(#Point 1152 864)
- #'bounds:' #(#Rectangle 195 357 607 657)
+ #'bounds:' #(#Rectangle 315 311 727 611)
#'usePreferredExtent:' false
)
#'component:'
@@ -147,6 +148,7 @@
#'miniScrollerHorizontal:' true
#'dataList:' #listOfResources
#'useIndex:' false
+ #'has3Dsepartors:' true
#'doubleClickSelector:' #resourceDoubleClicked
#'valueChangeSelector:' #resourceSelected
#'verticalSpacing:' 1
@@ -154,7 +156,6 @@
#(
#(#DataSetColumnSpec
#'width:' 20
- #'height:' 24
#'printSelector:' #'iconOn:'
#'canSelect:' false
)
@@ -277,6 +278,7 @@
|clsName|
resourceTypes isNil ifTrue: [resourceTypes := #(canvas menu image fileImage)].
clsName := self listOfClassesView list at: anIndex.
+ self valueOfClassName value: clsName.
self class lastSelection: clsName.
self listOfResources contents:
((Smalltalk at: clsName)
@@ -304,12 +306,30 @@
postBuildWith:aBuilder
|classSelection classSelectionBlock|
-
+ allClasses := Smalltalk allClasses asArray.
classSelection := self class lastSelection ? resourceClass ? #Object.
- classSelectionBlock := [:cls|
- self listOfClassesView selectFromListOfNames:
- (((Smalltalk at: cls asSymbol ifAbsent: [Object]))
- withAllSuperclasses reverse collect: [:cls| cls name asString])].
+ classSelectionBlock :=
+ [:clsPattern|
+ |foundClass classes|
+ ((foundClass := Smalltalk at: clsPattern asSymbol) isNil or:
+ [foundClass name ~= clsPattern])
+ ifTrue:
+ [
+ classes := allClasses select: [:cls| cls name size >= clsPattern size].
+ 1 to: clsPattern size do:
+ [:i|
+ classes := classes select: [:cls| (cls name at: i) == (clsPattern at: i)].
+ ].
+ foundClass := classes at: 1 ifAbsent: [nil]
+ ].
+ foundClass notNil
+ ifTrue:
+ [
+ self listOfClassesView selectFromListOfNames: (foundClass
+ withAllSuperclasses reverse collect: [:cls| cls name asString])
+ ].
+ self valueOfClassName value: clsPattern
+ ].
classSelectionBlock value: classSelection.
self valueOfClassName value: classSelection.
self classNameInputField entryCompletionBlock:
@@ -317,9 +337,7 @@
|what|
what := Smalltalk classnameCompletion: value withoutSpaces.
self classNameInputField contents:what first.
- (what at:2) size ~~ 1 ifTrue:[
- Display beep
- ].
+ (what at:2) size ~~ 1 ifTrue:[Display beep].
classSelectionBlock value: self classNameInputField contents
].
^super postBuildWith:aBuilder