--- a/ResourceSelectionBrowser.st Fri Jan 23 15:42:29 1998 +0100
+++ b/ResourceSelectionBrowser.st Fri Jan 23 17:10:59 1998 +0100
@@ -82,16 +82,16 @@
<resource: #canvas>
^
-
+
#(#FullSpec
#'window:'
#(#WindowSpec
#'name:' 'Resource Browser'
- #'layout:' #(#LayoutFrame 279 0 387 0 690 0 686 0)
+ #'layout:' #(#LayoutFrame 74 0 329 0 485 0 628 0)
#'label:' 'Resource Browser'
#'min:' #(#Point 400 300)
#'max:' #(#Point 1152 864)
- #'bounds:' #(#Rectangle 279 387 691 687)
+ #'bounds:' #(#Rectangle 74 329 486 629)
#'usePreferredExtent:' false
)
#'component:'
@@ -113,7 +113,7 @@
#(
#(#SelectionInTreeViewSpec
#'name:' 'listOfClassesView'
- #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+ #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -22 1.0)
#'model:' #selectionOfClass
#'hasHorizontalScrollBar:' true
#'hasVerticalScrollBar:' true
@@ -122,6 +122,11 @@
#'valueChangeSelector:' #'classSelected:'
#'hierarchicalList:' #listOfClasses
)
+ #(#InputFieldSpec
+ #'name:' 'classNameInputField'
+ #'layout:' #(#LayoutFrame 0 0.0 -22 1 0 1.0 0 1)
+ #'model:' #valueOfClassName
+ )
)
)
#'level:' -1
@@ -186,10 +191,16 @@
)
)
)
+
! !
!ResourceSelectionBrowser methodsFor:'accessing - views'!
+classNameInputField
+
+ ^builder componentAt: #classNameInputField
+!
+
listOfClassesView
^builder componentAt: #listOfClassesView
@@ -239,6 +250,15 @@
^ holder
!
+valueOfClassName
+
+ |holder|
+ (holder := builder bindingAt:#valueOfClassName) isNil ifTrue:[
+ builder aspectAt:#valueOfClassName put:(holder := '' asValue).
+ ].
+ ^ holder
+!
+
valueOfSelector
|holder|
@@ -284,10 +304,24 @@
postBuildWith:aBuilder
+ |classSelection classSelectionBlock|
+ classSelection := self class lastSelection ? resourceClass.
+ classSelectionBlock := [:cls|
self listOfClassesView selectFromListOfNames:
- (((Smalltalk at: self class lastSelection ? resourceClass ifAbsent: [Object]))
- withAllSuperclasses reverse collect: [:cls| cls name asString]).
-
+ (((Smalltalk at: cls asSymbol ifAbsent: [Object]))
+ withAllSuperclasses reverse collect: [:cls| cls name asString])].
+ classSelectionBlock value: classSelection.
+ self valueOfClassName value: classSelection.
+ self classNameInputField entryCompletionBlock:
+ [:value|
+ |what|
+ what := Smalltalk classnameCompletion: value withoutSpaces.
+ self classNameInputField contents:what first.
+ (what at:2) size ~~ 1 ifTrue:[
+ Display beep
+ ].
+ classSelectionBlock value: self classNameInputField contents
+ ].
^super postBuildWith:aBuilder
! !