MethodFinderWindow.st
author james
Tue, 06 Nov 2001 16:42:01 +0100
changeset 1525 c91fbd9f8338
parent 1522 f67b97bc683a
child 1526 8e62e3f56402
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
     1
"{ Package: 'stx:libtool2' }"
f67b97bc683a initial checkin
james
parents:
diff changeset
     2
f67b97bc683a initial checkin
james
parents:
diff changeset
     3
ApplicationModel subclass:#MethodFinderWindow
f67b97bc683a initial checkin
james
parents:
diff changeset
     4
	instanceVariableNames:'argumentsEditor messageAnswerEditor receiverEditor receiver
f67b97bc683a initial checkin
james
parents:
diff changeset
     5
		resultSelectors arg2BoxVisible arg1BoxVisible arg4BoxVisible
f67b97bc683a initial checkin
james
parents:
diff changeset
     6
		arg3BoxVisible argCountHolder argCountList argument1Editor
f67b97bc683a initial checkin
james
parents:
diff changeset
     7
		argument2Editor argument3Editor argument4Editor resultSelected
f67b97bc683a initial checkin
james
parents:
diff changeset
     8
		lookAtResultEditor'
f67b97bc683a initial checkin
james
parents:
diff changeset
     9
	classVariableNames:''
f67b97bc683a initial checkin
james
parents:
diff changeset
    10
	poolDictionaries:''
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    11
	category:'MethodFinder'
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    12
!
f67b97bc683a initial checkin
james
parents:
diff changeset
    13
f67b97bc683a initial checkin
james
parents:
diff changeset
    14
f67b97bc683a initial checkin
james
parents:
diff changeset
    15
!MethodFinderWindow class methodsFor:'interface specs'!
f67b97bc683a initial checkin
james
parents:
diff changeset
    16
f67b97bc683a initial checkin
james
parents:
diff changeset
    17
windowSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    18
    "This resource specification was automatically generated
f67b97bc683a initial checkin
james
parents:
diff changeset
    19
     by the UIPainter of ST/X."
f67b97bc683a initial checkin
james
parents:
diff changeset
    20
f67b97bc683a initial checkin
james
parents:
diff changeset
    21
    "Do not manually edit this!! If it is corrupted,
f67b97bc683a initial checkin
james
parents:
diff changeset
    22
     the UIPainter may not be able to read the specification."
f67b97bc683a initial checkin
james
parents:
diff changeset
    23
f67b97bc683a initial checkin
james
parents:
diff changeset
    24
    "
f67b97bc683a initial checkin
james
parents:
diff changeset
    25
     UIPainter new openOnClass:MethodFinderWindow andSelector:#windowSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    26
     MethodFinderWindow new openInterface:#windowSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    27
     MethodFinderWindow open
f67b97bc683a initial checkin
james
parents:
diff changeset
    28
    "
f67b97bc683a initial checkin
james
parents:
diff changeset
    29
f67b97bc683a initial checkin
james
parents:
diff changeset
    30
    <resource: #canvas>
f67b97bc683a initial checkin
james
parents:
diff changeset
    31
f67b97bc683a initial checkin
james
parents:
diff changeset
    32
    ^ 
f67b97bc683a initial checkin
james
parents:
diff changeset
    33
     #(#FullSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    34
        #name: #windowSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    35
        #window: 
f67b97bc683a initial checkin
james
parents:
diff changeset
    36
       #(#WindowSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    37
          #label: 'MethodFinder'
f67b97bc683a initial checkin
james
parents:
diff changeset
    38
          #name: 'MethodFinder'
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    39
          #min: #(#Point nil nil)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    40
          #max: #(#Point nil nil)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    41
          #bounds: #(#Rectangle 16 47 566 447)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    42
          #menu: #menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    43
          #forceRecursiveBackground: false
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    44
        )
f67b97bc683a initial checkin
james
parents:
diff changeset
    45
        #component: 
f67b97bc683a initial checkin
james
parents:
diff changeset
    46
       #(#SpecCollection
f67b97bc683a initial checkin
james
parents:
diff changeset
    47
          #collection: #(
f67b97bc683a initial checkin
james
parents:
diff changeset
    48
           #(#SequenceViewSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    49
              #name: 'List1'
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    50
              #layout: #(#LayoutFrame 0 0 0 0.5 0 0.7 0 1)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    51
              #hasHorizontalScrollBar: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    52
              #hasVerticalScrollBar: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    53
              #autoHideScrollBars: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    54
              #valueChangeSelector: #updateImplementorsOf:
f67b97bc683a initial checkin
james
parents:
diff changeset
    55
              #useIndex: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    56
              #sequenceList: #resultHolder
f67b97bc683a initial checkin
james
parents:
diff changeset
    57
            )
f67b97bc683a initial checkin
james
parents:
diff changeset
    58
           #(#SequenceViewSpec
f67b97bc683a initial checkin
james
parents:
diff changeset
    59
              #name: 'List2'
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    60
              #layout: #(#LayoutFrame 0 0.65 0 0 0 1 0 1)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    61
              #hasHorizontalScrollBar: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    62
              #hasVerticalScrollBar: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    63
              #autoHideScrollBars: true
f67b97bc683a initial checkin
james
parents:
diff changeset
    64
              #doubleClickSelector: #openBrowserOn:
f67b97bc683a initial checkin
james
parents:
diff changeset
    65
              #useIndex: false
f67b97bc683a initial checkin
james
parents:
diff changeset
    66
              #sequenceList: #classOfResultHolder
f67b97bc683a initial checkin
james
parents:
diff changeset
    67
            )
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    68
           #(#ViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    69
              #name: 'Box4'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    70
              #layout: #(#LayoutFrame 0 0 0 0 0 0.65 0 0.43)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    71
              #component: 
f67b97bc683a initial checkin
james
parents:
diff changeset
    72
             #(#SpecCollection
f67b97bc683a initial checkin
james
parents:
diff changeset
    73
                #collection: #(
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    74
                 #(#LabelSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    75
                    #label: 'Reciever'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    76
                    #name: 'RecieverLabel'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    77
                    #layout: #(#LayoutFrame -4 0.0162791 7 0 -4 0.293023 18 0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    78
                    #translateLabel: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    79
                    #adjust: #left
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    80
                  )
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    81
                 #(#ComboListSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    82
                    #name: 'allowedArgments'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    83
                    #layout: #(#LayoutFrame 0 0.339535 2 0 0 0.653488 19 0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    84
                    #model: #argCountHolder
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    85
                    #comboList: #argCountList
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    86
                    #useIndex: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    87
                  )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    88
                 #(#LabelSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    89
                    #label: 'MessageAnswer'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    90
                    #name: 'MessageAnswerLabel'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    91
                    #layout: #(#LayoutFrame 0 0.6693 5 0 0 0.99023 17 0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    92
                    #translateLabel: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    93
                    #adjust: #left
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    94
                  )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    95
                 #(#HorizontalPanelViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    96
                    #name: 'HorizontalPanel1'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
    97
                    #layout: #(#LayoutFrame 0 0 20 0 0 1 0 1)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
    98
                    #horizontalLayout: #fit
f67b97bc683a initial checkin
james
parents:
diff changeset
    99
                    #verticalLayout: #fit
f67b97bc683a initial checkin
james
parents:
diff changeset
   100
                    #horizontalSpace: 3
f67b97bc683a initial checkin
james
parents:
diff changeset
   101
                    #verticalSpace: 3
f67b97bc683a initial checkin
james
parents:
diff changeset
   102
                    #component: 
f67b97bc683a initial checkin
james
parents:
diff changeset
   103
                   #(#SpecCollection
f67b97bc683a initial checkin
james
parents:
diff changeset
   104
                      #collection: #(
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   105
                       #(#WorkspaceSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   106
                          #name: 'ReceiverEditor'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   107
                          #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   108
                          #hasHorizontalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   109
                          #hasVerticalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   110
                          #autoHideScrollBars: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   111
                          #extent: #(#Point 117 152)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   112
                          #postBuildCallback: #receiverWidgetCreated:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   113
                        )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   114
                       #(#VerticalPanelViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   115
                          #name: 'VerticalPanel1'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   116
                          #horizontalLayout: #fit
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   117
                          #verticalLayout: #fit
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   118
                          #horizontalSpace: 3
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   119
                          #verticalSpace: 3
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   120
                          #component: 
f67b97bc683a initial checkin
james
parents:
diff changeset
   121
                         #(#SpecCollection
f67b97bc683a initial checkin
james
parents:
diff changeset
   122
                            #collection: #(
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   123
                             #(#ViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   124
                                #name: 'Box1'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   125
                                #visibilityChannel: #arg1BoxVisible
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   126
                                #component: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   127
                               #(#SpecCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   128
                                  #collection: #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   129
                                   #(#WorkspaceSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   130
                                      #name: 'Arg1Editor'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   131
                                      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   132
                                      #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   133
                                      #hasHorizontalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   134
                                      #hasVerticalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   135
                                      #autoHideScrollBars: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   136
                                      #postBuildCallback: #argument1WidgetCreated:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   137
                                    )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   138
                                   )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   139
                                 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   140
                                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   141
                                #extent: #(#Point 117 49)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   142
                              )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   143
                             #(#ViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   144
                                #name: 'Box2'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   145
                                #visibilityChannel: #arg2BoxVisible
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   146
                                #component: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   147
                               #(#SpecCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   148
                                  #collection: #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   149
                                   #(#WorkspaceSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   150
                                      #name: 'TextEditor5'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   151
                                      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   152
                                      #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   153
                                      #hasHorizontalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   154
                                      #hasVerticalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   155
                                      #autoHideScrollBars: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   156
                                      #postBuildCallback: #argument2WidgetCreated:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   157
                                    )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   158
                                   )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   159
                                 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   160
                                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   161
                                #extent: #(#Point 117 48)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   162
                              )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   163
                             #(#ViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   164
                                #name: 'Box3'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   165
                                #visibilityChannel: #arg3BoxVisible
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   166
                                #component: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   167
                               #(#SpecCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   168
                                  #collection: #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   169
                                   #(#WorkspaceSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   170
                                      #name: 'TextEditor6'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   171
                                      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   172
                                      #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   173
                                      #hasHorizontalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   174
                                      #hasVerticalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   175
                                      #autoHideScrollBars: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   176
                                      #postBuildCallback: #argument3WidgetCreated:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   177
                                    )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   178
                                   )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   179
                                 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   180
                                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   181
                                #extent: #(#Point 117 49)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   182
                              )
f67b97bc683a initial checkin
james
parents:
diff changeset
   183
                             )
f67b97bc683a initial checkin
james
parents:
diff changeset
   184
                           
f67b97bc683a initial checkin
james
parents:
diff changeset
   185
                          )
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   186
                          #extent: #(#Point 117 152)
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   187
                        )
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   188
                       #(#WorkspaceSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   189
                          #name: 'AnswerEditor'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   190
                          #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   191
                          #hasHorizontalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   192
                          #hasVerticalScrollBar: false
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   193
                          #autoHideScrollBars: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   194
                          #extent: #(#Point 118 152)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   195
                          #postBuildCallback: #messageAnswerWidgetCreated:
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   196
                        )
f67b97bc683a initial checkin
james
parents:
diff changeset
   197
                       )
f67b97bc683a initial checkin
james
parents:
diff changeset
   198
                     
f67b97bc683a initial checkin
james
parents:
diff changeset
   199
                    )
f67b97bc683a initial checkin
james
parents:
diff changeset
   200
                  )
f67b97bc683a initial checkin
james
parents:
diff changeset
   201
                 )
f67b97bc683a initial checkin
james
parents:
diff changeset
   202
               
f67b97bc683a initial checkin
james
parents:
diff changeset
   203
              )
f67b97bc683a initial checkin
james
parents:
diff changeset
   204
            )
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   205
           #(#ViewSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   206
              #name: 'Box5'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   207
              #layout: #(#LayoutFrame 53 0.224737 0 0.44 0 0.65 0 0.495578)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   208
              #component: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   209
             #(#SpecCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   210
                #collection: #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   211
                 #(#ActionButtonSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   212
                    #label: 'Clear'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   213
                    #name: 'Button2'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   214
                    #layout: #(#LayoutFrame 0 0 0 0 -5 0.5 0 1)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   215
                    #translateLabel: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   216
                    #model: #clear
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   217
                  )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   218
                 #(#ActionButtonSpec
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   219
                    #label: 'Search'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   220
                    #name: 'Button1'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   221
                    #layout: #(#LayoutFrame 5 0.5 0 0 0 1 0 1)
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   222
                    #translateLabel: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   223
                    #tabable: true
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   224
                    #model: #search
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   225
                  )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   226
                 )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   227
               
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   228
              )
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   229
            )
f67b97bc683a initial checkin
james
parents:
diff changeset
   230
           )
f67b97bc683a initial checkin
james
parents:
diff changeset
   231
         
f67b97bc683a initial checkin
james
parents:
diff changeset
   232
        )
f67b97bc683a initial checkin
james
parents:
diff changeset
   233
      )
f67b97bc683a initial checkin
james
parents:
diff changeset
   234
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   235
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   236
!MethodFinderWindow class methodsFor:'menu specs'!
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   237
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   238
menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   239
    "This resource specification was automatically generated
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   240
     by the MenuEditor of ST/X."
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   241
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   242
    "Do not manually edit this!! If it is corrupted,
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   243
     the MenuEditor may not be able to read the specification."
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   244
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   245
    "
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   246
     MenuEditor new openOnClass:MethodFinderWindow andSelector:#menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   247
     (Menu new fromLiteralArrayEncoding:(MethodFinderWindow menu)) startUp
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   248
    "
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   249
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   250
    <resource: #menu>
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   251
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   252
    ^ 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   253
     #(#Menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   254
        #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   255
         #(#MenuItem
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   256
            #label: '&File'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   257
            #activeHelpKey: #file
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   258
            #submenu: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   259
           #(#Menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   260
              #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   261
               #(#MenuItem
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   262
                  #label: 'Exit'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   263
                  #value: #closeRequest
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   264
                  #activeHelpKey: #fileExit
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   265
                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   266
               )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   267
              nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   268
              nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   269
            )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   270
          )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   271
         #(#MenuItem
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   272
            #label: 'Help'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   273
            #startGroup: #right
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   274
            #submenu: 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   275
           #(#Menu
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   276
              #(
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   277
               #(#MenuItem
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   278
                  #label: 'Documentation'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   279
                  #value: #openHTMLDocumentation
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   280
                  #activeHelpKey: #helpTutorial
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   281
                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   282
               #(#MenuItem
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   283
                  #label: 'About MenuEditor...'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   284
                  #value: #openAboutThisApplication
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   285
                  #activeHelpKey: #aboutThisAppliaction
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   286
                )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   287
               )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   288
              nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   289
              nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   290
            )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   291
          )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   292
         )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   293
        nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   294
        nil
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   295
      )
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   296
! !
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   297
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   298
!MethodFinderWindow methodsFor:'accessing'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   299
f67b97bc683a initial checkin
james
parents:
diff changeset
   300
receiver
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   301
    "Return a copy of the value of the instance variable 'receiver' "
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   302
f67b97bc683a initial checkin
james
parents:
diff changeset
   303
    ^ receiver copy
f67b97bc683a initial checkin
james
parents:
diff changeset
   304
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   305
f67b97bc683a initial checkin
james
parents:
diff changeset
   306
!MethodFinderWindow methodsFor:'actions'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   307
f67b97bc683a initial checkin
james
parents:
diff changeset
   308
argumentEditorsContents
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   309
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   310
"Determine how many text editors of the arguments are used and store the result
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   311
as argCounter. The result being the minimum between how many editors have
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   312
expressions in and how many are displayed.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   313
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   314
Add each argument string (key)and the evaluated version (value) to an Ordered Dictionary
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   315
from each of the text editors.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   316
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   317
Return the OrderedDictionary with the expressions from all the text editors. "
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   318
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   319
     | tempArguments argCounter tempArgument1Editor tempArgument2Editor tempArgument3Editor tempArgument4Editor
f67b97bc683a initial checkin
james
parents:
diff changeset
   320
associationKey associationValue|
f67b97bc683a initial checkin
james
parents:
diff changeset
   321
f67b97bc683a initial checkin
james
parents:
diff changeset
   322
argCounter:=0.
f67b97bc683a initial checkin
james
parents:
diff changeset
   323
f67b97bc683a initial checkin
james
parents:
diff changeset
   324
tempArgument1Editor:= (self cleanInputs: argument1Editor contents).
f67b97bc683a initial checkin
james
parents:
diff changeset
   325
tempArgument2Editor:=  (self cleanInputs: argument2Editor contents).
f67b97bc683a initial checkin
james
parents:
diff changeset
   326
tempArgument3Editor:= (self cleanInputs: argument3Editor contents).
f67b97bc683a initial checkin
james
parents:
diff changeset
   327
f67b97bc683a initial checkin
james
parents:
diff changeset
   328
tempArgument1Editor = '' ifFalse:[argCounter:=argCounter +1].
f67b97bc683a initial checkin
james
parents:
diff changeset
   329
tempArgument2Editor = '' ifFalse:[argCounter:=argCounter +1].
f67b97bc683a initial checkin
james
parents:
diff changeset
   330
tempArgument3Editor = '' ifFalse:[argCounter:=argCounter +1].
f67b97bc683a initial checkin
james
parents:
diff changeset
   331
f67b97bc683a initial checkin
james
parents:
diff changeset
   332
f67b97bc683a initial checkin
james
parents:
diff changeset
   333
argCounter:= (argCounter min: (self argCountHolder value -1)).
f67b97bc683a initial checkin
james
parents:
diff changeset
   334
tempArguments:= OrderedDictionary new:argCounter. 
f67b97bc683a initial checkin
james
parents:
diff changeset
   335
f67b97bc683a initial checkin
james
parents:
diff changeset
   336
(argCounter value >= 1) 
f67b97bc683a initial checkin
james
parents:
diff changeset
   337
                ifTrue:[associationValue:= (Compiler evaluate: tempArgument1Editor).
f67b97bc683a initial checkin
james
parents:
diff changeset
   338
                        ((self isExpression:tempArgument1Editor) or:[ associationValue isNil]) ifTrue:[                  "looks if an expression is typed in"
f67b97bc683a initial checkin
james
parents:
diff changeset
   339
                                        associationKey:=associationValue printString]
f67b97bc683a initial checkin
james
parents:
diff changeset
   340
                                                          ifFalse:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   341
                                        associationKey:=tempArgument1Editor].
f67b97bc683a initial checkin
james
parents:
diff changeset
   342
f67b97bc683a initial checkin
james
parents:
diff changeset
   343
                        tempArguments add: associationKey-> associationValue.
f67b97bc683a initial checkin
james
parents:
diff changeset
   344
                        ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   345
(argCounter value >= 2) 
f67b97bc683a initial checkin
james
parents:
diff changeset
   346
                ifTrue:[ associationValue:= (Compiler evaluate: tempArgument2Editor).
f67b97bc683a initial checkin
james
parents:
diff changeset
   347
                        (((self isExpression:tempArgument2Editor) or:[ associationValue isNil])) ifTrue:[                  "looks if an expression is typed in"
f67b97bc683a initial checkin
james
parents:
diff changeset
   348
                                        associationKey:=associationValue printString]
f67b97bc683a initial checkin
james
parents:
diff changeset
   349
                                                          ifFalse:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   350
                                        associationKey:=tempArgument2Editor].
f67b97bc683a initial checkin
james
parents:
diff changeset
   351
f67b97bc683a initial checkin
james
parents:
diff changeset
   352
                        tempArguments add: associationKey-> associationValue].
f67b97bc683a initial checkin
james
parents:
diff changeset
   353
f67b97bc683a initial checkin
james
parents:
diff changeset
   354
(argCounter value >= 3)
f67b97bc683a initial checkin
james
parents:
diff changeset
   355
                ifTrue:[ associationValue:= (Compiler evaluate: tempArgument3Editor).
f67b97bc683a initial checkin
james
parents:
diff changeset
   356
                        ((self isExpression:tempArgument3Editor) or:[ associationValue isNil]) ifTrue:[                  "looks if an expression is typed in"
f67b97bc683a initial checkin
james
parents:
diff changeset
   357
                                        associationKey:=associationValue printString]
f67b97bc683a initial checkin
james
parents:
diff changeset
   358
                                                          ifFalse:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   359
                                        associationKey:=tempArgument3Editor].
f67b97bc683a initial checkin
james
parents:
diff changeset
   360
f67b97bc683a initial checkin
james
parents:
diff changeset
   361
                        tempArguments add: associationKey-> associationValue].
f67b97bc683a initial checkin
james
parents:
diff changeset
   362
f67b97bc683a initial checkin
james
parents:
diff changeset
   363
f67b97bc683a initial checkin
james
parents:
diff changeset
   364
^tempArguments
f67b97bc683a initial checkin
james
parents:
diff changeset
   365
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   366
f67b97bc683a initial checkin
james
parents:
diff changeset
   367
clear
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   368
    "Reset the contents of all the outputs. Return the receiver."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   369
f67b97bc683a initial checkin
james
parents:
diff changeset
   370
    receiverEditor contents:nil.
f67b97bc683a initial checkin
james
parents:
diff changeset
   371
    argument1Editor contents:nil.
f67b97bc683a initial checkin
james
parents:
diff changeset
   372
    argument2Editor contents:nil.
f67b97bc683a initial checkin
james
parents:
diff changeset
   373
    argument3Editor contents:nil.
f67b97bc683a initial checkin
james
parents:
diff changeset
   374
    messageAnswerEditor contents:nil.
f67b97bc683a initial checkin
james
parents:
diff changeset
   375
    self resultHolder value:nil.
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   376
    self classOfResultHolder value: nil.
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   377
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   378
f67b97bc683a initial checkin
james
parents:
diff changeset
   379
isExpression: aString
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   380
      "Return true or false depending on if the subString includes certain characters"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   381
(aString includesSubString:': ') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   382
(aString includesSubString:'+') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   383
(aString includesSubString:'-') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   384
(aString includesSubString:'*') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   385
(aString includesSubString:'/') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   386
(aString includesSubString:'>') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   387
(aString includesSubString:'<') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   388
(aString includesSubString:' new') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   389
(aString includesSubString:'[') &  (aString includesSubString:']') & (aString includesSubString:'.')
f67b97bc683a initial checkin
james
parents:
diff changeset
   390
                                ifTrue:[^false].
f67b97bc683a initial checkin
james
parents:
diff changeset
   391
(aString includesSubString:'.') ifTrue:[^true].
f67b97bc683a initial checkin
james
parents:
diff changeset
   392
f67b97bc683a initial checkin
james
parents:
diff changeset
   393
 ^false
f67b97bc683a initial checkin
james
parents:
diff changeset
   394
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   395
f67b97bc683a initial checkin
james
parents:
diff changeset
   396
messageAnswerEditorContents
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   397
   "Return a cleaned up version of message answer taken from the messageAnswerEditor
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   398
    as an association. The association has cleanedAnswerString as a key and the 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   399
    compiledAnswer as value."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   400
f67b97bc683a initial checkin
james
parents:
diff changeset
   401
    |   aCleanedAnswerString   compiledAnswer  |
f67b97bc683a initial checkin
james
parents:
diff changeset
   402
f67b97bc683a initial checkin
james
parents:
diff changeset
   403
aCleanedAnswerString:=self cleanInputs: (messageAnswerEditor contents). 
f67b97bc683a initial checkin
james
parents:
diff changeset
   404
f67b97bc683a initial checkin
james
parents:
diff changeset
   405
compiledAnswer:=Compiler evaluate: aCleanedAnswerString.
f67b97bc683a initial checkin
james
parents:
diff changeset
   406
((self isExpression:aCleanedAnswerString) or:[compiledAnswer isNil]) ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   407
                        aCleanedAnswerString:=compiledAnswer printString].
f67b97bc683a initial checkin
james
parents:
diff changeset
   408
f67b97bc683a initial checkin
james
parents:
diff changeset
   409
^aCleanedAnswerString->compiledAnswer.
f67b97bc683a initial checkin
james
parents:
diff changeset
   410
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   411
f67b97bc683a initial checkin
james
parents:
diff changeset
   412
openBrowserOn:anArgument 
f67b97bc683a initial checkin
james
parents:
diff changeset
   413
    "Opens browser on theArgument of a specific class. anArgument being a string with the
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   414
       Class and the selector upon which the browser is to be opened. Return the receiver."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   415
f67b97bc683a initial checkin
james
parents:
diff changeset
   416
    |aClass aSelector x theArgument|
f67b97bc683a initial checkin
james
parents:
diff changeset
   417
f67b97bc683a initial checkin
james
parents:
diff changeset
   418
    anArgument isNil ifTrue:[
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   419
        ^ self
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   420
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   421
    (anArgument at:1) == $* ifTrue:[
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   422
        theArgument := anArgument copyFrom:2
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   423
    ] ifFalse:[
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   424
        theArgument := anArgument
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   425
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   426
    aClass := theArgument copyUpTo:(Character space).
f67b97bc683a initial checkin
james
parents:
diff changeset
   427
    x := aClass size + 2.
f67b97bc683a initial checkin
james
parents:
diff changeset
   428
    aSelector := theArgument copyFrom:x.
f67b97bc683a initial checkin
james
parents:
diff changeset
   429
    aClass := Smalltalk classNamed:aClass.
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   430
    SystemBrowser openInClass:(aClass) selector:(aSelector asSymbol)   
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   431
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   432
"
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   433
MethodFinderWindow new openBrowserOn: '*SmallInteger +'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   434
MethodFinderWindow new openBrowserOn: 'String ,'
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   435
MethodFinderWindow new openBrowserOn: 'Number detentBy:atMultiplesOf:snap:' 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   436
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   437
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   438
"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   439
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   440
f67b97bc683a initial checkin
james
parents:
diff changeset
   441
receiverEditorContents
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   442
   "Return a cleaned up version of receiver taken from the receiverEditor
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   443
    as an association. The association has aCleanedRecieverString as a key and the 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   444
    compiledReceiver as value."
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   445
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   446
    |   aCleanedRecieverString   compiledReceiver  |
f67b97bc683a initial checkin
james
parents:
diff changeset
   447
f67b97bc683a initial checkin
james
parents:
diff changeset
   448
aCleanedRecieverString:=self cleanInputs: (receiverEditor contents). 
f67b97bc683a initial checkin
james
parents:
diff changeset
   449
f67b97bc683a initial checkin
james
parents:
diff changeset
   450
compiledReceiver:=Compiler evaluate: aCleanedRecieverString.
f67b97bc683a initial checkin
james
parents:
diff changeset
   451
f67b97bc683a initial checkin
james
parents:
diff changeset
   452
((self isExpression:aCleanedRecieverString) or:[compiledReceiver isNil]) ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   453
                        aCleanedRecieverString:=compiledReceiver printString].
f67b97bc683a initial checkin
james
parents:
diff changeset
   454
^aCleanedRecieverString->compiledReceiver.
f67b97bc683a initial checkin
james
parents:
diff changeset
   455
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   456
f67b97bc683a initial checkin
james
parents:
diff changeset
   457
search
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   458
"Do a search based on the input in the various text editors. Return the receiver."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   459
| tempReceiver tempAnswer tempArguments anArray resultArray receiverWithArgument mf|
f67b97bc683a initial checkin
james
parents:
diff changeset
   460
self resultHolder value: nil.               "reset the result list"
f67b97bc683a initial checkin
james
parents:
diff changeset
   461
self classOfResultHolder value: nil.        "reset the implementorOf list"
f67b97bc683a initial checkin
james
parents:
diff changeset
   462
f67b97bc683a initial checkin
james
parents:
diff changeset
   463
tempArguments:=self argumentEditorsContents.
f67b97bc683a initial checkin
james
parents:
diff changeset
   464
tempReceiver :=self receiverEditorContents .  
f67b97bc683a initial checkin
james
parents:
diff changeset
   465
tempAnswer:= self messageAnswerEditorContents.   
f67b97bc683a initial checkin
james
parents:
diff changeset
   466
f67b97bc683a initial checkin
james
parents:
diff changeset
   467
"self cleanInputRec:tempReceiver arg:tempArguments ans:tempAnswer."
f67b97bc683a initial checkin
james
parents:
diff changeset
   468
f67b97bc683a initial checkin
james
parents:
diff changeset
   469
f67b97bc683a initial checkin
james
parents:
diff changeset
   470
anArray:=Array new:2.  "creates an array which is to be used as input for the method finder."
f67b97bc683a initial checkin
james
parents:
diff changeset
   471
f67b97bc683a initial checkin
james
parents:
diff changeset
   472
receiverWithArgument:=self mergReciever: (tempReceiver value) WithArgument: (tempArguments values).
f67b97bc683a initial checkin
james
parents:
diff changeset
   473
f67b97bc683a initial checkin
james
parents:
diff changeset
   474
anArray at:1 put:receiverWithArgument;
f67b97bc683a initial checkin
james
parents:
diff changeset
   475
        at:2 put: tempAnswer value.             
f67b97bc683a initial checkin
james
parents:
diff changeset
   476
f67b97bc683a initial checkin
james
parents:
diff changeset
   477
"an array now holds the following array #(#(receiver argument) answer) or #(#(reciever) answer). which should
f67b97bc683a initial checkin
james
parents:
diff changeset
   478
be suitable input for the method finder."
f67b97bc683a initial checkin
james
parents:
diff changeset
   479
mf:= MethodFinder new.
f67b97bc683a initial checkin
james
parents:
diff changeset
   480
resultArray:= mf load: anArray; findMessage. 
f67b97bc683a initial checkin
james
parents:
diff changeset
   481
f67b97bc683a initial checkin
james
parents:
diff changeset
   482
((resultArray at:  1 )includesSubString: 'no single') ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   483
                                self warn: (resultArray at:  1 ).
f67b97bc683a initial checkin
james
parents:
diff changeset
   484
                                ^self
f67b97bc683a initial checkin
james
parents:
diff changeset
   485
                                                              ].  
f67b97bc683a initial checkin
james
parents:
diff changeset
   486
f67b97bc683a initial checkin
james
parents:
diff changeset
   487
"the following then replaces data1 and data2 created by the method finder to the appropriate arguments"
f67b97bc683a initial checkin
james
parents:
diff changeset
   488
resultArray keysAndValuesDo:[:key :value |   | newValue | 
f67b97bc683a initial checkin
james
parents:
diff changeset
   489
      newValue:= value replString: 'data1' withString:(tempReceiver key).
f67b97bc683a initial checkin
james
parents:
diff changeset
   490
(tempArguments size) >= 1 ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   491
      newValue:= newValue replString: 'data2' withString:(tempArguments keyAt:1)].
f67b97bc683a initial checkin
james
parents:
diff changeset
   492
f67b97bc683a initial checkin
james
parents:
diff changeset
   493
(tempArguments size) > 1 ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   494
      newValue:= newValue replString: 'data3' withString:(tempArguments keyAt:2).].
f67b97bc683a initial checkin
james
parents:
diff changeset
   495
f67b97bc683a initial checkin
james
parents:
diff changeset
   496
(tempArguments size) > 2 ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   497
      newValue:= newValue replString: 'data4' withString:(tempArguments keyAt:3).].
f67b97bc683a initial checkin
james
parents:
diff changeset
   498
f67b97bc683a initial checkin
james
parents:
diff changeset
   499
f67b97bc683a initial checkin
james
parents:
diff changeset
   500
                        "    newValue:= value replString: 'data3' withString:(self messageAnswer key). " 
f67b97bc683a initial checkin
james
parents:
diff changeset
   501
f67b97bc683a initial checkin
james
parents:
diff changeset
   502
      newValue:=newValue, ' --> ', (tempAnswer key).
f67b97bc683a initial checkin
james
parents:
diff changeset
   503
f67b97bc683a initial checkin
james
parents:
diff changeset
   504
      resultArray at: key put: newValue.
f67b97bc683a initial checkin
james
parents:
diff changeset
   505
f67b97bc683a initial checkin
james
parents:
diff changeset
   506
              ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   507
f67b97bc683a initial checkin
james
parents:
diff changeset
   508
self resultHolder value: resultArray.
f67b97bc683a initial checkin
james
parents:
diff changeset
   509
resultSelectors:= mf selectors.   "used to find implementors so we do not have to "
f67b97bc683a initial checkin
james
parents:
diff changeset
   510
receiver:=tempReceiver            "search the string for the selector found. Stored as an ordered collection"
f67b97bc683a initial checkin
james
parents:
diff changeset
   511
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   512
f67b97bc683a initial checkin
james
parents:
diff changeset
   513
updateImplementorsOf:anInteger 
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   514
    "Request the implementors of the selected argument provided by aNumber.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   515
     Return the receiver. "
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   516
      |methods classList aNumber|
f67b97bc683a initial checkin
james
parents:
diff changeset
   517
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   518
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   519
       (anInteger isNil) ifTrue:[^self].
f67b97bc683a initial checkin
james
parents:
diff changeset
   520
      anInteger isNil ifTrue:[aNumber:=1]
f67b97bc683a initial checkin
james
parents:
diff changeset
   521
                      ifFalse:[aNumber:=anInteger].  
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   522
      methods:=SystemBrowser findImplementorsOf: (resultSelectors at:aNumber) in:Smalltalk allClasses ignoreCase:false.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   523
      classList:=methods asOrderedCollection collect:[:m | m mclass name , ' ' , m selector].
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   524
f67b97bc683a initial checkin
james
parents:
diff changeset
   525
      classList:=(self markMatchingClasses:(resultSelectors at:aNumber) classesWithSelector:classList).
f67b97bc683a initial checkin
james
parents:
diff changeset
   526
f67b97bc683a initial checkin
james
parents:
diff changeset
   527
    self classOfResultHolder value: classList.
f67b97bc683a initial checkin
james
parents:
diff changeset
   528
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   529
f67b97bc683a initial checkin
james
parents:
diff changeset
   530
!MethodFinderWindow methodsFor:'aspects'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   531
f67b97bc683a initial checkin
james
parents:
diff changeset
   532
arg1BoxVisible
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   533
"Determines if the box should be visble or not. Return true or false"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   534
    arg1BoxVisible isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   535
        arg1BoxVisible := BlockValue
f67b97bc683a initial checkin
james
parents:
diff changeset
   536
                              with:[:vh | vh value >= 2 ]
f67b97bc683a initial checkin
james
parents:
diff changeset
   537
                              argument:(self argCountHolder)
f67b97bc683a initial checkin
james
parents:
diff changeset
   538
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   539
    ^ arg1BoxVisible.
f67b97bc683a initial checkin
james
parents:
diff changeset
   540
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   541
f67b97bc683a initial checkin
james
parents:
diff changeset
   542
arg2BoxVisible
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   543
"Determines if the box should be visble or not. Return true or false"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   544
    arg2BoxVisible isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   545
        arg2BoxVisible := BlockValue
f67b97bc683a initial checkin
james
parents:
diff changeset
   546
                              with:[:vh | vh value >= 3 ]
f67b97bc683a initial checkin
james
parents:
diff changeset
   547
                              argument:(self argCountHolder)
f67b97bc683a initial checkin
james
parents:
diff changeset
   548
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   549
    ^ arg2BoxVisible.
f67b97bc683a initial checkin
james
parents:
diff changeset
   550
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   551
f67b97bc683a initial checkin
james
parents:
diff changeset
   552
arg3BoxVisible
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   553
"Determines if the box should be visble or not. Return true or false"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   554
    arg3BoxVisible isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   555
        arg3BoxVisible := BlockValue
f67b97bc683a initial checkin
james
parents:
diff changeset
   556
                              with:[:vh | vh value >= 4 ]
f67b97bc683a initial checkin
james
parents:
diff changeset
   557
                              argument:(self argCountHolder)
f67b97bc683a initial checkin
james
parents:
diff changeset
   558
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   559
    ^ arg3BoxVisible.
f67b97bc683a initial checkin
james
parents:
diff changeset
   560
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   561
f67b97bc683a initial checkin
james
parents:
diff changeset
   562
arg4BoxVisible
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   563
"Determines if the box should be visble or not. Return true or false"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   564
    arg4BoxVisible isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   565
        arg4BoxVisible := BlockValue
f67b97bc683a initial checkin
james
parents:
diff changeset
   566
                              with:[:vh | vh value >= 5 ]
f67b97bc683a initial checkin
james
parents:
diff changeset
   567
                              argument:(self argCountHolder)
f67b97bc683a initial checkin
james
parents:
diff changeset
   568
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   569
    ^ arg4BoxVisible.
f67b97bc683a initial checkin
james
parents:
diff changeset
   570
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   571
f67b97bc683a initial checkin
james
parents:
diff changeset
   572
argCountHolder
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   573
"Return the value of argCounterHolder which is initialized at 2."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   574
    argCountHolder isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   575
        argCountHolder := 2 asValue.
f67b97bc683a initial checkin
james
parents:
diff changeset
   576
    ].     
f67b97bc683a initial checkin
james
parents:
diff changeset
   577
    ^ argCountHolder.
f67b97bc683a initial checkin
james
parents:
diff changeset
   578
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   579
f67b97bc683a initial checkin
james
parents:
diff changeset
   580
argCountList
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   581
"Return the argCountList"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   582
    argCountList isNil ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   583
        argCountList := #('0 arguments' '1 argument' '2 arguments' '3 arguments') asValue  
f67b97bc683a initial checkin
james
parents:
diff changeset
   584
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   585
    ^ argCountList.
f67b97bc683a initial checkin
james
parents:
diff changeset
   586
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   587
f67b97bc683a initial checkin
james
parents:
diff changeset
   588
classOfResultHolder
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   589
    "Return a valueHolder which contains a collection with the names of the 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   590
     implementors of a specific message.   "
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   591
f67b97bc683a initial checkin
james
parents:
diff changeset
   592
    |holder|
f67b97bc683a initial checkin
james
parents:
diff changeset
   593
    (holder := builder bindingAt:#classOfResultHolder) isNil ifTrue:[
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   594
        holder := ValueHolder new.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   595
        builder aspectAt:#classOfResultHolder put:holder
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   596
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   597
    ^ holder
f67b97bc683a initial checkin
james
parents:
diff changeset
   598
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   599
f67b97bc683a initial checkin
james
parents:
diff changeset
   600
resultHolder
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   601
    "Return a value holder which contains the results of a search as a collection."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   602
f67b97bc683a initial checkin
james
parents:
diff changeset
   603
    |holder|
f67b97bc683a initial checkin
james
parents:
diff changeset
   604
    (holder := builder bindingAt:#resultHolder) isNil ifTrue:[
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   605
        holder := ValueHolder new.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   606
        builder aspectAt:#resultHolder put:holder.
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   607
    ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   608
    ^ holder.
f67b97bc683a initial checkin
james
parents:
diff changeset
   609
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   610
f67b97bc683a initial checkin
james
parents:
diff changeset
   611
!MethodFinderWindow methodsFor:'callBacks'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   612
f67b97bc683a initial checkin
james
parents:
diff changeset
   613
argument1WidgetCreated: aWidget
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   614
"Store the widget as an instance variable. Return the receiver"
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   615
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   616
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   617
        argument1Editor := aWidget scrolledView.
f67b97bc683a initial checkin
james
parents:
diff changeset
   618
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   619
f67b97bc683a initial checkin
james
parents:
diff changeset
   620
argument2WidgetCreated: aWidget
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   621
"Store the widget as an instance variable. Return the receiver"
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   622
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   623
f67b97bc683a initial checkin
james
parents:
diff changeset
   624
        argument2Editor := aWidget scrolledView.
f67b97bc683a initial checkin
james
parents:
diff changeset
   625
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   626
f67b97bc683a initial checkin
james
parents:
diff changeset
   627
argument3WidgetCreated: aWidget
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   628
"Store the widget as an instance variable. Return the receiver"
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   629
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   630
f67b97bc683a initial checkin
james
parents:
diff changeset
   631
        argument3Editor := aWidget scrolledView.
f67b97bc683a initial checkin
james
parents:
diff changeset
   632
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   633
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   634
messageAnswerWidgetCreated: aWidget
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   635
"Store the widget as an instance variable. Return the receiver"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   636
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   637
        messageAnswerEditor := aWidget scrolledView.
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   638
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   639
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   640
openHTMLDocumentation
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   641
    HTMLDocumentView openFullOnDocumentationFile:'tools/misc/TOP.html#METHODFINDER'
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   642
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   643
f67b97bc683a initial checkin
james
parents:
diff changeset
   644
receiverWidgetCreated: aWidget
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   645
"Store the widget as an instance variable. Return the receiver"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   646
f67b97bc683a initial checkin
james
parents:
diff changeset
   647
        receiverEditor := aWidget scrolledView.
f67b97bc683a initial checkin
james
parents:
diff changeset
   648
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   649
f67b97bc683a initial checkin
james
parents:
diff changeset
   650
!MethodFinderWindow methodsFor:'controlInput'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   651
f67b97bc683a initial checkin
james
parents:
diff changeset
   652
cleanInputs: aDirtyString
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   653
     "Find and remove common mistakes made by the user. Return the 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   654
     'aStringToBeCleaned' variable"
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   655
       | aStringToBeCleaned rs position|
f67b97bc683a initial checkin
james
parents:
diff changeset
   656
f67b97bc683a initial checkin
james
parents:
diff changeset
   657
   aStringToBeCleaned:=aDirtyString.
f67b97bc683a initial checkin
james
parents:
diff changeset
   658
f67b97bc683a initial checkin
james
parents:
diff changeset
   659
(aStringToBeCleaned endsWith:(Character cr)) ifTrue:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   660
                        aStringToBeCleaned:=aStringToBeCleaned copyFrom:1 to: (aStringToBeCleaned size -1).].
f67b97bc683a initial checkin
james
parents:
diff changeset
   661
aStringToBeCleaned:= aStringToBeCleaned withoutSeparators.
f67b97bc683a initial checkin
james
parents:
diff changeset
   662
f67b97bc683a initial checkin
james
parents:
diff changeset
   663
f67b97bc683a initial checkin
james
parents:
diff changeset
   664
rs:=ReadStream on: aStringToBeCleaned.
f67b97bc683a initial checkin
james
parents:
diff changeset
   665
[rs upToAll: '#true'.  rs atEnd] whileFalse: [
f67b97bc683a initial checkin
james
parents:
diff changeset
   666
                        position:= rs position. 
f67b97bc683a initial checkin
james
parents:
diff changeset
   667
                        aStringToBeCleaned:=aStringToBeCleaned copyReplaceFrom: position to: position with: ''. "remove #"
f67b97bc683a initial checkin
james
parents:
diff changeset
   668
                        rs:=ReadStream on: aStringToBeCleaned.
f67b97bc683a initial checkin
james
parents:
diff changeset
   669
                        ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   670
f67b97bc683a initial checkin
james
parents:
diff changeset
   671
rs:=ReadStream on: aStringToBeCleaned.
f67b97bc683a initial checkin
james
parents:
diff changeset
   672
[rs upToAll: '#false'.  rs atEnd] whileFalse: [
f67b97bc683a initial checkin
james
parents:
diff changeset
   673
                        position:= rs position. 
f67b97bc683a initial checkin
james
parents:
diff changeset
   674
                        aStringToBeCleaned:=aStringToBeCleaned copyReplaceFrom: position to: position with: ''. "remove #"
f67b97bc683a initial checkin
james
parents:
diff changeset
   675
                        rs:=ReadStream on: aStringToBeCleaned.
f67b97bc683a initial checkin
james
parents:
diff changeset
   676
                        rs:=ReadStream on: aStringToBeCleaned. ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   677
f67b97bc683a initial checkin
james
parents:
diff changeset
   678
[rs upToAll: '#nil'.  rs atEnd] whileFalse: [
f67b97bc683a initial checkin
james
parents:
diff changeset
   679
                        position:= rs position. 
f67b97bc683a initial checkin
james
parents:
diff changeset
   680
                        aStringToBeCleaned:=aStringToBeCleaned copyReplaceFrom: position to: position with: ''. "remove #"
f67b97bc683a initial checkin
james
parents:
diff changeset
   681
                        rs:=ReadStream on: aStringToBeCleaned.  ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   682
                   ^aStringToBeCleaned    
f67b97bc683a initial checkin
james
parents:
diff changeset
   683
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   684
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   685
markMatchingClasses: aSelector  classesWithSelector:anOrderedCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   686
   " Matches the class of the receiver with all the elements in anOrderedCollection
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   687
    (which are classes with selectors). If a match is found it is marked with an asterisk. 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   688
    The classes are then sorted so the the asterisk appears first. Return the 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   689
    markedClassList."
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   690
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   691
        | unmarkedClassList firstPartOfSelector markedClassList|
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   692
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   693
        unmarkedClassList:=anOrderedCollection copy.
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   694
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   695
        unmarkedClassList do:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   696
                [:classAndMethod | | class |
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   697
                class:=Compiler evaluate:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   698
                                ((ReadStream on: classAndMethod) upToAll: aSelector).
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   699
                (receiver value class == class) ifTrue:
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   700
                        [unmarkedClassList add: '*', classAndMethod.
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   701
                        unmarkedClassList remove: classAndMethod]].
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   702
f67b97bc683a initial checkin
james
parents:
diff changeset
   703
      unmarkedClassList sort:[:a :b | |rawA rawB|
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   704
                    rawA := (a startsWith:'*') ifTrue:[a copyFrom:2] ifFalse:[a].
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   705
                    rawB := (b startsWith:'*') ifTrue:[b copyFrom:2] ifFalse:[b].
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   706
                    rawA > rawB.  ].
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   707
      markedClassList:= unmarkedClassList. 
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   708
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   709
         ^markedClassList
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   710
!
f67b97bc683a initial checkin
james
parents:
diff changeset
   711
f67b97bc683a initial checkin
james
parents:
diff changeset
   712
mergReciever: aReceiver WithArgument: arguments
f67b97bc683a initial checkin
james
parents:
diff changeset
   713
1525
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   714
"Puts the receiver and arguments into an array so it can be of a suitable input for the
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   715
 MethodFinder. Return an array."
c91fbd9f8338 checkin from browser
james
parents: 1522
diff changeset
   716
1522
f67b97bc683a initial checkin
james
parents:
diff changeset
   717
| tempReceiver tempArguments receiverWithArgument|
f67b97bc683a initial checkin
james
parents:
diff changeset
   718
f67b97bc683a initial checkin
james
parents:
diff changeset
   719
  tempReceiver:= aReceiver.
f67b97bc683a initial checkin
james
parents:
diff changeset
   720
 tempArguments :=  arguments.
f67b97bc683a initial checkin
james
parents:
diff changeset
   721
f67b97bc683a initial checkin
james
parents:
diff changeset
   722
(tempArguments isEmpty or:[(tempArguments) isNil])
f67b97bc683a initial checkin
james
parents:
diff changeset
   723
                ifTrue:[  receiverWithArgument:=Array new:1."no argument"
f67b97bc683a initial checkin
james
parents:
diff changeset
   724
                          receiverWithArgument at:1 put: tempReceiver.     
f67b97bc683a initial checkin
james
parents:
diff changeset
   725
                        ]
f67b97bc683a initial checkin
james
parents:
diff changeset
   726
                ifFalse:[
f67b97bc683a initial checkin
james
parents:
diff changeset
   727
        (tempArguments size = 1)
f67b97bc683a initial checkin
james
parents:
diff changeset
   728
                        ifTrue:[ receiverWithArgument:=Array new:2.
f67b97bc683a initial checkin
james
parents:
diff changeset
   729
                                  receiverWithArgument at:1 put: tempReceiver.      
f67b97bc683a initial checkin
james
parents:
diff changeset
   730
                                  receiverWithArgument at:2 put: (tempArguments at:1)
f67b97bc683a initial checkin
james
parents:
diff changeset
   731
                                ].  "a receiver with an argument"
f67b97bc683a initial checkin
james
parents:
diff changeset
   732
f67b97bc683a initial checkin
james
parents:
diff changeset
   733
        (tempArguments size = 2)
f67b97bc683a initial checkin
james
parents:
diff changeset
   734
                        ifTrue:[ receiverWithArgument:=Array new:3.
f67b97bc683a initial checkin
james
parents:
diff changeset
   735
                                  receiverWithArgument at:1 put: tempReceiver.      
f67b97bc683a initial checkin
james
parents:
diff changeset
   736
                                  (receiverWithArgument at:2 put: (tempArguments at:1)).
f67b97bc683a initial checkin
james
parents:
diff changeset
   737
                                  (receiverWithArgument at:3 put: (tempArguments at:2))
f67b97bc683a initial checkin
james
parents:
diff changeset
   738
                                ].  "a receiver with an argument"
f67b97bc683a initial checkin
james
parents:
diff changeset
   739
        (tempArguments size = 3)
f67b97bc683a initial checkin
james
parents:
diff changeset
   740
                        ifTrue:[ receiverWithArgument:=Array new:4.
f67b97bc683a initial checkin
james
parents:
diff changeset
   741
                                  receiverWithArgument at:1 put: tempReceiver.      
f67b97bc683a initial checkin
james
parents:
diff changeset
   742
                                  (receiverWithArgument at:2 put: (tempArguments at:1)).
f67b97bc683a initial checkin
james
parents:
diff changeset
   743
                                  (receiverWithArgument at:3 put: (tempArguments at:2)).
f67b97bc683a initial checkin
james
parents:
diff changeset
   744
                                  (receiverWithArgument at:4 put: (tempArguments at:3)).
f67b97bc683a initial checkin
james
parents:
diff changeset
   745
f67b97bc683a initial checkin
james
parents:
diff changeset
   746
                                ].  "a receiver with an argument"
f67b97bc683a initial checkin
james
parents:
diff changeset
   747
f67b97bc683a initial checkin
james
parents:
diff changeset
   748
                        ].
f67b97bc683a initial checkin
james
parents:
diff changeset
   749
^receiverWithArgument
f67b97bc683a initial checkin
james
parents:
diff changeset
   750
! !
f67b97bc683a initial checkin
james
parents:
diff changeset
   751
f67b97bc683a initial checkin
james
parents:
diff changeset
   752
!MethodFinderWindow class methodsFor:'documentation'!
f67b97bc683a initial checkin
james
parents:
diff changeset
   753
f67b97bc683a initial checkin
james
parents:
diff changeset
   754
version
f67b97bc683a initial checkin
james
parents:
diff changeset
   755
    ^ '$Header$'
f67b97bc683a initial checkin
james
parents:
diff changeset
   756
! !