Tools__StringSearchToolForTextView.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 15566 184cea584be5
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8276
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     1
"
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     2
 COPYRIGHT (c) 2008 by eXept Software AG
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     3
              All Rights Reserved
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     4
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     5
 This software is furnished under a license and may be used
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     6
 only in accordance with the terms of that license and with the
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     8
 be provided or otherwise made available to, or used by, any
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
     9
 other person.  No title to or ownership of the software is
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    10
 hereby transferred.
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    11
"
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
3845b02f8475 initial checkin
fm
parents:
diff changeset
    13
3845b02f8475 initial checkin
fm
parents:
diff changeset
    14
"{ NameSpace: Tools }"
3845b02f8475 initial checkin
fm
parents:
diff changeset
    15
3845b02f8475 initial checkin
fm
parents:
diff changeset
    16
StringSearchTool subclass:#StringSearchToolForTextView
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    17
	instanceVariableNames:'textView matchHolder'
8915
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    18
	classVariableNames:'LastMatch'
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    19
	poolDictionaries:''
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    20
	category:'Interface-Tools'
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    21
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
    22
8276
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    23
!StringSearchToolForTextView class methodsFor:'documentation'!
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    24
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    25
copyright
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    26
"
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    27
 COPYRIGHT (c) 2008 by eXept Software AG
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    28
              All Rights Reserved
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    29
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    30
 This software is furnished under a license and may be used
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    31
 only in accordance with the terms of that license and with the
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    33
 be provided or otherwise made available to, or used by, any
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    34
 other person.  No title to or ownership of the software is
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    35
 hereby transferred.
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    36
"
43b76fabaa23 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8085
diff changeset
    37
! !
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    38
8915
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    39
!StringSearchToolForTextView class methodsFor:'accessing'!
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    40
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    41
lastMatch
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    42
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    43
    ^ LastMatch ? false
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    44
!
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    45
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    46
lastMatch: aBoolean
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    47
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    48
    LastMatch := aBoolean
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    49
! !
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
    50
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
    51
!StringSearchToolForTextView class methodsFor:'interface specs'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
    52
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    53
windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    54
    "This resource specification was automatically generated
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    55
     by the UIPainter of ST/X."
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    56
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    57
    "Do not manually edit this!! If it is corrupted,
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    58
     the UIPainter may not be able to read the specification."
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    59
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    60
    "
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    61
     UIPainter new openOnClass:Tools::StringSearchToolForTextView andSelector:#windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    62
     Tools::StringSearchToolForTextView new openInterface:#windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    63
     Tools::StringSearchToolForTextView open
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    64
    "
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    65
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    66
    <resource: #canvas>
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    67
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    68
    ^ 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    69
     #(FullSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    70
        name: windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    71
        window: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    72
       (WindowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    73
          label: 'Tools::StringSearchTool'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    74
          name: 'Tools::StringSearchTool'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    75
          min: (Point 10 10)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    76
          bounds: (Rectangle 0 0 883 27)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    77
        )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    78
        component: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    79
       (SpecCollection
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    80
          collection: (
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    81
           (ViewSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    82
              name: 'SearchBox'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    83
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    84
              level: -1
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    85
              component: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    86
             (SpecCollection
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    87
                collection: (
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    88
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    89
                    label: 'closeSearchBarIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    90
                    name: 'hideSearchBarButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    91
                    layout: (LayoutFrame 1 0 2 0 22 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    92
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    93
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    94
                    model: hideSearchBar
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    95
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    96
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    97
                    label: 'Search:'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    98
                    name: 'SearchLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    99
                    layout: (LayoutFrame 23 0 1 0 71 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   100
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   101
                    adjust: right
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   102
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   103
                 (InputFieldSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   104
                    name: 'SearchEntryField'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   105
                    layout: (LayoutFrame 72 0 1 0 253 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   106
                    model: searchTextHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   107
                    immediateAccept: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   108
                    acceptOnReturn: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   109
                    acceptOnTab: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   110
                    acceptOnLostFocus: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   111
                    modifiedChannel: searchTextModifiedHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   112
                    acceptOnPointerLeave: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   113
                    postBuildCallback: postBuildSearchTextView:
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   114
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   115
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   116
                    label: 'searchNextIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   117
                    name: 'SearchNextButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   118
                    layout: (LayoutFrame 258 0 2 0 279 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   119
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   120
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   121
                    model: searchNextTextButtonPressed
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   122
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   123
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   124
                    label: 'searchPreviousIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   125
                    name: 'searchPreviousButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   126
                    layout: (LayoutFrame 286 0 2 0 307 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   127
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   128
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   129
                    model: searchPreviousTextButtonPressed
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   130
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   131
                 (CheckBoxSpec
8925
b8b7037e19fd case toggle reversed
Claus Gittinger <cg@exept.de>
parents: 8915
diff changeset
   132
                    label: 'Case'
b8b7037e19fd case toggle reversed
Claus Gittinger <cg@exept.de>
parents: 8915
diff changeset
   133
                    name: 'DoNotIgnoreCaseCheckBox'
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   134
                    layout: (LayoutFrame 312 0 1 0 396 0 23 0)
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   135
                    model: matchCaseHolder
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   136
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   137
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   138
                 (CheckBoxSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   139
                    label: 'Match'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   140
                    name: 'MatchCheckBox'
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   141
                    layout: (LayoutFrame 396 0 1 0 480 0 23 0)
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   142
                    model: matchHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   143
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   144
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   145
                 (CheckBoxSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   146
                    label: 'Restart'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   147
                    name: 'RestartCheckBox'
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   148
                    layout: (LayoutFrame 480 0 1 0 564 0 23 0)
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   149
                    model: restartHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   150
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   151
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   152
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   153
                    label: 'SearchBarImageInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   154
                    name: 'SearchBarImageInfoLabel'
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   155
                    layout: (LayoutFrame 564 0 1 0 588 0 23 0)
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   156
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   157
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   158
                    labelChannel: searchBarImageInfoLabelHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   159
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   160
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   161
                    label: 'SearchBarInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   162
                    name: 'SearchBarInfoLabel'
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   163
                    layout: (LayoutFrame 595 0 1 0 877 0 23 0)
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   164
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   165
                    labelChannel: searchBarInfoLabelHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   166
                    adjust: left
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   167
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   168
                 )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   169
               
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   170
              )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   171
            )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   172
           )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   173
         
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   174
        )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   175
      )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   176
!
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   177
8070
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   178
windowSpec_old
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   179
    "This resource specification was automatically generated
3845b02f8475 initial checkin
fm
parents:
diff changeset
   180
     by the UIPainter of ST/X."
3845b02f8475 initial checkin
fm
parents:
diff changeset
   181
3845b02f8475 initial checkin
fm
parents:
diff changeset
   182
    "Do not manually edit this!! If it is corrupted,
3845b02f8475 initial checkin
fm
parents:
diff changeset
   183
     the UIPainter may not be able to read the specification."
3845b02f8475 initial checkin
fm
parents:
diff changeset
   184
3845b02f8475 initial checkin
fm
parents:
diff changeset
   185
    "
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   186
     UIPainter new openOnClass:Tools::StringSearchToolForTextView andSelector:#windowSpec_old
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   187
     Tools::StringSearchToolForTextView new openInterface:#windowSpec_old
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   188
    "
3845b02f8475 initial checkin
fm
parents:
diff changeset
   189
3845b02f8475 initial checkin
fm
parents:
diff changeset
   190
    <resource: #canvas>
3845b02f8475 initial checkin
fm
parents:
diff changeset
   191
3845b02f8475 initial checkin
fm
parents:
diff changeset
   192
    ^ 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   193
     #(FullSpec
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   194
        name: #'windowSpec_old'
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   195
        window: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   196
       (WindowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   197
          label: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   198
          name: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   199
          min: (Point 10 10)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   200
          max: (Point 1024 768)
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   201
          bounds: (Rectangle 0 0 883 27)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   202
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   203
        component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   204
       (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   205
          collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
   206
           (ViewSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   207
              name: 'SearchBox'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   208
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   209
              level: -1
3845b02f8475 initial checkin
fm
parents:
diff changeset
   210
              component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   211
             (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   212
                collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
   213
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   214
                    label: 'closeSearchBarIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   215
                    name: 'hideSearchBarButton'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   216
                    layout: (LayoutFrame 1 0 2 0 22 0 23 0)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   217
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   218
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   219
                    model: hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
   220
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   221
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   222
                    label: 'Search:'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   223
                    name: 'SearchLabel'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   224
                    layout: (LayoutFrame 23 0 1 0 71 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   225
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   226
                    adjust: right
3845b02f8475 initial checkin
fm
parents:
diff changeset
   227
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   228
                 (InputFieldSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   229
                    name: 'SearchEntryField'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   230
                    layout: (LayoutFrame 72 0 1 0 253 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   231
                    model: searchTextHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   232
                    immediateAccept: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   233
                    acceptOnReturn: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   234
                    acceptOnTab: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   235
                    acceptOnLostFocus: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   236
                    modifiedChannel: searchTextModifiedHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   237
                    acceptOnPointerLeave: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   238
                    postBuildCallback: postBuildSearchTextView:
3845b02f8475 initial checkin
fm
parents:
diff changeset
   239
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   240
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   241
                    label: 'searchNextIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   242
                    name: 'SearchNextButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   243
                    layout: (LayoutFrame 258 0 2 0 279 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   244
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   245
                    translateLabel: true
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   246
                    model: searchNextTextButtonPressed
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   247
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   248
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   249
                    label: 'searchPreviousIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   250
                    name: 'searchPreviousButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   251
                    layout: (LayoutFrame 286 0 2 0 307 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   252
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   253
                    translateLabel: true
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   254
                    model: searchPreviousTextButtonPressed
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   255
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   256
                 (CheckBoxSpec
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   257
                    label: 'Case'
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   258
                    name: 'CaseCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   259
                    layout: (LayoutFrame 312 0 1 0 424 0 23 0)
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   260
                    model: matchCaseHolder
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   261
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   262
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   263
                 (CheckBoxSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   264
                    label: 'Match'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   265
                    name: 'MatchCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   266
                    layout: (LayoutFrame 424 0 1 0 508 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   267
                    model: matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   268
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   269
                  )
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   270
                 (CheckBoxSpec
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   271
                    label: 'Restart'
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   272
                    name: 'RestartCheckBox'
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   273
                    layout: (LayoutFrame 509 0 1 0 593 0 23 0)
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   274
                    model: restartHolder
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   275
                    translateLabel: true
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   276
                  )
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   277
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   278
                    label: 'SearchBarImageInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   279
                    name: 'SearchBarImageInfoLabel'
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   280
                    layout: (LayoutFrame 598 0 1 0 622 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   281
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   282
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   283
                    labelChannel: searchBarImageInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   284
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   285
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   286
                    label: 'SearchBarInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   287
                    name: 'SearchBarInfoLabel'
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   288
                    layout: (LayoutFrame 633 0 1 0 882 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   289
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   290
                    labelChannel: searchBarInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   291
                    adjust: left
3845b02f8475 initial checkin
fm
parents:
diff changeset
   292
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   293
                 )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   294
               
3845b02f8475 initial checkin
fm
parents:
diff changeset
   295
              )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   296
            )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   297
           )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   298
         
3845b02f8475 initial checkin
fm
parents:
diff changeset
   299
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   300
      )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   301
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   302
3845b02f8475 initial checkin
fm
parents:
diff changeset
   303
!StringSearchToolForTextView methodsFor:'accessing'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   304
3845b02f8475 initial checkin
fm
parents:
diff changeset
   305
textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   306
    ^ textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   307
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   308
3845b02f8475 initial checkin
fm
parents:
diff changeset
   309
textView:something
3845b02f8475 initial checkin
fm
parents:
diff changeset
   310
    textView := something.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   311
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   312
3845b02f8475 initial checkin
fm
parents:
diff changeset
   313
!StringSearchToolForTextView methodsFor:'aspects'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   314
8070
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   315
matchCheckboxVisible
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   316
    ^ true
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   317
!
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   318
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   319
matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   320
3845b02f8475 initial checkin
fm
parents:
diff changeset
   321
    matchHolder isNil ifTrue:[
8915
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
   322
        matchHolder := self class lastMatch asValue.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   323
"/ if your app needs to be notified of changes, uncomment one of the lines below:
3845b02f8475 initial checkin
fm
parents:
diff changeset
   324
"/       matchHolder addDependent:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   325
        matchHolder onChangeSend:#matchHolderChanged to:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   326
3845b02f8475 initial checkin
fm
parents:
diff changeset
   327
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   328
    ^ matchHolder.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   329
3845b02f8475 initial checkin
fm
parents:
diff changeset
   330
    "Created: / 16-06-2007 / 06:45:04 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   331
    "Modified: / 16-06-2007 / 19:32:15 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   332
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   333
3845b02f8475 initial checkin
fm
parents:
diff changeset
   334
!StringSearchToolForTextView methodsFor:'change & update'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   335
3845b02f8475 initial checkin
fm
parents:
diff changeset
   336
matchHolderChanged
3845b02f8475 initial checkin
fm
parents:
diff changeset
   337
3845b02f8475 initial checkin
fm
parents:
diff changeset
   338
    self searchNextTextIncludingCurrentSelection: true.
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   339
    self setFocusToSearchTextView.
8915
a46603e1539b *** empty log message ***
fm
parents: 8910
diff changeset
   340
    self class lastMatch: self matchHolder value.
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   341
!
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   342
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   343
searchTextModifiedHolderChanged
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   344
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   345
    |searchPattern|
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   346
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   347
    super searchTextModifiedHolderChanged.
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   348
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   349
    searchPattern := self searchText.
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   350
"/    Transcript showCR: searchPattern.
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   351
    textView setSearchPattern: searchPattern.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   352
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   353
3845b02f8475 initial checkin
fm
parents:
diff changeset
   354
!StringSearchToolForTextView methodsFor:'initialization & release'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   355
3845b02f8475 initial checkin
fm
parents:
diff changeset
   356
postBuildSearchTextView: anEditFieldView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   357
3845b02f8475 initial checkin
fm
parents:
diff changeset
   358
    super postBuildSearchTextView: anEditFieldView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   359
    anEditFieldView crAction: self crAction.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   360
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   361
8910
fm
parents: 8276
diff changeset
   362
!StringSearchToolForTextView methodsFor:'misc'!
fm
parents: 8276
diff changeset
   363
fm
parents: 8276
diff changeset
   364
trimMatchPattern: aString
fm
parents: 8276
diff changeset
   365
15289
a4b2c2b77420 class: Tools::StringSearchToolForTextView
Claus Gittinger <cg@exept.de>
parents: 9466
diff changeset
   366
    ^ aString trimForWhich: [:ch | ch == $*].
8910
fm
parents: 8276
diff changeset
   367
fm
parents: 8276
diff changeset
   368
    "
fm
parents: 8276
diff changeset
   369
    '***foo***' trimForWhich: [:ch | ch = $*].  
fm
parents: 8276
diff changeset
   370
    'foo***' trimForWhich: [:ch | ch = $*].    
fm
parents: 8276
diff changeset
   371
    '***foo' trimForWhich: [:ch | ch = $*].      
fm
parents: 8276
diff changeset
   372
    '***f***o***o***' trimForWhich: [:ch | ch = $*].     
fm
parents: 8276
diff changeset
   373
    'foo' trimForWhich: [:ch | ch = $*].
fm
parents: 8276
diff changeset
   374
    "
fm
parents: 8276
diff changeset
   375
! !
fm
parents: 8276
diff changeset
   376
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   377
!StringSearchToolForTextView methodsFor:'public'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   378
3845b02f8475 initial checkin
fm
parents:
diff changeset
   379
crAction
3845b02f8475 initial checkin
fm
parents:
diff changeset
   380
3845b02f8475 initial checkin
fm
parents:
diff changeset
   381
    ^ [self returnFocusToTextView]
3845b02f8475 initial checkin
fm
parents:
diff changeset
   382
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   383
8085
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   384
escapePressed
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   385
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   386
    self returnFocusToTextView. 
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   387
    super escapePressed.
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   388
!
e050190fee76 return focus and hide after pressing #Escape
fm
parents: 8079
diff changeset
   389
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   390
returnFocusToTextView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   391
3845b02f8475 initial checkin
fm
parents:
diff changeset
   392
    textView takeFocus
8910
fm
parents: 8276
diff changeset
   393
!
fm
parents: 8276
diff changeset
   394
fm
parents: 8276
diff changeset
   395
searchPreviousTextReachBeginning
fm
parents: 8276
diff changeset
   396
    |message searchText match |
fm
parents: 8276
diff changeset
   397
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   398
    searchText := self searchText.
8910
fm
parents: 8276
diff changeset
   399
    match := self matchHolder value.
fm
parents: 8276
diff changeset
   400
fm
parents: 8276
diff changeset
   401
    match ifTrue: [
fm
parents: 8276
diff changeset
   402
        searchText := self trimMatchPattern: searchText.
fm
parents: 8276
diff changeset
   403
        (searchText includes: $*) ifTrue: [
8958
6f1fef46e15e changed: #searchPreviousTextReachBeginning
fm
parents: 8956
diff changeset
   404
            message := (resources string: 'Match pattern not available for backward search').
8910
fm
parents: 8276
diff changeset
   405
            self searchTextNotFound: message.
fm
parents: 8276
diff changeset
   406
            Smalltalk beep.
fm
parents: 8276
diff changeset
   407
            ^ self
fm
parents: 8276
diff changeset
   408
        ].    
fm
parents: 8276
diff changeset
   409
    ].
fm
parents: 8276
diff changeset
   410
fm
parents: 8276
diff changeset
   411
    super searchPreviousTextReachBeginning
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   412
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   413
3845b02f8475 initial checkin
fm
parents:
diff changeset
   414
!StringSearchToolForTextView methodsFor:'searching'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   415
3845b02f8475 initial checkin
fm
parents:
diff changeset
   416
hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
   417
3845b02f8475 initial checkin
fm
parents:
diff changeset
   418
    masterApplication isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   419
    masterApplication hideSearchBar.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   420
    self returnFocusToTextView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   421
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   422
3845b02f8475 initial checkin
fm
parents:
diff changeset
   423
searchNextTextFromBeginning
3845b02f8475 initial checkin
fm
parents:
diff changeset
   424
    |searchText ignoreCase match absentBlock|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   425
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   426
    searchText := self searchText.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   427
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   428
    self textView isNil ifTrue:[^ self].
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   429
    ignoreCase := self ignoreCase.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   430
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   431
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   432
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   433
        searchFwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   434
        ignoreCase:ignoreCase 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   435
        match: match
3845b02f8475 initial checkin
fm
parents:
diff changeset
   436
        startingAtLine:1 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   437
        col:0
3845b02f8475 initial checkin
fm
parents:
diff changeset
   438
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   439
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   440
3845b02f8475 initial checkin
fm
parents:
diff changeset
   441
searchNextTextIncludingCurrentSelection: includeCurrentSelection
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   442
    |searchText ignoreCase  match absentBlock startCol startLine |
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   443
3845b02f8475 initial checkin
fm
parents:
diff changeset
   444
    self searchTextStarted.
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   445
    searchText := self searchText.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   446
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   447
    self textView isNil ifTrue:[^ self].
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   448
    ignoreCase := self ignoreCase.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   449
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   450
    absentBlock := [self searchNextTextReachEnd].
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   451
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   452
    (self textView hasSelection and:[includeCurrentSelection]) 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   453
        ifTrue:[
8064
9d91d0d69b09 changed #searchNextTextIncludingCurrentSelection:
fm
parents: 8062
diff changeset
   454
            startCol := ((self textView selectionStartCol ? 1) - 2) max: 0.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   455
            startLine := (self textView selectionStartLine ? 1).
3845b02f8475 initial checkin
fm
parents:
diff changeset
   456
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match startingAtLine:startLine col:startCol ifAbsent:absentBlock.
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   457
        ] ifFalse:[   
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   458
            self textView startPositionForSearchForward = (0 @ 1) ifTrue: [
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   459
                absentBlock := [self searchTextNotFound].
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   460
            ].
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   461
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   462
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   463
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   464
3845b02f8475 initial checkin
fm
parents:
diff changeset
   465
searchPreviousText
3845b02f8475 initial checkin
fm
parents:
diff changeset
   466
8910
fm
parents: 8276
diff changeset
   467
    |searchText ignoreCase match absentBlock|
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   468
3845b02f8475 initial checkin
fm
parents:
diff changeset
   469
    self searchTextStarted.
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   470
    searchText := self searchText.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   471
    searchText isEmptyOrNil ifTrue:[^self].
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   472
    ignoreCase := self ignoreCase.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   473
    self textView isNil ifTrue:[^ self].
8910
fm
parents: 8276
diff changeset
   474
    match := self matchHolder value.
fm
parents: 8276
diff changeset
   475
    match ifTrue: [
fm
parents: 8276
diff changeset
   476
        searchText := self trimMatchPattern: searchText.
fm
parents: 8276
diff changeset
   477
    ].
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   478
    absentBlock := [self searchPreviousTextReachBeginning].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   479
    self textView searchBwd:searchText ignoreCase:ignoreCase ifAbsent:absentBlock.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   480
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   481
3845b02f8475 initial checkin
fm
parents:
diff changeset
   482
searchPreviousTextFromEnd
3845b02f8475 initial checkin
fm
parents:
diff changeset
   483
3845b02f8475 initial checkin
fm
parents:
diff changeset
   484
    |searchText ignoreCase absentBlock startLine startCol|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   485
8997
05b9949f54aa fixes in searchBar
fm
parents: 8958
diff changeset
   486
    searchText := self searchText.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   487
    searchText isEmptyOrNil ifTrue:[^self].
8956
c69ca30a3fa7 changed:6 methods
fm
parents: 8925
diff changeset
   488
    ignoreCase := self ignoreCase.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   489
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   490
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   491
    startLine := self textView numberOfLines + 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   492
    startCol := 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   493
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   494
        searchBwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   495
        ignoreCase:ignoreCase
3845b02f8475 initial checkin
fm
parents:
diff changeset
   496
        startingAtLine:startLine 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   497
        col:startCol 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   498
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   499
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   500
3845b02f8475 initial checkin
fm
parents:
diff changeset
   501
!StringSearchToolForTextView class methodsFor:'documentation'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   502
3845b02f8475 initial checkin
fm
parents:
diff changeset
   503
version
15289
a4b2c2b77420 class: Tools::StringSearchToolForTextView
Claus Gittinger <cg@exept.de>
parents: 9466
diff changeset
   504
    ^ '$Header: /cvs/stx/stx/libtool/Tools__StringSearchToolForTextView.st,v 1.17 2015-02-13 21:58:38 cg Exp $'
8910
fm
parents: 8276
diff changeset
   505
!
fm
parents: 8276
diff changeset
   506
fm
parents: 8276
diff changeset
   507
version_CVS
15289
a4b2c2b77420 class: Tools::StringSearchToolForTextView
Claus Gittinger <cg@exept.de>
parents: 9466
diff changeset
   508
    ^ '$Header: /cvs/stx/stx/libtool/Tools__StringSearchToolForTextView.st,v 1.17 2015-02-13 21:58:38 cg Exp $'
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   509
! !
15289
a4b2c2b77420 class: Tools::StringSearchToolForTextView
Claus Gittinger <cg@exept.de>
parents: 9466
diff changeset
   510