Tools__StringSearchToolForTextView.st
author fm
Mon, 28 Apr 2008 12:47:50 +0200
changeset 8084 411aeb42a6c1
parent 8079 4aec56e898ce
child 8085 e050190fee76
permissions -rw-r--r--
return focus and hide after pressing #Escape
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
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
     6
	instanceVariableNames:'textView matchHolder'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
     7
	classVariableNames:''
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
     8
	poolDictionaries:''
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
     9
	category:'Interface-Tools'
8049
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
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    15
windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    16
    "This resource specification was automatically generated
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    17
     by the UIPainter of ST/X."
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    18
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    19
    "Do not manually edit this!! If it is corrupted,
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    20
     the UIPainter may not be able to read the specification."
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    21
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    22
    "
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    23
     UIPainter new openOnClass:Tools::StringSearchToolForTextView andSelector:#windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    24
     Tools::StringSearchToolForTextView new openInterface:#windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    25
     Tools::StringSearchToolForTextView open
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    26
    "
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    27
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    28
    <resource: #canvas>
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    29
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    30
    ^ 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    31
     #(FullSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    32
        name: windowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    33
        window: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    34
       (WindowSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    35
          label: 'Tools::StringSearchTool'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    36
          name: 'Tools::StringSearchTool'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    37
          min: (Point 10 10)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    38
          max: (Point 1024 768)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    39
          bounds: (Rectangle 0 0 883 27)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    40
        )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    41
        component: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    42
       (SpecCollection
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    43
          collection: (
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    44
           (ViewSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    45
              name: 'SearchBox'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    46
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    47
              level: -1
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    48
              component: 
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    49
             (SpecCollection
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    50
                collection: (
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    51
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    52
                    label: 'closeSearchBarIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    53
                    name: 'hideSearchBarButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    54
                    layout: (LayoutFrame 1 0 2 0 22 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    55
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    56
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    57
                    model: hideSearchBar
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    58
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    59
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    60
                    label: 'Search:'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    61
                    name: 'SearchLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    62
                    layout: (LayoutFrame 23 0 1 0 71 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    63
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    64
                    adjust: right
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    65
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    66
                 (InputFieldSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    67
                    name: 'SearchEntryField'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    68
                    layout: (LayoutFrame 72 0 1 0 253 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    69
                    model: searchTextHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    70
                    immediateAccept: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    71
                    acceptOnReturn: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    72
                    acceptOnTab: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    73
                    acceptOnLostFocus: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    74
                    modifiedChannel: searchTextModifiedHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    75
                    acceptOnPointerLeave: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    76
                    postBuildCallback: postBuildSearchTextView:
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    77
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    78
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    79
                    label: 'searchNextIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    80
                    name: 'SearchNextButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    81
                    layout: (LayoutFrame 258 0 2 0 279 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    82
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    83
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    84
                    model: searchNextTextButtonPressed
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    85
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    86
                 (ActionButtonSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    87
                    label: 'searchPreviousIcon'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    88
                    name: 'searchPreviousButton'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    89
                    layout: (LayoutFrame 286 0 2 0 307 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    90
                    hasCharacterOrientedLabel: false
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    91
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    92
                    model: searchPreviousTextButtonPressed
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    93
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    94
                 (CheckBoxSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    95
                    label: 'Ignore case'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    96
                    name: 'IgnoreCaseCheckBox'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    97
                    layout: (LayoutFrame 312 0 1 0 424 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    98
                    model: ignoreCaseHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
    99
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   100
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   101
                 (CheckBoxSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   102
                    label: 'Match'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   103
                    name: 'MatchCheckBox'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   104
                    layout: (LayoutFrame 424 0 1 0 508 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   105
                    model: matchHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   106
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   107
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   108
                 (CheckBoxSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   109
                    label: 'Restart'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   110
                    name: 'RestartCheckBox'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   111
                    layout: (LayoutFrame 509 0 1 0 593 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   112
                    model: restartHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   113
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   114
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   115
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   116
                    label: 'SearchBarImageInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   117
                    name: 'SearchBarImageInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   118
                    layout: (LayoutFrame 598 0 1 0 622 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
                    labelChannel: searchBarImageInfoLabelHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   122
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   123
                 (LabelSpec
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   124
                    label: 'SearchBarInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   125
                    name: 'SearchBarInfoLabel'
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   126
                    layout: (LayoutFrame 633 0 1 0 882 0 23 0)
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   127
                    translateLabel: true
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   128
                    labelChannel: searchBarInfoLabelHolder
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   129
                    adjust: left
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   130
                  )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   131
                 )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   132
               
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   133
              )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   134
            )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   135
           )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   136
         
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   137
        )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   138
      )
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   139
!
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   140
8070
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   141
windowSpec_old
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   142
    "This resource specification was automatically generated
3845b02f8475 initial checkin
fm
parents:
diff changeset
   143
     by the UIPainter of ST/X."
3845b02f8475 initial checkin
fm
parents:
diff changeset
   144
3845b02f8475 initial checkin
fm
parents:
diff changeset
   145
    "Do not manually edit this!! If it is corrupted,
3845b02f8475 initial checkin
fm
parents:
diff changeset
   146
     the UIPainter may not be able to read the specification."
3845b02f8475 initial checkin
fm
parents:
diff changeset
   147
3845b02f8475 initial checkin
fm
parents:
diff changeset
   148
    "
3845b02f8475 initial checkin
fm
parents:
diff changeset
   149
     UIPainter new openOnClass:Tools::StringSearchToolForTextView andSelector:#windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   150
     Tools::StringSearchToolForTextView new openInterface:#windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   151
     Tools::StringSearchToolForTextView open
3845b02f8475 initial checkin
fm
parents:
diff changeset
   152
    "
3845b02f8475 initial checkin
fm
parents:
diff changeset
   153
3845b02f8475 initial checkin
fm
parents:
diff changeset
   154
    <resource: #canvas>
3845b02f8475 initial checkin
fm
parents:
diff changeset
   155
3845b02f8475 initial checkin
fm
parents:
diff changeset
   156
    ^ 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   157
     #(FullSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   158
        name: windowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   159
        window: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   160
       (WindowSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   161
          label: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   162
          name: 'Tools::StringSearchTool'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   163
          min: (Point 10 10)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   164
          max: (Point 1024 768)
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   165
          bounds: (Rectangle 0 0 883 27)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   166
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   167
        component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   168
       (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   169
          collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
   170
           (ViewSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   171
              name: 'SearchBox'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   172
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   173
              level: -1
3845b02f8475 initial checkin
fm
parents:
diff changeset
   174
              component: 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   175
             (SpecCollection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   176
                collection: (
3845b02f8475 initial checkin
fm
parents:
diff changeset
   177
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   178
                    label: 'closeSearchBarIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   179
                    name: 'hideSearchBarButton'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   180
                    layout: (LayoutFrame 1 0 2 0 22 0 23 0)
3845b02f8475 initial checkin
fm
parents:
diff changeset
   181
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   182
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   183
                    model: hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
   184
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   185
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   186
                    label: 'Search:'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   187
                    name: 'SearchLabel'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   188
                    layout: (LayoutFrame 23 0 1 0 71 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   189
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   190
                    adjust: right
3845b02f8475 initial checkin
fm
parents:
diff changeset
   191
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   192
                 (InputFieldSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   193
                    name: 'SearchEntryField'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   194
                    layout: (LayoutFrame 72 0 1 0 253 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   195
                    model: searchTextHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   196
                    immediateAccept: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   197
                    acceptOnReturn: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   198
                    acceptOnTab: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   199
                    acceptOnLostFocus: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   200
                    modifiedChannel: searchTextModifiedHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   201
                    acceptOnPointerLeave: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   202
                    postBuildCallback: postBuildSearchTextView:
3845b02f8475 initial checkin
fm
parents:
diff changeset
   203
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   204
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   205
                    label: 'searchNextIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   206
                    name: 'SearchNextButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   207
                    layout: (LayoutFrame 258 0 2 0 279 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   208
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   209
                    translateLabel: true
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   210
                    model: searchNextTextButtonPressed
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   211
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   212
                 (ActionButtonSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   213
                    label: 'searchPreviousIcon'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   214
                    name: 'searchPreviousButton'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   215
                    layout: (LayoutFrame 286 0 2 0 307 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   216
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   217
                    translateLabel: true
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   218
                    model: searchPreviousTextButtonPressed
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   219
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   220
                 (CheckBoxSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   221
                    label: 'Ignore case'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   222
                    name: 'IgnoreCaseCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   223
                    layout: (LayoutFrame 312 0 1 0 424 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   224
                    model: ignoreCaseHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   225
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   226
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   227
                 (CheckBoxSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   228
                    label: 'Match'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   229
                    name: 'MatchCheckBox'
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   230
                    layout: (LayoutFrame 424 0 1 0 508 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   231
                    model: matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   232
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   233
                  )
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   234
                 (CheckBoxSpec
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   235
                    label: 'Restart'
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   236
                    name: 'RestartCheckBox'
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   237
                    layout: (LayoutFrame 509 0 1 0 593 0 23 0)
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   238
                    model: restartHolder
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   239
                    translateLabel: true
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   240
                  )
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   241
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   242
                    label: 'SearchBarImageInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   243
                    name: 'SearchBarImageInfoLabel'
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   244
                    layout: (LayoutFrame 598 0 1 0 622 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   245
                    hasCharacterOrientedLabel: false
3845b02f8475 initial checkin
fm
parents:
diff changeset
   246
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   247
                    labelChannel: searchBarImageInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   248
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   249
                 (LabelSpec
3845b02f8475 initial checkin
fm
parents:
diff changeset
   250
                    label: 'SearchBarInfoLabel'
3845b02f8475 initial checkin
fm
parents:
diff changeset
   251
                    name: 'SearchBarInfoLabel'
8078
5339ee7d9b22 restartSearch
fm
parents: 8070
diff changeset
   252
                    layout: (LayoutFrame 633 0 1 0 882 0 23 0)
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   253
                    translateLabel: true
3845b02f8475 initial checkin
fm
parents:
diff changeset
   254
                    labelChannel: searchBarInfoLabelHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   255
                    adjust: left
3845b02f8475 initial checkin
fm
parents:
diff changeset
   256
                  )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   257
                 )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   258
               
3845b02f8475 initial checkin
fm
parents:
diff changeset
   259
              )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   260
            )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   261
           )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   262
         
3845b02f8475 initial checkin
fm
parents:
diff changeset
   263
        )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   264
      )
3845b02f8475 initial checkin
fm
parents:
diff changeset
   265
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   266
3845b02f8475 initial checkin
fm
parents:
diff changeset
   267
!StringSearchToolForTextView methodsFor:'accessing'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   268
3845b02f8475 initial checkin
fm
parents:
diff changeset
   269
textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   270
    ^ textView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   271
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   272
3845b02f8475 initial checkin
fm
parents:
diff changeset
   273
textView:something
3845b02f8475 initial checkin
fm
parents:
diff changeset
   274
    textView := something.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   275
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   276
3845b02f8475 initial checkin
fm
parents:
diff changeset
   277
!StringSearchToolForTextView methodsFor:'aspects'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   278
8070
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   279
matchCheckboxVisible
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   280
    ^ true
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   281
!
2acefb7023d2 changed #matchCheckboxVisible
Claus Gittinger <cg@exept.de>
parents: 8064
diff changeset
   282
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   283
matchHolder
3845b02f8475 initial checkin
fm
parents:
diff changeset
   284
3845b02f8475 initial checkin
fm
parents:
diff changeset
   285
    matchHolder isNil ifTrue:[
3845b02f8475 initial checkin
fm
parents:
diff changeset
   286
        matchHolder := false asValue.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   287
"/ if your app needs to be notified of changes, uncomment one of the lines below:
3845b02f8475 initial checkin
fm
parents:
diff changeset
   288
"/       matchHolder addDependent:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   289
        matchHolder onChangeSend:#matchHolderChanged to:self.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   290
3845b02f8475 initial checkin
fm
parents:
diff changeset
   291
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   292
    ^ matchHolder.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   293
3845b02f8475 initial checkin
fm
parents:
diff changeset
   294
    "Created: / 16-06-2007 / 06:45:04 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   295
    "Modified: / 16-06-2007 / 19:32:15 / Administrador"
3845b02f8475 initial checkin
fm
parents:
diff changeset
   296
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   297
3845b02f8475 initial checkin
fm
parents:
diff changeset
   298
!StringSearchToolForTextView methodsFor:'change & update'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   299
3845b02f8475 initial checkin
fm
parents:
diff changeset
   300
matchHolderChanged
3845b02f8475 initial checkin
fm
parents:
diff changeset
   301
3845b02f8475 initial checkin
fm
parents:
diff changeset
   302
    self searchNextTextIncludingCurrentSelection: true.
8062
3b38e4e4d786 searchString without showing searchBar
fm
parents: 8060
diff changeset
   303
    self setFocusToSearchTextView.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   304
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   305
3845b02f8475 initial checkin
fm
parents:
diff changeset
   306
!StringSearchToolForTextView methodsFor:'initialization & release'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   307
3845b02f8475 initial checkin
fm
parents:
diff changeset
   308
postBuildSearchTextView: anEditFieldView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   309
3845b02f8475 initial checkin
fm
parents:
diff changeset
   310
    super postBuildSearchTextView: anEditFieldView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   311
    anEditFieldView crAction: self crAction.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   312
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   313
3845b02f8475 initial checkin
fm
parents:
diff changeset
   314
!StringSearchToolForTextView methodsFor:'public'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   315
3845b02f8475 initial checkin
fm
parents:
diff changeset
   316
crAction
3845b02f8475 initial checkin
fm
parents:
diff changeset
   317
3845b02f8475 initial checkin
fm
parents:
diff changeset
   318
    ^ [self returnFocusToTextView]
3845b02f8475 initial checkin
fm
parents:
diff changeset
   319
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   320
3845b02f8475 initial checkin
fm
parents:
diff changeset
   321
returnFocusToTextView
3845b02f8475 initial checkin
fm
parents:
diff changeset
   322
3845b02f8475 initial checkin
fm
parents:
diff changeset
   323
    textView takeFocus
3845b02f8475 initial checkin
fm
parents:
diff changeset
   324
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   325
3845b02f8475 initial checkin
fm
parents:
diff changeset
   326
!StringSearchToolForTextView methodsFor:'searching'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   327
3845b02f8475 initial checkin
fm
parents:
diff changeset
   328
hideSearchBar
3845b02f8475 initial checkin
fm
parents:
diff changeset
   329
3845b02f8475 initial checkin
fm
parents:
diff changeset
   330
    masterApplication isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   331
    masterApplication hideSearchBar.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   332
    self returnFocusToTextView.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   333
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   334
3845b02f8475 initial checkin
fm
parents:
diff changeset
   335
searchNextTextFromBeginning
3845b02f8475 initial checkin
fm
parents:
diff changeset
   336
    |searchText ignoreCase match absentBlock|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   337
3845b02f8475 initial checkin
fm
parents:
diff changeset
   338
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   339
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   340
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   341
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   342
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   343
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   344
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   345
        searchFwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   346
        ignoreCase:ignoreCase 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   347
        match: match
3845b02f8475 initial checkin
fm
parents:
diff changeset
   348
        startingAtLine:1 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   349
        col:0
3845b02f8475 initial checkin
fm
parents:
diff changeset
   350
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   351
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   352
3845b02f8475 initial checkin
fm
parents:
diff changeset
   353
searchNextTextIncludingCurrentSelection: includeCurrentSelection
3845b02f8475 initial checkin
fm
parents:
diff changeset
   354
    |searchText ignoreCase  match absentBlock startCol startLine|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   355
3845b02f8475 initial checkin
fm
parents:
diff changeset
   356
    self searchTextStarted.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   357
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   358
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   359
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   360
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   361
    match := self matchHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   362
    absentBlock := [self searchNextTextReachEnd].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   363
    (self textView hasSelection and:[includeCurrentSelection]) 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   364
        ifTrue:[
8064
9d91d0d69b09 changed #searchNextTextIncludingCurrentSelection:
fm
parents: 8062
diff changeset
   365
            startCol := ((self textView selectionStartCol ? 1) - 2) max: 0.
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   366
            startLine := (self textView selectionStartLine ? 1).
3845b02f8475 initial checkin
fm
parents:
diff changeset
   367
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match startingAtLine:startLine col:startCol ifAbsent:absentBlock.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   368
        ] ifFalse:[
3845b02f8475 initial checkin
fm
parents:
diff changeset
   369
            self textView searchFwd:searchText ignoreCase:ignoreCase match: match ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   370
    ].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   371
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   372
3845b02f8475 initial checkin
fm
parents:
diff changeset
   373
searchPreviousText
3845b02f8475 initial checkin
fm
parents:
diff changeset
   374
3845b02f8475 initial checkin
fm
parents:
diff changeset
   375
    |searchText ignoreCase absentBlock|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   376
3845b02f8475 initial checkin
fm
parents:
diff changeset
   377
    self searchTextStarted.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   378
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   379
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   380
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   381
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   382
    absentBlock := [self searchPreviousTextReachBeginning].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   383
    self textView searchBwd:searchText ignoreCase:ignoreCase ifAbsent:absentBlock.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   384
!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   385
3845b02f8475 initial checkin
fm
parents:
diff changeset
   386
searchPreviousTextFromEnd
3845b02f8475 initial checkin
fm
parents:
diff changeset
   387
3845b02f8475 initial checkin
fm
parents:
diff changeset
   388
    |searchText ignoreCase absentBlock startLine startCol|
3845b02f8475 initial checkin
fm
parents:
diff changeset
   389
3845b02f8475 initial checkin
fm
parents:
diff changeset
   390
    searchText := searchTextView contents.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   391
    searchText isEmptyOrNil ifTrue:[^self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   392
    ignoreCase := self ignoreCaseHolder value.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   393
    self textView isNil ifTrue:[^ self].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   394
    absentBlock := [self searchTextNotFound.].
3845b02f8475 initial checkin
fm
parents:
diff changeset
   395
    startLine := self textView numberOfLines + 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   396
    startCol := 1.
3845b02f8475 initial checkin
fm
parents:
diff changeset
   397
    self textView 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   398
        searchBwd:searchText 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   399
        ignoreCase:ignoreCase
3845b02f8475 initial checkin
fm
parents:
diff changeset
   400
        startingAtLine:startLine 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   401
        col:startCol 
3845b02f8475 initial checkin
fm
parents:
diff changeset
   402
        ifAbsent:absentBlock
3845b02f8475 initial checkin
fm
parents:
diff changeset
   403
! !
3845b02f8475 initial checkin
fm
parents:
diff changeset
   404
3845b02f8475 initial checkin
fm
parents:
diff changeset
   405
!StringSearchToolForTextView class methodsFor:'documentation'!
3845b02f8475 initial checkin
fm
parents:
diff changeset
   406
3845b02f8475 initial checkin
fm
parents:
diff changeset
   407
version
8079
4aec56e898ce restartSearch
fm
parents: 8078
diff changeset
   408
    ^ '$Header: /cvs/stx/stx/libtool/Tools__StringSearchToolForTextView.st,v 1.7 2008-04-23 10:34:32 fm Exp $'
8049
3845b02f8475 initial checkin
fm
parents:
diff changeset
   409
! !