class retrieval support added
authortz
Fri, 23 Jan 1998 17:10:59 +0100
changeset 467 ddb605aaf94a
parent 466 daba7254ed49
child 468 bb4e776b9210
class retrieval support added
ResourceSelectionBrowser.st
--- 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
 
 ! !