MethodFinderWindow.st
changeset 2886 ba035714bf27
parent 2859 118c4294d9cd
child 2887 01e4c1a45e35
equal deleted inserted replaced
2885:b0e2db45664a 2886:ba035714bf27
    46     "
    46     "
    47 
    47 
    48     <resource: #canvas>
    48     <resource: #canvas>
    49 
    49 
    50     ^ 
    50     ^ 
    51      #(#FullSpec
    51      #(FullSpec
    52         #name: #windowSpec
    52         name: windowSpec
    53         #window: 
    53         window: 
    54        #(#WindowSpec
    54        (WindowSpec
    55           #label: 'MethodFinder'
    55           label: 'MethodFinder'
    56           #name: 'MethodFinder'
    56           name: 'MethodFinder'
    57           #bounds: #(#Rectangle 13 23 563 423)
    57           bounds: (Rectangle 0 0 550 400)
    58           #menu: #menu
    58           menu: menu
    59           #forceRecursiveBackground: false
       
    60         )
    59         )
    61         #component: 
    60         component: 
    62        #(#SpecCollection
    61        (SpecCollection
    63           #collection: #(
    62           collection: (
    64            #(#VariableHorizontalPanelSpec
    63            (VariableHorizontalPanelSpec
    65               #name: 'VariableHorizontalPanel1'
    64               name: 'VariableHorizontalPanel1'
    66               #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
    65               layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
    67               #snapMode: #both
    66               snapMode: both
    68               #component: 
    67               component: 
    69              #(#SpecCollection
    68              (SpecCollection
    70                 #collection: #(
    69                 collection: (
    71                  #(#ViewSpec
    70                  (ViewSpec
    72                     #name: 'Box6'
    71                     name: 'LeftBox'
    73                     #level: 1
    72                     level: 1
    74                     #component: 
    73                     component: 
    75                    #(#SpecCollection
    74                    (SpecCollection
    76                       #collection: #(
    75                       collection: (
    77                        #(#SequenceViewSpec
    76                        (ViewSpec
    78                           #name: 'List1'
    77                           name: 'ReceiverArgBox'
    79                           #layout: #(#LayoutFrame 0 0 0 0.5 0 1 0 1)
    78                           layout: (LayoutFrame 0 0 0 0 0 1 -75 0.5)
    80                           #hasHorizontalScrollBar: true
    79                           component: 
    81                           #hasVerticalScrollBar: true
    80                          (SpecCollection
    82                           #autoHideScrollBars: true
    81                             collection: (
    83                           #valueChangeSelector: #updateImplementorsOf:
    82                              (LabelSpec
    84                           #useIndex: true
    83                                 label: 'Receiver'
    85                           #sequenceList: #resultHolder
    84                                 name: 'ReceiverLabel'
    86                         )
    85                                 layout: (LayoutFrame 0 0 0 0 0 0.34 24 0)
    87                        #(#ViewSpec
    86                                 translateLabel: true
    88                           #name: 'Box4'
       
    89                           #layout: #(#LayoutFrame 0 0 0 0 0 1 -25 0.5)
       
    90                           #component: 
       
    91                          #(#SpecCollection
       
    92                             #collection: #(
       
    93                              #(#LabelSpec
       
    94                                 #label: 'Receiver'
       
    95                                 #name: 'ReceiverLabel'
       
    96                                 #layout: #(#LayoutFrame -4 0.0162791 0 0 -4 0.293023 24 0)
       
    97                                 #translateLabel: true
       
    98                                 #adjust: #center
       
    99                               )
    87                               )
   100                              #(#ComboListSpec
    88                              (ComboListSpec
   101                                 #name: 'allowedArgments'
    89                                 name: 'allowedArgments'
   102                                 #layout: #(#LayoutFrame 0 0.339535 1 0 0 0.653488 23 0)
    90                                 layout: (LayoutFrame 0 0.34 1 0 0 0.64 23 0)
   103                                 #model: #argCountHolder
    91                                 model: argCountHolder
   104                                 #comboList: #argCountList
    92                                 comboList: argCountList
   105                                 #useIndex: true
    93                                 useIndex: true
   106                               )
    94                               )
   107                              #(#LabelSpec
    95                              (LabelSpec
   108                                 #label: 'Answer'
    96                                 label: 'Answer'
   109                                 #name: 'MessageAnswerLabel'
    97                                 name: 'MessageAnswerLabel'
   110                                 #layout: #(#LayoutFrame 0 0.6693 0 0 0 0.99023 24 0)
    98                                 layout: (LayoutFrame 0 0.64 0 0 0 1 24 0)
   111                                 #translateLabel: true
    99                                 translateLabel: true
   112                                 #adjust: #center
       
   113                               )
   100                               )
   114                              #(#HorizontalPanelViewSpec
   101                              (HorizontalPanelViewSpec
   115                                 #name: 'HorizontalPanel1'
   102                                 name: 'HorizontalPanel1'
   116                                 #layout: #(#LayoutFrame 0 0 25 0 0 1 0 1)
   103                                 layout: (LayoutFrame 0 0 25 0 0 1 0 1)
   117                                 #horizontalLayout: #fit
   104                                 horizontalLayout: fit
   118                                 #verticalLayout: #fit
   105                                 verticalLayout: fit
   119                                 #horizontalSpace: 3
   106                                 horizontalSpace: 3
   120                                 #verticalSpace: 3
   107                                 verticalSpace: 3
   121                                 #component: 
   108                                 component: 
   122                                #(#SpecCollection
   109                                (SpecCollection
   123                                   #collection: #(
   110                                   collection: (
   124                                    #(#WorkspaceSpec
   111                                    (WorkspaceSpec
   125                                       #name: 'ReceiverEditor'
   112                                       name: 'ReceiverEditor'
   126                                       #tabable: true
   113                                       tabable: true
   127                                       #hasHorizontalScrollBar: true
   114                                       hasHorizontalScrollBar: true
   128                                       #hasVerticalScrollBar: true
   115                                       hasVerticalScrollBar: true
   129                                       #miniScrollerHorizontal: true
   116                                       miniScrollerHorizontal: true
   130                                       #miniScrollerVertical: true
   117                                       miniScrollerVertical: true
   131                                       #autoHideScrollBars: true
   118                                       autoHideScrollBars: true
   132                                       #extent: #(#Point 87 149)
   119                                       hasKeyboardFocusInitially: false
   133                                       #postBuildCallback: #receiverWidgetCreated:
   120                                       extent: (Point 87 99)
       
   121                                       postBuildCallback: receiverWidgetCreated:
   134                                     )
   122                                     )
   135                                    #(#VerticalPanelViewSpec
   123                                    (VerticalPanelViewSpec
   136                                       #name: 'VerticalPanel1'
   124                                       name: 'VerticalPanel1'
   137                                       #horizontalLayout: #fit
   125                                       horizontalLayout: fit
   138                                       #verticalLayout: #fit
   126                                       verticalLayout: fit
   139                                       #horizontalSpace: 3
   127                                       horizontalSpace: 3
   140                                       #verticalSpace: 3
   128                                       verticalSpace: 3
   141                                       #component: 
   129                                       component: 
   142                                      #(#SpecCollection
   130                                      (SpecCollection
   143                                         #collection: #(
   131                                         collection: (
   144                                          #(#ViewSpec
   132                                          (ViewSpec
   145                                             #name: 'Box1'
   133                                             name: 'Box1'
   146                                             #visibilityChannel: #arg1BoxVisible
   134                                             visibilityChannel: arg1BoxVisible
   147                                             #component: 
   135                                             component: 
   148                                            #(#SpecCollection
   136                                            (SpecCollection
   149                                               #collection: #(
   137                                               collection: (
   150                                                #(#WorkspaceSpec
   138                                                (WorkspaceSpec
   151                                                   #name: 'Arg1Editor'
   139                                                   name: 'Arg1Editor'
   152                                                   #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   140                                                   layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   153                                                   #tabable: true
   141                                                   tabable: true
   154                                                   #hasHorizontalScrollBar: true
   142                                                   hasHorizontalScrollBar: true
   155                                                   #hasVerticalScrollBar: true
   143                                                   hasVerticalScrollBar: true
   156                                                   #miniScrollerHorizontal: true
   144                                                   miniScrollerHorizontal: true
   157                                                   #miniScrollerVertical: true
   145                                                   miniScrollerVertical: true
   158                                                   #autoHideScrollBars: true
   146                                                   autoHideScrollBars: true
   159                                                   #postBuildCallback: #argument1WidgetCreated:
   147                                                   hasKeyboardFocusInitially: false
       
   148                                                   postBuildCallback: argument1WidgetCreated:
   160                                                 )
   149                                                 )
   161                                                )
   150                                                )
   162                                              
   151                                              
   163                                             )
   152                                             )
   164                                             #extent: #(#Point 87 48)
   153                                             extent: (Point 87 31)
   165                                           )
   154                                           )
   166                                          #(#ViewSpec
   155                                          (ViewSpec
   167                                             #name: 'Box2'
   156                                             name: 'Box2'
   168                                             #visibilityChannel: #arg2BoxVisible
   157                                             visibilityChannel: arg2BoxVisible
   169                                             #component: 
   158                                             component: 
   170                                            #(#SpecCollection
   159                                            (SpecCollection
   171                                               #collection: #(
   160                                               collection: (
   172                                                #(#WorkspaceSpec
   161                                                (WorkspaceSpec
   173                                                   #name: 'TextEditor5'
   162                                                   name: 'TextEditor5'
   174                                                   #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   163                                                   layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   175                                                   #tabable: true
   164                                                   tabable: true
   176                                                   #hasHorizontalScrollBar: true
   165                                                   hasHorizontalScrollBar: true
   177                                                   #hasVerticalScrollBar: true
   166                                                   hasVerticalScrollBar: true
   178                                                   #miniScrollerHorizontal: true
   167                                                   miniScrollerHorizontal: true
   179                                                   #miniScrollerVertical: true
   168                                                   miniScrollerVertical: true
   180                                                   #autoHideScrollBars: true
   169                                                   autoHideScrollBars: true
   181                                                   #postBuildCallback: #argument2WidgetCreated:
   170                                                   hasKeyboardFocusInitially: false
       
   171                                                   postBuildCallback: argument2WidgetCreated:
   182                                                 )
   172                                                 )
   183                                                )
   173                                                )
   184                                              
   174                                              
   185                                             )
   175                                             )
   186                                             #extent: #(#Point 87 47)
   176                                             extent: (Point 87 31)
   187                                           )
   177                                           )
   188                                          #(#ViewSpec
   178                                          (ViewSpec
   189                                             #name: 'Box3'
   179                                             name: 'Box3'
   190                                             #visibilityChannel: #arg3BoxVisible
   180                                             visibilityChannel: arg3BoxVisible
   191                                             #component: 
   181                                             component: 
   192                                            #(#SpecCollection
   182                                            (SpecCollection
   193                                               #collection: #(
   183                                               collection: (
   194                                                #(#WorkspaceSpec
   184                                                (WorkspaceSpec
   195                                                   #name: 'TextEditor6'
   185                                                   name: 'TextEditor6'
   196                                                   #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   186                                                   layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   197                                                   #tabable: true
   187                                                   tabable: true
   198                                                   #hasHorizontalScrollBar: true
   188                                                   hasHorizontalScrollBar: true
   199                                                   #hasVerticalScrollBar: true
   189                                                   hasVerticalScrollBar: true
   200                                                   #miniScrollerHorizontal: true
   190                                                   miniScrollerHorizontal: true
   201                                                   #miniScrollerVertical: true
   191                                                   miniScrollerVertical: true
   202                                                   #autoHideScrollBars: true
   192                                                   autoHideScrollBars: true
   203                                                   #postBuildCallback: #argument3WidgetCreated:
   193                                                   hasKeyboardFocusInitially: false
       
   194                                                   postBuildCallback: argument3WidgetCreated:
   204                                                 )
   195                                                 )
   205                                                )
   196                                                )
   206                                              
   197                                              
   207                                             )
   198                                             )
   208                                             #extent: #(#Point 87 48)
   199                                             extent: (Point 87 31)
   209                                           )
   200                                           )
   210                                          )
   201                                          )
   211                                        
   202                                        
   212                                       )
   203                                       )
   213                                       #extent: #(#Point 87 149)
   204                                       extent: (Point 87 99)
   214                                     )
   205                                     )
   215                                    #(#WorkspaceSpec
   206                                    (WorkspaceSpec
   216                                       #name: 'AnswerEditor'
   207                                       name: 'AnswerEditor'
   217                                       #tabable: true
   208                                       tabable: true
   218                                       #hasHorizontalScrollBar: true
   209                                       hasHorizontalScrollBar: true
   219                                       #hasVerticalScrollBar: true
   210                                       hasVerticalScrollBar: true
   220                                       #miniScrollerHorizontal: true
   211                                       miniScrollerHorizontal: true
   221                                       #miniScrollerVertical: true
   212                                       miniScrollerVertical: true
   222                                       #autoHideScrollBars: true
   213                                       autoHideScrollBars: true
   223                                       #extent: #(#Point 88 149)
   214                                       hasKeyboardFocusInitially: false
   224                                       #postBuildCallback: #messageAnswerWidgetCreated:
   215                                       extent: (Point 88 99)
       
   216                                       postBuildCallback: messageAnswerWidgetCreated:
   225                                     )
   217                                     )
   226                                    )
   218                                    )
   227                                  
   219                                  
   228                                 )
   220                                 )
   229                               )
   221                               )
   230                              )
   222                              )
   231                            
   223                            
   232                           )
   224                           )
   233                         )
   225                         )
   234                        #(#ViewSpec
   226                        (ViewSpec
   235                           #name: 'Box5'
   227                           name: 'ReceiverArgBoxActionBox'
   236                           #layout: #(#LayoutFrame 53 0.224737 -23 0.5 0 1 0 0.5)
   228                           layout: (LayoutFrame 0 0 -73 0.5 0 1 -50 0.5)
   237                           #component: 
   229                           component: 
   238                          #(#SpecCollection
   230                          (SpecCollection
   239                             #collection: #(
   231                             collection: (
   240                              #(#ActionButtonSpec
   232                              (ActionButtonSpec
   241                                 #label: 'Clear'
   233                                 label: 'Clear'
   242                                 #name: 'Button2'
   234                                 name: 'Button2'
   243                                 #layout: #(#LayoutFrame 0 0 0 0 -5 0.5 0 1)
   235                                 layout: (LayoutFrame 5 0 0 0 -5 0.5 0 1)
   244                                 #translateLabel: true
   236                                 translateLabel: true
   245                                 #model: #clear
   237                                 model: clear
   246                               )
   238                               )
   247                              #(#ActionButtonSpec
   239                              (ActionButtonSpec
   248                                 #label: 'Search'
   240                                 label: 'Search'
   249                                 #name: 'Button1'
   241                                 name: 'Button1'
   250                                 #layout: #(#LayoutFrame 5 0.5 0 0 0 1 0 1)
   242                                 layout: (LayoutFrame 5 0.5 0 0 -5 1 0 1)
   251                                 #translateLabel: true
   243                                 translateLabel: true
   252                                 #tabable: true
   244                                 tabable: true
   253                                 #model: #search
   245                                 model: search
   254                               )
   246                               )
   255                              )
   247                              )
   256                            
   248                            
   257                           )
   249                           )
   258                         )
   250                         )
       
   251                        (ViewSpec
       
   252                           name: 'MatchActionBox'
       
   253                           layout: (LayoutFrame 0 0 -50 0.5 0 1 0 0.5)
       
   254                           component: 
       
   255                          (SpecCollection
       
   256                             collection: (
       
   257                              (LabelSpec
       
   258                                 label: 'Selector Pattern:'
       
   259                                 name: 'Label1'
       
   260                                 layout: (LayoutFrame 0 0 -25 0.5 0 0.5 0 0.5)
       
   261                                 translateLabel: true
       
   262                                 adjust: left
       
   263                               )
       
   264                              (InputFieldSpec
       
   265                                 name: 'EntryField1'
       
   266                                 layout: (LayoutFrame 0 0 -25 1 0 0.5 0 1)
       
   267                                 model: selectorPattern
       
   268                                 immediateAccept: true
       
   269                                 acceptOnReturn: true
       
   270                                 acceptOnTab: true
       
   271                                 acceptOnPointerLeave: true
       
   272                               )
       
   273                              (ActionButtonSpec
       
   274                                 label: 'Search'
       
   275                                 name: 'Button4'
       
   276                                 layout: (LayoutFrame 5 0.5 -25 1 -5 1 0 1)
       
   277                                 translateLabel: true
       
   278                                 tabable: true
       
   279                                 model: searchPatternMatches
       
   280                               )
       
   281                              )
       
   282                            
       
   283                           )
       
   284                         )
       
   285                        (SequenceViewSpec
       
   286                           name: 'ResultList'
       
   287                           layout: (LayoutFrame 0 0 0 0.5 0 1 0 1)
       
   288                           hasHorizontalScrollBar: true
       
   289                           hasVerticalScrollBar: true
       
   290                           autoHideScrollBars: true
       
   291                           valueChangeSelector: updateImplementorsOf:
       
   292                           useIndex: true
       
   293                           sequenceList: resultHolder
       
   294                         )
   259                        )
   295                        )
   260                      
   296                      
   261                     )
   297                     )
   262                   )
   298                   )
   263                  #(#VariableVerticalPanelSpec
   299                  (VariableVerticalPanelSpec
   264                     #name: 'VariableVerticalPanel1'
   300                     name: 'VariableVerticalPanel1'
   265                     #component: 
   301                     component: 
   266                    #(#SpecCollection
   302                    (SpecCollection
   267                       #collection: #(
   303                       collection: (
   268                        #(#SequenceViewSpec
   304                        (SequenceViewSpec
   269                           #name: 'List2'
   305                           name: 'List2'
   270                           #model: #selectedClassOfResultHolder
   306                           model: selectedClassOfResultHolder
   271                           #menu: #implementorListMenu
   307                           menu: implementorListMenu
   272                           #hasHorizontalScrollBar: true
   308                           hasHorizontalScrollBar: true
   273                           #hasVerticalScrollBar: true
   309                           hasVerticalScrollBar: true
   274                           #autoHideScrollBars: true
   310                           autoHideScrollBars: true
   275                           #doubleClickSelector: #openBrowserOn:
   311                           doubleClickSelector: openBrowserOn:
   276                           #valueChangeSelector: #selectedClassOfResultHolderChanged
   312                           valueChangeSelector: selectedClassOfResultHolderChanged
   277                           #useIndex: false
   313                           useIndex: false
   278                           #sequenceList: #classOfResultHolder
   314                           sequenceList: classOfResultHolder
   279                         )
   315                         )
   280                        #(#CodeViewSpec
   316                        (CodeViewSpec
   281                           #name: 'CodeView'
   317                           name: 'CodeView'
   282                           #model: #codeHolder
   318                           model: codeHolder
   283                           #hasHorizontalScrollBar: true
   319                           hasHorizontalScrollBar: true
   284                           #hasVerticalScrollBar: true
   320                           hasVerticalScrollBar: true
   285                           #autoHideScrollBars: true
   321                           autoHideScrollBars: true
   286                           #postBuildCallback: #sourceCodeWidgetCreated:
   322                           hasKeyboardFocusInitially: false
       
   323                           postBuildCallback: sourceCodeWidgetCreated:
   287                         )
   324                         )
   288                        )
   325                        )
   289                      
   326                      
   290                     )
   327                     )
   291                     #handles: #(#Any 0.5 1.0)
   328                     handles: (Any 0.5 1.0)
   292                   )
   329                   )
   293                  )
   330                  )
   294                
   331                
   295               )
   332               )
   296               #handles: #(#Any 0.5 1.0)
   333               handles: (Any 0.5 1.0)
   297             )
   334             )
   298            )
   335            )
   299          
   336          
   300         )
   337         )
   301       )
   338       )
   302 
       
   303     "Modified: / 13.11.2001 / 12:53:50 / cg"
       
   304 ! !
   339 ! !
   305 
   340 
   306 !MethodFinderWindow class methodsFor:'menu specs'!
   341 !MethodFinderWindow class methodsFor:'menu specs'!
   307 
   342 
   308 implementorListMenu
   343 implementorListMenu
   494     ].
   529     ].
   495     aClass := theArgument copyUpTo:(Character space).
   530     aClass := theArgument copyUpTo:(Character space).
   496     x := aClass size + 2.
   531     x := aClass size + 2.
   497     aSelector := theArgument copyFrom:x.
   532     aSelector := theArgument copyFrom:x.
   498     aClass := Smalltalk classNamed:aClass.
   533     aClass := Smalltalk classNamed:aClass.
       
   534     (aSelector startsWith:'class ') ifTrue:[
       
   535         aSelector := aSelector copyFrom:'class 'size+1.
       
   536         aClass := aClass class.
       
   537     ].
   499     ^ aClass -> aSelector asSymbol
   538     ^ aClass -> aSelector asSymbol
   500 
   539 
   501 "
   540 "
   502 MethodFinderWindow new extractClassAndSelectorFrom: '*SmallInteger +'
   541 MethodFinderWindow new extractClassAndSelectorFrom: '*SmallInteger +'
   503 MethodFinderWindow new extractClassAndSelectorFrom: 'String ,'       
   542 MethodFinderWindow new extractClassAndSelectorFrom: 'String ,'       
   504 MethodFinderWindow new extractClassAndSelectorFrom: 'Number detentBy:atMultiplesOf:snap:' 
   543 MethodFinderWindow new extractClassAndSelectorFrom: 'Number detentBy:atMultiplesOf:snap:' 
   505 
   544 
   506 
   545 
   507 "
   546 "
   508 
   547 
   509     "Modified: / 13.11.2001 / 12:45:43 / cg"
   548     "Modified: / 27-04-2012 / 15:05:53 / cg"
   510 !
   549 !
   511 
   550 
   512 isExpression: aString
   551 isExpression: aString
   513       "Return true or false depending on if the subString includes certain characters"
   552       "Return true or false depending on if the subString includes certain characters"
   514 (aString includesSubString:': ') ifTrue:[^true].
   553 (aString includesSubString:': ') ifTrue:[^true].
   654 receiver:=tempReceiver            "search the string for the selector found. Stored as an ordered collection"
   693 receiver:=tempReceiver            "search the string for the selector found. Stored as an ordered collection"
   655 
   694 
   656     "Modified: / 26-09-2011 / 12:42:28 / cg"
   695     "Modified: / 26-09-2011 / 12:42:28 / cg"
   657 !
   696 !
   658 
   697 
       
   698 searchPatternMatches
       
   699     "Do a search based on the pattern match"
       
   700 
       
   701     | pattern list selectors counts|
       
   702 
       
   703     pattern := self selectorPattern value.
       
   704 
       
   705     self resultHolder value: nil.                "reset the result list"
       
   706     self classOfResultHolder value: nil.        "reset the implementorOf list"
       
   707     self codeHolder value: nil.                  "reset the source"
       
   708 
       
   709     self withCursor:Cursor execute do:[
       
   710         list := SystemBrowser findImplementorsMatching:pattern in:Smalltalk allClasses ignoreCase:true.
       
   711     ].
       
   712 
       
   713     counts := IdentityDictionary new.
       
   714     selectors := IdentitySet new.
       
   715 
       
   716     list do:[:eachMethod |
       
   717         selectors add: eachMethod selector.
       
   718         (counts at:(eachMethod selector) ifAbsentPut:[0 asValue]) increment
       
   719     ].
       
   720 
       
   721     resultSelectors := selectors asOrderedCollection sort.
       
   722 
       
   723     self resultHolder value: (resultSelectors collect:[:sel | sel,' --> ',(counts at:sel) value printString,' implementor(s)']).
       
   724 
       
   725     "Created: / 27-04-2012 / 14:46:35 / cg"
       
   726 !
       
   727 
   659 selectedClassOfResultHolderChanged
   728 selectedClassOfResultHolderChanged
   660     |sel classAndSelector mthd|
   729     |sel classAndSelector mthd|
   661 
   730 
   662     sel := self selectedClassOfResultHolder value.
   731     sel := self selectedClassOfResultHolder value.
   663 
   732 
   782 
   851 
   783     |holder|
   852     |holder|
   784     (holder := builder bindingAt:#resultHolder) isNil ifTrue:[
   853     (holder := builder bindingAt:#resultHolder) isNil ifTrue:[
   785         holder := ValueHolder new.
   854         holder := ValueHolder new.
   786         builder aspectAt:#resultHolder put:holder.
   855         builder aspectAt:#resultHolder put:holder.
       
   856         holder value:#('Please enter combination of'
       
   857                        '    receiver, arg and result'
       
   858                        ' into the above fields, then click on "search".').
   787     ].
   859     ].
   788     ^ holder.
   860     ^ holder.
       
   861 
       
   862     "Modified: / 27-04-2012 / 14:25:33 / cg"
   789 !
   863 !
   790 
   864 
   791 selectedClassOfResultHolder
   865 selectedClassOfResultHolder
   792     "Return a valueHolder which contains the index of the selected result class
   866     "Return a valueHolder which contains the index of the selected result class
   793      (right list)"
   867      (right list)"
   796     (holder := builder bindingAt:#selectedClassOfResultHolder) isNil ifTrue:[
   870     (holder := builder bindingAt:#selectedClassOfResultHolder) isNil ifTrue:[
   797         holder := ValueHolder new.
   871         holder := ValueHolder new.
   798         builder aspectAt:#selectedClassOfResultHolder put:holder
   872         builder aspectAt:#selectedClassOfResultHolder put:holder
   799     ].
   873     ].
   800     ^ holder
   874     ^ holder
       
   875 !
       
   876 
       
   877 selectorPattern
       
   878     |holder|
       
   879     (holder := builder bindingAt:#selectorPattern) isNil ifTrue:[
       
   880         holder := ValueHolder new.
       
   881         builder aspectAt:#selectorPattern put:holder.
       
   882         holder onChangeSend:#searchPatternMatches to:self.
       
   883     ].
       
   884     ^ holder
       
   885 
       
   886     "Created: / 27-04-2012 / 14:44:01 / cg"
   801 ! !
   887 ! !
   802 
   888 
   803 !MethodFinderWindow methodsFor:'callBacks'!
   889 !MethodFinderWindow methodsFor:'callBacks'!
   804 
   890 
   805 argument1WidgetCreated: aWidget
   891 argument1WidgetCreated: aWidget