Tools__StringSearchToolForTextView.st
author fm
Tue, 08 Apr 2008 11:03:48 +0200
changeset 8062 3b38e4e4d786
parent 8060 e9ff9acc34ff
child 8064 9d91d0d69b09
permissions -rw-r--r--
searchString without showing searchBar
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
     1
"{ Package: 'stx:libtool' }"
3845b02f8475 initial checkin
fm
parents:
diff changeset
     2
3845b02f8475 initial checkin
fm
parents:
diff changeset
     3
"{ NameSpace: Tools }"
3845b02f8475 initial checkin
fm
parents:
diff changeset
     4
3845b02f8475 initial checkin
fm
parents:
diff changeset
     5
StringSearchTool subclass:#StringSearchToolForTextView
3845b02f8475 initial checkin
fm
parents:
diff changeset
     6
	instanceVariableNames:'textView matchHolder'
3845b02f8475 initial checkin
fm
parents:
diff changeset
     7
	classVariableNames:''
3845b02f8475 initial checkin
fm
parents:
diff changeset
     8
	poolDictionaries:''
3845b02f8475 initial checkin
fm
parents:
diff changeset
     9
	category:'Interface-Tools'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    10
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
    11
3845b02f8475 initial checkin
fm
parents:
diff changeset
    12
3845b02f8475 initial checkin
fm
parents:
diff changeset
    13
!StringSearchToolForTextView class methodsFor:'interface specs'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
    14
3845b02f8475 initial checkin
fm
parents:
diff changeset
    15
windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    16
    "This resource specification was automatically generated
3845b02f8475 initial checkin
fm
parents:
diff changeset
    17
     by the UIPainter of ST/X."
3845b02f8475 initial checkin
fm
parents:
diff changeset
    18
3845b02f8475 initial checkin
fm
parents:
diff changeset
    19
    "Do not manually edit this!! If it is corrupted,
3845b02f8475 initial checkin
fm
parents:
diff changeset
    20
     the UIPainter may not be able to read the specification."
3845b02f8475 initial checkin
fm
parents:
diff changeset
    21
3845b02f8475 initial checkin
fm
parents:
diff changeset
    22
    "
3845b02f8475 initial checkin
fm
parents:
diff changeset
    23
     UIPainter new openOnClass:Tools::StringSearchToolForTextView andSelector:#windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    24
     Tools::StringSearchToolForTextView new openInterface:#windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    25
     Tools::StringSearchToolForTextView open
3845b02f8475 initial checkin
fm
parents:
diff changeset
    26
    "
3845b02f8475 initial checkin
fm
parents:
diff changeset
    27
3845b02f8475 initial checkin
fm
parents:
diff changeset
    28
    <resource: #canvas>
3845b02f8475 initial checkin
fm
parents:
diff changeset
    29
3845b02f8475 initial checkin
fm
parents:
diff changeset
    30
    ^ 
3845b02f8475 initial checkin
fm
parents:
diff changeset
    31
     #(FullSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    32
        name: windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    33
        window: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
    34
       (WindowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    35
          label: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    36
          name: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    37
          min: (Point 10 10)
3845b02f8475 initial checkin
fm
parents:
diff changeset
    38
          max: (Point 1024 768)
3845b02f8475 initial checkin
fm
parents:
diff changeset
    39
          bounds: (Rectangle 0 0 801 27)
3845b02f8475 initial checkin
fm
parents:
diff changeset
    40
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    41
        component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
    42
       (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
    43
          collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
    44
           (ViewSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    45
              name: 'SearchBox'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    46
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
3845b02f8475 initial checkin
fm
parents:
diff changeset
    47
              level: -1
3845b02f8475 initial checkin
fm
parents:
diff changeset
    48
              component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
    49
             (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
    50
                collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
    51
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    52
                    label: 'closeSearchBarIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    53
                    name: 'hideSearchBarButton'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    54
                    layout: (LayoutFrame 1 0 2 0 22 0 23 0)
3845b02f8475 initial checkin
fm
parents:
diff changeset
    55
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
    56
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    57
                    model: hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
    58
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    59
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    60
                    label: 'Search:'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    61
                    name: 'SearchLabel'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
    62
                    layout: (LayoutFrame 23 0 1 0 71 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    63
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    64
                    adjust: right
3845b02f8475 initial checkin
fm
parents:
diff changeset
    65
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    66
                 (InputFieldSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    67
                    name: 'SearchEntryField'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
    68
                    layout: (LayoutFrame 72 0 1 0 253 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    69
                    model: searchTextHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
    70
                    immediateAccept: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    71
                    acceptOnReturn: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    72
                    acceptOnTab: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    73
                    acceptOnLostFocus: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    74
                    modifiedChannel: searchTextModifiedHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
    75
                    acceptOnPointerLeave: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
    76
                    postBuildCallback: postBuildSearchTextView:
3845b02f8475 initial checkin
fm
parents:
diff changeset
    77
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    78
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    79
                    label: 'searchNextIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    80
                    name: 'SearchNextButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
    81
                    layout: (LayoutFrame 258 0 2 0 279 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    82
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
    83
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    84
                    model: searchNextText
3845b02f8475 initial checkin
fm
parents:
diff changeset
    85
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    86
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    87
                    label: 'searchPreviousIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    88
                    name: 'searchPreviousButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
    89
                    layout: (LayoutFrame 286 0 2 0 307 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    90
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
    91
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
    92
                    model: searchPreviousText
3845b02f8475 initial checkin
fm
parents:
diff changeset
    93
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
    94
                 (CheckBoxSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
    95
                    label: 'Ignore case'
3845b02f8475 initial checkin
fm
parents:
diff changeset
    96
                    name: 'IgnoreCaseCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
    97
                    layout: (LayoutFrame 312 0 1 0 424 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    98
                    model: ignoreCaseHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
    99
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   100
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   101
                 (CheckBoxSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   102
                    label: 'Match'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   103
                    name: 'MatchCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   104
                    layout: (LayoutFrame 424 0 1 0 508 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   105
                    model: matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   106
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   107
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   108
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   109
                    label: 'SearchBarImageInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   110
                    name: 'SearchBarImageInfoLabel'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   111
                    layout: (LayoutFrame 510 0 1 0 534 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   112
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   113
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   114
                    labelChannel: searchBarImageInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   115
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   116
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   117
                    label: 'SearchBarInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   118
                    name: 'SearchBarInfoLabel'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   119
                    layout: (LayoutFrame 545 0 1 0 794 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   120
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   121
                    labelChannel: searchBarInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   122
                    adjust: left
3845b02f8475 initial checkin
fm
parents:
diff changeset
   123
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   124
                 )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   125
               
3845b02f8475 initial checkin
fm
parents:
diff changeset
   126
              )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   127
            )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   128
           )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   129
         
3845b02f8475 initial checkin
fm
parents:
diff changeset
   130
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   131
      )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   132
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   133
3845b02f8475 initial checkin
fm
parents:
diff changeset
   134
!StringSearchToolForTextView methodsFor:'accessing'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   135
3845b02f8475 initial checkin
fm
parents:
diff changeset
   136
textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   137
    ^ textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   138
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   139
3845b02f8475 initial checkin
fm
parents:
diff changeset
   140
textView:something
3845b02f8475 initial checkin
fm
parents:
diff changeset
   141
    textView := something.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   142
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   143
3845b02f8475 initial checkin
fm
parents:
diff changeset
   144
!StringSearchToolForTextView methodsFor:'aspects'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   145
3845b02f8475 initial checkin
fm
parents:
diff changeset
   146
matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   147
3845b02f8475 initial checkin
fm
parents:
diff changeset
   148
    matchHolder isNil ifTrue:[
3845b02f8475 initial checkin
fm
parents:
diff changeset
   149
        matchHolder := false asValue.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   150
"/ if your app needs to be notified of changes, uncomment one of the lines below:
3845b02f8475 initial checkin
fm
parents:
diff changeset
   151
"/       matchHolder addDependent:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   152
        matchHolder onChangeSend:#matchHolderChanged to:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   153
3845b02f8475 initial checkin
fm
parents:
diff changeset
   154
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   155
    ^ matchHolder.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   156
3845b02f8475 initial checkin
fm
parents:
diff changeset
   157
    "Created: / 16-06-2007 / 06:45:04 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   158
    "Modified: / 16-06-2007 / 19:32:15 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   159
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   160
3845b02f8475 initial checkin
fm
parents:
diff changeset
   161
!StringSearchToolForTextView methodsFor:'change & update'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   162
3845b02f8475 initial checkin
fm
parents:
diff changeset
   163
matchHolderChanged
3845b02f8475 initial checkin
fm
parents:
diff changeset
   164
3845b02f8475 initial checkin
fm
parents:
diff changeset
   165
    self searchNextTextIncludingCurrentSelection: true.
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   166
    self setFocusToSearchTextView.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   167
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   168
3845b02f8475 initial checkin
fm
parents:
diff changeset
   169
!StringSearchToolForTextView methodsFor:'initialization & release'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   170
3845b02f8475 initial checkin
fm
parents:
diff changeset
   171
postBuildSearchTextView: anEditFieldView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   172
3845b02f8475 initial checkin
fm
parents:
diff changeset
   173
    super postBuildSearchTextView: anEditFieldView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   174
    anEditFieldView crAction: self crAction.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   175
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   176
3845b02f8475 initial checkin
fm
parents:
diff changeset
   177
!StringSearchToolForTextView methodsFor:'public'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   178
3845b02f8475 initial checkin
fm
parents:
diff changeset
   179
crAction
3845b02f8475 initial checkin
fm
parents:
diff changeset
   180
3845b02f8475 initial checkin
fm
parents:
diff changeset
   181
    ^ [self returnFocusToTextView]
3845b02f8475 initial checkin
fm
parents:
diff changeset
   182
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   183
3845b02f8475 initial checkin
fm
parents:
diff changeset
   184
returnFocusToTextView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   185
3845b02f8475 initial checkin
fm
parents:
diff changeset
   186
    textView takeFocus
3845b02f8475 initial checkin
fm
parents:
diff changeset
   187
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   188
3845b02f8475 initial checkin
fm
parents:
diff changeset
   189
!StringSearchToolForTextView methodsFor:'searching'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   190
3845b02f8475 initial checkin
fm
parents:
diff changeset
   191
hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
   192
3845b02f8475 initial checkin
fm
parents:
diff changeset
   193
    masterApplication isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   194
    masterApplication hideSearchBar.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   195
    self returnFocusToTextView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   196
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   197
3845b02f8475 initial checkin
fm
parents:
diff changeset
   198
searchNextTextFromBeginning
3845b02f8475 initial checkin
fm
parents:
diff changeset
   199
    |searchText ignoreCase match absentBlock|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   200
3845b02f8475 initial checkin
fm
parents:
diff changeset
   201
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   202
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   203
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   204
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   205
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   206
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   207
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   208
        searchFwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   209
        ignoreCase:ignoreCase 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   210
        match: match
3845b02f8475 initial checkin
fm
parents:
diff changeset
   211
        startingAtLine:1 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   212
        col:0
3845b02f8475 initial checkin
fm
parents:
diff changeset
   213
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   214
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   215
3845b02f8475 initial checkin
fm
parents:
diff changeset
   216
searchNextTextIncludingCurrentSelection: includeCurrentSelection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   217
    |searchText ignoreCase  match absentBlock startCol startLine|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   218
3845b02f8475 initial checkin
fm
parents:
diff changeset
   219
    self searchTextStarted.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   220
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   221
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   222
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   223
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   224
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   225
    absentBlock := [self searchNextTextReachEnd].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   226
    (self textView hasSelection and:[includeCurrentSelection]) 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   227
        ifTrue:[
8060
e9ff9acc34ff *** empty log message ***
fm
parents: 8049
diff changeset
   228
            startCol := ((self textView selectionStartCol ? 1) - 1) max: 0.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   229
            startLine := (self textView selectionStartLine ? 1).
3845b02f8475 initial checkin
fm
parents:
diff changeset
   230
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match startingAtLine:startLine col:startCol ifAbsent:absentBlock.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   231
        ] ifFalse:[
3845b02f8475 initial checkin
fm
parents:
diff changeset
   232
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   233
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   234
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   235
3845b02f8475 initial checkin
fm
parents:
diff changeset
   236
searchPreviousText
3845b02f8475 initial checkin
fm
parents:
diff changeset
   237
3845b02f8475 initial checkin
fm
parents:
diff changeset
   238
    |searchText ignoreCase absentBlock|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   239
3845b02f8475 initial checkin
fm
parents:
diff changeset
   240
    self searchTextStarted.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   241
    searchText := searchTextView contents.
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   242
    self setFocusToSearchTextView.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   243
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   244
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   245
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   246
    absentBlock := [self searchPreviousTextReachBeginning].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   247
    self textView searchBwd:searchText ignoreCase:ignoreCase ifAbsent:absentBlock.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   248
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   249
3845b02f8475 initial checkin
fm
parents:
diff changeset
   250
searchPreviousTextFromEnd
3845b02f8475 initial checkin
fm
parents:
diff changeset
   251
3845b02f8475 initial checkin
fm
parents:
diff changeset
   252
    |searchText ignoreCase absentBlock startLine startCol|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   253
3845b02f8475 initial checkin
fm
parents:
diff changeset
   254
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   255
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   256
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   257
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   258
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   259
    startLine := self textView numberOfLines + 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   260
    startCol := 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   261
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   262
        searchBwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   263
        ignoreCase:ignoreCase
3845b02f8475 initial checkin
fm
parents:
diff changeset
   264
        startingAtLine:startLine 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   265
        col:startCol 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   266
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   267
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   268
3845b02f8475 initial checkin
fm
parents:
diff changeset
   269
!StringSearchToolForTextView class methodsFor:'documentation'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   270
3845b02f8475 initial checkin
fm
parents:
diff changeset
   271
version
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   272
    ^ '$Header: /cvs/stx/stx/libtool/Tools__StringSearchToolForTextView.st,v 1.3 2008-04-08 09:03:48 fm Exp $'
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   273
! !