FindFileApplication.st
branchjv
changeset 16827 5f036e451583
parent 16643 9fcec4cdfc7e
parent 16810 dee205471698
child 16829 a86b1a96af41
equal deleted inserted replaced
16808:1b3b701e1c58 16827:5f036e451583
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 2002 by eXept Software AG
     4  COPYRIGHT (c) 2002 by eXept Software AG
     3               All Rights Reserved
     5               All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
    22 		rememberInCache searchOnlyInCache searchForSameContents
    24 		rememberInCache searchOnlyInCache searchForSameContents
    23 		contentsInfoCache contentsInfoCacheAccessLock
    25 		contentsInfoCache contentsInfoCacheAccessLock
    24 		fileSizeOperatorHolder fileSizeHolder enableFileSizeFilter
    26 		fileSizeOperatorHolder fileSizeHolder enableFileSizeFilter
    25 		fileSizeUnitHolder modificationTimeOperatorHolder
    27 		fileSizeUnitHolder modificationTimeOperatorHolder
    26 		modificationTimeHolder enableModificationTimeFilter
    28 		modificationTimeHolder enableModificationTimeFilter
    27 		showUnreadableFilesAndDirectoriesHolder'
    29 		showUnreadableFilesAndDirectoriesHolder
       
    30 		modificationTimeOperatorIndexHolder'
    28 	classVariableNames:'ContentsInfoCache ContentsInfoCacheAccessLock LastRememberInCache
    31 	classVariableNames:'ContentsInfoCache ContentsInfoCacheAccessLock LastRememberInCache
    29 		LastSearchIgnoredCaseInContents LastSearchIgnoredCaseInFilename
    32 		LastSearchIgnoredCaseInContents LastSearchIgnoredCaseInFilename
    30 		SearchStringHistory LastSearchIgnoredCaseInExcludedFilename
    33 		SearchStringHistory LastSearchIgnoredCaseInExcludedFilename
    31 		LastShowUnreadableFilesAndDirectories'
    34 		LastShowUnreadableFilesAndDirectories'
    32 	poolDictionaries:''
    35 	poolDictionaries:''
   202            )
   205            )
   203           (ProgressIndicatorSpec
   206           (ProgressIndicatorSpec
   204              name: 'ProgressIndicator1'
   207              name: 'ProgressIndicator1'
   205              layout: (LayoutFrame 125 0 11 0 231 0 21 0)
   208              layout: (LayoutFrame 125 0 11 0 231 0 21 0)
   206              visibilityChannel: enableStop
   209              visibilityChannel: enableStop
   207              backgroundColor: (Color 0.0 66.9993133440147 66.9993133440147)
   210              backgroundColor: (Color 0.0 67.0 67.0)
   208              showPercentage: false
   211              showPercentage: false
   209              isActivityIndicator: true
   212              isActivityIndicator: true
   210            )
   213            )
   211           (ViewSpec
   214           (ViewSpec
   212              name: 'Box1'
   215              name: 'Box1'
   215             (SpecCollection
   218             (SpecCollection
   216                collection: (
   219                collection: (
   217                 (LabelSpec
   220                 (LabelSpec
   218                    label: 'Directory:'
   221                    label: 'Directory:'
   219                    name: 'DirectoryLabel'
   222                    name: 'DirectoryLabel'
   220                    layout: (LayoutFrame 2 0 7 0 154 0 24 0)
   223                    layout: (LayoutFrame 2 0 7 0 180 0 24 0)
   221                    activeHelpKey: searchDirectory
   224                    activeHelpKey: searchDirectory
   222                    translateLabel: true
   225                    translateLabel: true
   223                    adjust: right
   226                    adjust: right
   224                  )
   227                  )
   225                 (FilenameInputFieldSpec
   228                 (FilenameInputFieldSpec
   226                    name: 'DirectoryEntryField'
   229                    name: 'DirectoryEntryField'
   227                    layout: (LayoutFrame 156 0 4 0 -315 1 24 0)
   230                    layout: (LayoutFrame 180 0 4 0 -350 1 24 0)
   228                    activeHelpKey: searchDirectory
   231                    activeHelpKey: searchDirectory
   229                    model: searchDirectoryHolder
   232                    model: searchDirectoryHolder
   230                    immediateAccept: true
   233                    immediateAccept: true
   231                    acceptOnPointerLeave: false
   234                    acceptOnPointerLeave: false
   232                  )
   235                  )
   233                 (LabelSpec
   236                 (LabelSpec
   234                    label: 'Search Files Named:'
   237                    label: 'Search Files Named:'
   235                    name: 'FileNameLabel'
   238                    name: 'FileNameLabel'
   236                    layout: (LayoutFrame 2 0 31 0 154 0 48 0)
   239                    layout: (LayoutFrame 2 0 31 0 180 0 48 0)
   237                    activeHelpKey: namePattern
   240                    activeHelpKey: namePattern
   238                    translateLabel: true
   241                    translateLabel: true
   239                    adjust: right
   242                    adjust: right
   240                  )
   243                  )
   241                 (InputFieldSpec
   244                 (InputFieldSpec
   242                    name: 'FileNameEntryField'
   245                    name: 'FileNameEntryField'
   243                    layout: (LayoutFrame 156 0 28 0 -315 1 48 0)
   246                    layout: (LayoutFrame 180 0 28 0 -350 1 48 0)
   244                    activeHelpKey: namePattern
   247                    activeHelpKey: namePattern
   245                    tabable: true
   248                    tabable: true
   246                    model: namePatternHolder
   249                    model: namePatternHolder
   247                    immediateAccept: true
   250                    immediateAccept: true
   248                    acceptOnLeave: false
   251                    acceptOnLeave: false
   249                    acceptOnPointerLeave: false
   252                    acceptOnPointerLeave: false
   250                  )
   253                  )
   251                 (LabelSpec
   254                 (LabelSpec
   252                    label: 'But not Named:'
   255                    label: 'But not Named:'
   253                    name: 'Label1'
   256                    name: 'Label1'
   254                    layout: (LayoutFrame 2 0 55 0 154 0 72 0)
   257                    layout: (LayoutFrame 2 0 55 0 180 0 72 0)
   255                    activeHelpKey: excludedNamePattern
   258                    activeHelpKey: excludedNamePattern
   256                    translateLabel: true
   259                    translateLabel: true
   257                    adjust: right
   260                    adjust: right
   258                  )
   261                  )
   259                 (InputFieldSpec
   262                 (InputFieldSpec
   260                    name: 'EntryField1'
   263                    name: 'EntryField1'
   261                    layout: (LayoutFrame 156 0 52 0 -315 1 72 0)
   264                    layout: (LayoutFrame 180 0 52 0 -350 1 72 0)
   262                    activeHelpKey: excludedNamePattern
   265                    activeHelpKey: excludedNamePattern
   263                    tabable: true
   266                    tabable: true
   264                    model: excludedNamePatternHolder
   267                    model: excludedNamePatternHolder
   265                    immediateAccept: true
   268                    immediateAccept: true
   266                    acceptOnLeave: false
   269                    acceptOnLeave: false
   267                    acceptOnPointerLeave: false
   270                    acceptOnPointerLeave: false
   268                  )
   271                  )
   269                 (LabelSpec
   272                 (LabelSpec
   270                    label: 'Containing:'
   273                    label: 'Containing:'
   271                    name: 'ContentsLabel'
   274                    name: 'ContentsLabel'
   272                    layout: (LayoutFrame 2 0 79 0 154 0 96 0)
   275                    layout: (LayoutFrame 2 0 79 0 180 0 96 0)
   273                    activeHelpKey: contentsPattern
   276                    activeHelpKey: contentsPattern
   274                    translateLabel: true
   277                    translateLabel: true
   275                    adjust: right
   278                    adjust: right
   276                  )
   279                  )
   277                 (ComboBoxSpec
   280                 (ComboBoxSpec
   278                    name: 'ComboBox1'
   281                    name: 'ComboBox1'
   279                    layout: (LayoutFrame 156 0 76 0 -315 1 96 0)
   282                    layout: (LayoutFrame 180 0 76 0 -350 1 96 0)
   280                    activeHelpKey: contentsPattern
   283                    activeHelpKey: contentsPattern
   281                    enableChannel: notSearchForSameContents
   284                    enableChannel: notSearchForSameContents
   282                    tabable: true
   285                    tabable: true
   283                    model: contentsPatternHolder
   286                    model: contentsPatternHolder
   284                    immediateAccept: true
   287                    immediateAccept: true
   285                    acceptOnPointerLeave: false
   288                    acceptOnPointerLeave: false
   286                    comboList: searchStringHistory
   289                    comboList: searchStringHistory
       
   290                    useIndex: false
   287                  )
   291                  )
   288                 (LabelSpec
   292                 (LabelSpec
   289                    label: 'Not Containing:'
   293                    label: 'Not Containing:'
   290                    name: 'NotContentsLabel'
   294                    name: 'NotContentsLabel'
   291                    layout: (LayoutFrame 2 0 103 0 154 0 120 0)
   295                    layout: (LayoutFrame 2 0 103 0 180 0 120 0)
   292                    activeHelpKey: notContentsPattern
   296                    activeHelpKey: notContentsPattern
   293                    translateLabel: true
   297                    translateLabel: true
   294                    adjust: right
   298                    adjust: right
   295                  )
   299                  )
   296                 (InputFieldSpec
   300                 (InputFieldSpec
   297                    name: 'NotContentsEntryField'
   301                    name: 'NotContentsEntryField'
   298                    layout: (LayoutFrame 156 0 100 0 -315 1 120 0)
   302                    layout: (LayoutFrame 180 0 100 0 -350 1 120 0)
   299                    activeHelpKey: notContentsPattern
   303                    activeHelpKey: notContentsPattern
   300                    enableChannel: notSearchForSameContents
   304                    enableChannel: notSearchForSameContents
   301                    tabable: true
   305                    tabable: true
   302                    model: notContentsPatternHolder
   306                    model: notContentsPatternHolder
   303                    immediateAccept: true
   307                    immediateAccept: true
   304                    acceptOnPointerLeave: false
   308                    acceptOnPointerLeave: false
   305                  )
   309                  )
   306                 (LabelSpec
   310                 (LabelSpec
   307                    label: 'Same Contents As:'
   311                    label: 'Same Contents As:'
   308                    name: 'SameContentsAsLabel'
   312                    name: 'SameContentsAsLabel'
   309                    layout: (LayoutFrame 2 0 127 0 154 0 144 0)
   313                    layout: (LayoutFrame 2 0 127 0 180 0 144 0)
   310                    activeHelpKey: sameContents
   314                    activeHelpKey: sameContents
   311                    translateLabel: true
   315                    translateLabel: true
   312                    adjust: right
   316                    adjust: right
   313                  )
   317                  )
   314                 (InputFieldSpec
   318                 (InputFieldSpec
   315                    name: 'SameContentsAsEntryField'
   319                    name: 'SameContentsAsEntryField'
   316                    layout: (LayoutFrame 156 0 124 0 -339 1 144 0)
   320                    layout: (LayoutFrame 180 0 124 0 -367 1 144 0)
   317                    activeHelpKey: sameContents
   321                    activeHelpKey: sameContents
   318                    enableChannel: searchForSameContents
   322                    enableChannel: searchForSameContents
   319                    tabable: true
   323                    tabable: true
   320                    model: sameContentsAsHolder
   324                    model: sameContentsAsHolder
   321                    immediateAccept: true
   325                    immediateAccept: true
   322                    acceptOnPointerLeave: false
   326                    acceptOnPointerLeave: false
   323                  )
   327                  )
   324                 (CheckToggleSpec
   328                 (CheckToggleSpec
   325                    name: 'EnableSameContentsCheckToggle'
   329                    name: 'EnableSameContentsCheckToggle'
   326                    layout: (LayoutOrigin -334 1 128 0)
   330                    layout: (LayoutOrigin -366 1 128 0)
   327                    activeHelpKey: sameContents
   331                    activeHelpKey: sameContents
       
   332                    translateLabel: true
   328                    model: searchForSameContents
   333                    model: searchForSameContents
   329                    isTriggerOnDown: true
   334                    isTriggerOnDown: true
   330                    showLamp: false
   335                    showLamp: false
   331                    lampColor: (Color 100.0 100.0 0.0)
   336                    lampColor: (Color 100.0 100.0 0.0)
   332                  )
   337                  )
   333                 (LabelSpec
   338                 (LabelSpec
   334                    label: 'File Size:'
   339                    label: 'File Size:'
   335                    name: 'FileSizeLabel'
   340                    name: 'FileSizeLabel'
   336                    layout: (LayoutFrame 2 0 151 0 154 0 168 0)
   341                    layout: (LayoutFrame 2 0 151 0 180 0 168 0)
   337                    activeHelpKey: fileSize
   342                    activeHelpKey: fileSize
   338                    translateLabel: true
   343                    translateLabel: true
   339                    adjust: right
   344                    adjust: right
   340                  )
   345                  )
   341                 (PopUpListSpec
   346                 (PopUpListSpec
   342                    label: 'PopUp List'
   347                    label: 'PopUp List'
   343                    name: 'FileSizeOperatorPopUpList'
   348                    name: 'FileSizeOperatorPopUpList'
   344                    layout: (LayoutFrame 157 0 148 0 212 0 168 0)
   349                    layout: (LayoutFrame 180 0 148 0 260 0 168 0)
   345                    activeHelpKey: fileSize
   350                    activeHelpKey: fileSize
       
   351                    translateLabel: true
   346                    tabable: true
   352                    tabable: true
   347                    model: fileSizeOperatorHolder
   353                    model: fileSizeOperatorHolder
   348                    enableChannel: enableFileSizeFilterAndNotSearchForSameContents
   354                    enableChannel: enableFileSizeFilterAndNotSearchForSameContents
   349                    menu: 
   355                    menu: 
   350                   (Array
   356                   (Array
   353                      ' ~ '
   359                      ' ~ '
   354                    )
   360                    )
   355                  )
   361                  )
   356                 (InputFieldSpec
   362                 (InputFieldSpec
   357                    name: 'FileSizeEntryField'
   363                    name: 'FileSizeEntryField'
   358                    layout: (LayoutFrame 219 0 148 0 -349 1 168 0)
   364                    layout: (LayoutFrame 260 0 148 0 -367 1 168 0)
   359                    activeHelpKey: fileSize
   365                    activeHelpKey: fileSize
   360                    enableChannel: enableFileSizeFilterAndNotSearchForSameContents
   366                    enableChannel: enableFileSizeFilterAndNotSearchForSameContents
   361                    tabable: true
   367                    tabable: true
   362                    model: fileSizeHolder
   368                    model: fileSizeHolder
   363                    type: fileSize
   369                    type: fileSize
   366                    acceptOnLostFocus: true
   372                    acceptOnLostFocus: true
   367                    acceptOnPointerLeave: true
   373                    acceptOnPointerLeave: true
   368                  )
   374                  )
   369                 (CheckToggleSpec
   375                 (CheckToggleSpec
   370                    name: 'EnableSizeCheckToggle'
   376                    name: 'EnableSizeCheckToggle'
   371                    layout: (LayoutOrigin -334 1 151 0)
   377                    layout: (LayoutOrigin -366 1 151 0)
   372                    activeHelpKey: fileSize
   378                    activeHelpKey: fileSize
       
   379                    translateLabel: true
   373                    model: enableFileSizeFilter
   380                    model: enableFileSizeFilter
   374                    enableChannel: notSearchForSameContents
   381                    enableChannel: notSearchForSameContents
   375                    isTriggerOnDown: true
   382                    isTriggerOnDown: true
   376                    showLamp: false
   383                    showLamp: false
   377                    lampColor: (Color 100.0 100.0 0.0)
   384                    lampColor: (Color 100.0 100.0 0.0)
   378                  )
   385                  )
   379                 (LabelSpec
   386                 (LabelSpec
   380                    label: 'Modified:'
   387                    label: 'Modified:'
   381                    name: 'Label2'
   388                    name: 'Label2'
   382                    layout: (LayoutFrame 2 0 175 0 154 0 192 0)
   389                    layout: (LayoutFrame 2 0 175 0 180 0 192 0)
   383                    activeHelpKey: modificationTime
   390                    activeHelpKey: modificationTime
   384                    translateLabel: true
   391                    translateLabel: true
   385                    adjust: right
   392                    adjust: right
   386                  )
   393                  )
   387                 (PopUpListSpec
   394                 (PopUpListSpec
   388                    label: 'PopUp List'
   395                    label: 'PopUp List'
   389                    name: 'PopUpList1'
   396                    name: 'PopUpList1'
   390                    layout: (LayoutFrame 157 0 172 0 212 0 192 0)
   397                    layout: (LayoutFrame 180 0 172 0 260 0 192 0)
   391                    activeHelpKey: modificationTime
   398                    activeHelpKey: modificationTime
       
   399                    translateLabel: true
   392                    tabable: true
   400                    tabable: true
   393                    model: modificationTimeOperatorHolder
   401                    model: modificationTimeOperatorIndexHolder
   394                    enableChannel: enableModificationTimeFilter
   402                    enableChannel: enableModificationTimeFilter
   395                    menu: 
   403                    menu: modificationTimeOperatorLabelList
   396                   (Array
   404                    useIndex: true
   397                      ' before' ' after '
       
   398                    )
       
   399                  )
   405                  )
   400                 (InputFieldSpec
   406                 (InputFieldSpec
   401                    name: 'EntryField2'
   407                    name: 'ModifiedEntryField'
   402                    layout: (LayoutFrame 219 0 172 0 -349 1 192 0)
   408                    layout: (LayoutFrame 260 0 172 0 -367 1 192 0)
   403                    activeHelpKey: modificationTime
   409                    activeHelpKey: modificationTime
   404                    enableChannel: enableModificationTimeFilter
   410                    enableChannel: enableModificationTimeFilter
   405                    tabable: true
   411                    tabable: true
   406                    model: modificationTimeHolder
   412                    model: modificationTimeHolder
   407                    type: timestamp
   413                    type: timestamp
   410                    acceptOnLostFocus: true
   416                    acceptOnLostFocus: true
   411                    acceptOnPointerLeave: true
   417                    acceptOnPointerLeave: true
   412                  )
   418                  )
   413                 (CheckToggleSpec
   419                 (CheckToggleSpec
   414                    name: 'CheckToggle1'
   420                    name: 'CheckToggle1'
   415                    layout: (LayoutOrigin -334 1 175 0)
   421                    layout: (LayoutOrigin -366 1 175 0)
   416                    activeHelpKey: modificationTime
   422                    activeHelpKey: modificationTime
       
   423                    translateLabel: true
   417                    model: enableModificationTimeFilter
   424                    model: enableModificationTimeFilter
   418                    isTriggerOnDown: true
   425                    isTriggerOnDown: true
   419                    showLamp: false
   426                    showLamp: false
   420                    lampColor: (Color 100.0 100.0 0.0)
   427                    lampColor: (Color 100.0 100.0 0.0)
   421                  )
   428                  )
   422                 (CheckBoxSpec
   429                 (CheckBoxSpec
   423                    label: 'Use ''locate'' Cmd'
   430                    label: 'Use ''locate'' Cmd'
   424                    name: 'UseLocateCheckBox'
   431                    name: 'UseLocateCheckBox'
   425                    layout: (LayoutFrame -309 1 5 0 -167 1 28 0)
   432                    layout: (LayoutFrame -350 1 5 0 -167 1 28 0)
   426                    activeHelpKey: useLocate
   433                    activeHelpKey: useLocate
   427                    visibilityChannel: canUseLocate
   434                    visibilityChannel: canUseLocate
   428                    tabable: true
   435                    tabable: true
   429                    model: useLocate
   436                    model: useLocate
   430                    translateLabel: true
   437                    translateLabel: true
   431                  )
   438                  )
   432                 (CheckBoxSpec
   439                 (CheckBoxSpec
   433                    label: 'Recursive'
   440                    label: 'Recursive'
   434                    name: 'RecursiveSearchCheckBox'
   441                    name: 'RecursiveSearchCheckBox'
   435                    layout: (LayoutFrame -169 1 5 0 -4 1 28 0)
   442                    layout: (LayoutFrame -200 1 5 0 -4 1 28 0)
   436                    activeHelpKey: recursiveSearch
   443                    activeHelpKey: recursiveSearch
   437                    tabable: true
   444                    tabable: true
   438                    model: searchRecursively
   445                    model: searchRecursively
   439                    translateLabel: true
   446                    translateLabel: true
   440                  )
   447                  )
   441                 (CheckBoxSpec
   448                 (CheckBoxSpec
   442                    label: 'Directories'
   449                    label: 'Directories'
   443                    name: 'SearchDirectoriesCheckBox'
   450                    name: 'SearchDirectoriesCheckBox'
   444                    layout: (LayoutFrame -309 1 29 0 -167 1 52 0)
   451                    layout: (LayoutFrame -350 1 29 0 -167 1 52 0)
   445                    enableChannel: notSearchForSameContents
   452                    enableChannel: notSearchForSameContents
   446                    tabable: true
   453                    tabable: true
   447                    model: searchDirectories
   454                    model: searchDirectories
   448                    translateLabel: true
   455                    translateLabel: true
   449                  )
   456                  )
   450                 (CheckBoxSpec
   457                 (CheckBoxSpec
   451                    label: 'Ignore Case'
   458                    label: 'Ignore Case'
   452                    name: 'IgnoreCaseInNameCheckBox'
   459                    name: 'IgnoreCaseInNameCheckBox'
   453                    layout: (LayoutFrame -169 1 29 0 -4 1 52 0)
   460                    layout: (LayoutFrame -200 1 29 0 -4 1 52 0)
   454                    activeHelpKey: ignoreCase
   461                    activeHelpKey: ignoreCase
   455                    tabable: true
   462                    tabable: true
   456                    model: ignoreCaseInName
   463                    model: ignoreCaseInName
   457                    translateLabel: true
   464                    translateLabel: true
   458                  )
   465                  )
   459                 (CheckBoxSpec
   466                 (CheckBoxSpec
   460                    label: 'Ignore Case'
   467                    label: 'Ignore Case'
   461                    name: 'CheckBox1'
   468                    name: 'CheckBox1'
   462                    layout: (LayoutFrame -169 1 53 0 -4 1 76 0)
   469                    layout: (LayoutFrame -200 1 53 0 -4 1 76 0)
   463                    activeHelpKey: ignoreCase
   470                    activeHelpKey: ignoreCase
   464                    tabable: true
   471                    tabable: true
   465                    model: ignoreCaseInExcludedName
   472                    model: ignoreCaseInExcludedName
   466                    translateLabel: true
   473                    translateLabel: true
   467                  )
   474                  )
   468                 (CheckBoxSpec
   475                 (CheckBoxSpec
   469                    label: 'Use ''grep'' Cmd'
   476                    label: 'Use ''grep'' Cmd'
   470                    name: 'UseGrepCheckBox'
   477                    name: 'UseGrepCheckBox'
   471                    layout: (LayoutFrame -309 1 77 0 -167 1 100 0)
   478                    layout: (LayoutFrame -350 1 77 0 -167 1 100 0)
   472                    visibilityChannel: canUseGrep
   479                    visibilityChannel: canUseGrep
   473                    enableChannel: notSearchForSameContents
   480                    enableChannel: notSearchForSameContents
   474                    tabable: true
   481                    tabable: true
   475                    model: useGrep
   482                    model: useGrep
   476                    translateLabel: true
   483                    translateLabel: true
   477                  )
   484                  )
   478                 (CheckBoxSpec
   485                 (CheckBoxSpec
   479                    label: 'Ignore Case'
   486                    label: 'Ignore Case'
   480                    name: 'IgnoreCaseInContentsCheckBox'
   487                    name: 'IgnoreCaseInContentsCheckBox'
   481                    layout: (LayoutFrame -169 1 77 0 -4 1 100 0)
   488                    layout: (LayoutFrame -200 1 77 0 -4 1 100 0)
   482                    activeHelpKey: ignoreCase
   489                    activeHelpKey: ignoreCase
   483                    enableChannel: notSearchForSameContents
   490                    enableChannel: notSearchForSameContents
   484                    tabable: true
   491                    tabable: true
   485                    model: ignoreCaseInContents
   492                    model: ignoreCaseInContents
   486                    translateLabel: true
   493                    translateLabel: true
   487                  )
   494                  )
   488                 (CheckBoxSpec
   495                 (CheckBoxSpec
   489                    label: 'Ignore Case'
   496                    label: 'Ignore Case'
   490                    name: 'IgnoreCaseInNotContentsCheckBox'
   497                    name: 'IgnoreCaseInNotContentsCheckBox'
   491                    layout: (LayoutFrame -169 1 101 0 -4 1 124 0)
   498                    layout: (LayoutFrame -200 1 101 0 -4 1 124 0)
   492                    activeHelpKey: ignoreCase
   499                    activeHelpKey: ignoreCase
   493                    enableChannel: notSearchForSameContents
   500                    enableChannel: notSearchForSameContents
   494                    tabable: true
   501                    tabable: true
   495                    model: ignoreCaseInNotContents
   502                    model: ignoreCaseInNotContents
   496                    translateLabel: true
   503                    translateLabel: true
   497                  )
   504                  )
   498                 (CheckBoxSpec
   505                 (CheckBoxSpec
   499                    label: 'Cache Info'
   506                    label: 'Cache Info'
   500                    name: 'RememberInCacheCheckBox'
   507                    name: 'RememberInCacheCheckBox'
   501                    layout: (LayoutFrame -309 1 125 0 -167 1 148 0)
   508                    layout: (LayoutFrame -350 1 125 0 -167 1 148 0)
   502                    visibilityChannel: canUseGrep
   509                    visibilityChannel: canUseGrep
   503                    enableChannel: searchForSameContents
   510                    enableChannel: searchForSameContents
   504                    tabable: true
   511                    tabable: true
   505                    model: rememberInCache
   512                    model: rememberInCache
   506                    translateLabel: true
   513                    translateLabel: true
   513                    model: clearCache
   520                    model: clearCache
   514                  )
   521                  )
   515                 (CheckBoxSpec
   522                 (CheckBoxSpec
   516                    label: 'Show Unreadable Files and Folders'
   523                    label: 'Show Unreadable Files and Folders'
   517                    name: 'CheckBox2'
   524                    name: 'CheckBox2'
   518                    layout: (LayoutFrame -309 1 149 0 0 1 172 0)
   525                    layout: (LayoutFrame -350 1 149 0 0 1 172 0)
   519                    tabable: true
   526                    tabable: true
   520                    model: showUnreadableFilesAndDirectoriesHolder
   527                    model: showUnreadableFilesAndDirectoriesHolder
   521                    translateLabel: true
   528                    translateLabel: true
   522                  )
   529                  )
   523                 )
   530                 )
   536              valueChangeSelector: fileSelected:
   543              valueChangeSelector: fileSelected:
   537              useIndex: true
   544              useIndex: true
   538              sequenceList: shownListHolder
   545              sequenceList: shownListHolder
   539              properties: 
   546              properties: 
   540             (PropertyListDictionary
   547             (PropertyListDictionary
       
   548                dropObjectSelector: getDropObjects:
   541                displayObjectSelector: getDisplayObjects:
   549                displayObjectSelector: getDisplayObjects:
   542                startDragSelector: doStartDrag:in:
   550                startDragSelector: doStartDrag:in:
   543                dropObjectSelector: getDropObjects:
       
   544                dragArgument: findFileList
   551                dragArgument: findFileList
   545              )
   552              )
   546            )
   553            )
   547           )
   554           )
   548         
   555         
   549        )
   556        )
   550      )
   557      )
       
   558 
   551 ! !
   559 ! !
   552 
   560 
   553 !FindFileApplication class methodsFor:'menu specs'!
   561 !FindFileApplication class methodsFor:'menu specs'!
   554 
   562 
   555 menu
   563 menu
  1137 !
  1145 !
  1138 
  1146 
  1139 modificationTimeOperatorHolder
  1147 modificationTimeOperatorHolder
  1140     modificationTimeOperatorHolder isNil ifTrue:[
  1148     modificationTimeOperatorHolder isNil ifTrue:[
  1141         modificationTimeOperatorHolder := 'after' asValue.
  1149         modificationTimeOperatorHolder := 'after' asValue.
       
  1150         modificationTimeOperatorHolder onChangeSend:#modificationTimeOperatorChanged to:self.
  1142     ].
  1151     ].
  1143     ^ modificationTimeOperatorHolder.
  1152     ^ modificationTimeOperatorHolder.
  1144 
  1153 
  1145     "Created: / 28-03-2012 / 23:04:44 / cg"
  1154     "Created: / 28-03-2012 / 23:04:44 / cg"
       
  1155 !
       
  1156 
       
  1157 modificationTimeOperatorIndexHolder
       
  1158     modificationTimeOperatorIndexHolder isNil ifTrue:[
       
  1159         modificationTimeOperatorIndexHolder := 1 asValue.
       
  1160         modificationTimeOperatorIndexHolder onChangeSend:#modificationTimeOperatorChanged to:self.
       
  1161     ].
       
  1162     ^ modificationTimeOperatorIndexHolder.
       
  1163 
       
  1164     "Created: / 28-03-2012 / 23:04:44 / cg"
       
  1165 !
       
  1166 
       
  1167 modificationTimeOperatorLabelList
       
  1168     ^ self modificationTimeOperatorSpecList collect:#first
       
  1169 !
       
  1170 
       
  1171 modificationTimeOperatorSpecList
       
  1172     ^ #(
       
  1173         ('before'   #before)
       
  1174         ('after'    #after)
       
  1175         ('in day'   #inDay)
       
  1176         ('in month' #inMonth)
       
  1177         ('in year'  #inYear)
       
  1178     )
       
  1179 !
       
  1180 
       
  1181 modificationTimeOperatorValueList
       
  1182     ^ self modificationTimeOperatorSpecList collect:#second
  1146 !
  1183 !
  1147 
  1184 
  1148 namePatternHolder
  1185 namePatternHolder
  1149 
  1186 
  1150     namePatternHolder isNil ifTrue:[
  1187     namePatternHolder isNil ifTrue:[
  1240 useLocate
  1277 useLocate
  1241     useLocate isNil ifTrue:[
  1278     useLocate isNil ifTrue:[
  1242         useLocate := false asValue.
  1279         useLocate := false asValue.
  1243     ].
  1280     ].
  1244     ^ useLocate.
  1281     ^ useLocate.
       
  1282 ! !
       
  1283 
       
  1284 !FindFileApplication methodsFor:'change & update'!
       
  1285 
       
  1286 modificationTimeOperatorChanged
       
  1287     |timeEditField converter realModel idx operator|
       
  1288 
       
  1289     timeEditField := (self componentAt:'ModifiedEntryField').
       
  1290     converter := timeEditField model.
       
  1291     realModel := converter model.
       
  1292     self assert:(self modificationTimeHolder == realModel).
       
  1293     idx := self modificationTimeOperatorIndexHolder value.
       
  1294     operator := self modificationTimeOperatorValueList at:idx.
       
  1295     
       
  1296     ((operator == #after) or:[operator = #before]) ifTrue:[
       
  1297         realModel setValue:(realModel value asTimestamp).    
       
  1298         converter timeOfClass:Timestamp withFormat:nil orDefault:Timestamp now    
       
  1299     ] ifFalse:[    
       
  1300         operator = #inDay ifTrue:[
       
  1301             realModel setValue:(realModel value asDate).    
       
  1302             converter timeOfClass:Date withFormat:'%y-%m-%d' orDefault:Date today    
       
  1303         ] ifFalse:[    
       
  1304             operator = #inMonth ifTrue:[
       
  1305                 realModel setValue:(realModel value asDate).    
       
  1306                 converter monthAndYear    
       
  1307             ] ifFalse:[    
       
  1308                 operator = #inYear ifTrue:[
       
  1309                     realModel setValue:(realModel value asDate).    
       
  1310                     converter year    
       
  1311                 ] ifFalse:[
       
  1312                     self halt.
       
  1313                 ].    
       
  1314             ].    
       
  1315         ].    
       
  1316     ].    
       
  1317     realModel changed.
  1245 ! !
  1318 ! !
  1246 
  1319 
  1247 !FindFileApplication methodsFor:'private'!
  1320 !FindFileApplication methodsFor:'private'!
  1248 
  1321 
  1249 changeExtentToSeeSearchResult
  1322 changeExtentToSeeSearchResult
  1886 !
  1959 !
  1887 
  1960 
  1888 modificationTimeWrapperFor:aFileMatchBlock
  1961 modificationTimeWrapperFor:aFileMatchBlock
  1889     "possibly wrap the search-match block into a modification time matcher"
  1962     "possibly wrap the search-match block into a modification time matcher"
  1890 
  1963 
  1891     |timeToCompare timeMatch op compare|
  1964     |timeToCompare timeMatch idx op compare|
  1892 
  1965 
  1893     self enableModificationTimeFilter value ifFalse:[ ^ aFileMatchBlock ].
  1966     self enableModificationTimeFilter value ifFalse:[ ^ aFileMatchBlock ].
  1894 
  1967 
  1895     timeToCompare := self modificationTimeHolder value.
  1968     timeToCompare := self modificationTimeHolder value.
  1896     op := self modificationTimeOperatorHolder value withoutSeparators.
  1969     idx := self modificationTimeOperatorIndexHolder value.
  1897     op = 'after' ifTrue:[
  1970     op := self modificationTimeOperatorValueList at:idx.
       
  1971     op = #after ifTrue:[
  1898         compare := [:t | t > timeToCompare ].
  1972         compare := [:t | t > timeToCompare ].
  1899     ] ifFalse:[
  1973     ] ifFalse:[
  1900         compare := [:t | t < timeToCompare ].
  1974         op = #before ifTrue:[
       
  1975             compare := [:t | t < timeToCompare ].
       
  1976         ] ifFalse:[
       
  1977             op = #inDay ifTrue:[
       
  1978                 timeToCompare := timeToCompare asDate.
       
  1979                 compare := [:t | t asDate = timeToCompare ].
       
  1980             ] ifFalse:[
       
  1981                 op = #inMonth ifTrue:[
       
  1982                     timeToCompare := timeToCompare asDate.
       
  1983                     compare := [:t | t month = timeToCompare month
       
  1984                                      and:[t year = timeToCompare year] ].
       
  1985                 ] ifFalse:[
       
  1986                     op = #inYear ifTrue:[
       
  1987                         timeToCompare := timeToCompare asDate.
       
  1988                         compare := [:t | t year = timeToCompare year ].
       
  1989                     ] ifFalse:[
       
  1990                         self halt.
       
  1991                     ].    
       
  1992                 ].    
       
  1993             ].    
       
  1994         ].
  1901     ].
  1995     ].
  1902 
  1996 
  1903     timeMatch := [:f | 
  1997     timeMatch := [:f | 
  1904                     |t| 
  1998                     |t| 
  1905 
  1999