FindFileApplication.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 05 Oct 2022 11:57:26 +0100
branchjv
changeset 19637 28f5bfaa093d
parent 17134 c4cce8b7a95d
permissions -rw-r--r--
`NewSystemBrowser`: avoid updating package info when changed class is not selected This speeds up loading of packages when browser is open as it does not (needlessly) update package info which may involve scm round-trip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5140
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     1
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     3
              All Rights Reserved
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     4
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     5
 This software is furnished under a license and may be used
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     6
 only in accordance with the terms of that license and with the
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     8
 be provided or otherwise made available to, or used by, any
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
     9
 other person.  No title to or ownership of the software is
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    10
 hereby transferred.
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    11
"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
321c1729db5b initial checkin
penk
parents:
diff changeset
    13
15092
1684fd8d6a41 class: FindFileApplication
sr
parents: 14748
diff changeset
    14
"{ NameSpace: Smalltalk }"
1684fd8d6a41 class: FindFileApplication
sr
parents: 14748
diff changeset
    15
11096
c9585b9d2697 refactored
Claus Gittinger <cg@exept.de>
parents: 10441
diff changeset
    16
AbstractFileFinderApplicationComponent subclass:#FindFileApplication
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
    17
	instanceVariableNames:'searchDirectories searchDirectoryHolder notSearchForSameContents
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
    18
		namePatternHolder excludedNamePatternHolder ignoreCaseInName
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
    19
		ignoreCaseInExcludedName contentsPatternHolder
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
    20
		ignoreCaseInContents notContentsPatternHolder
11096
c9585b9d2697 refactored
Claus Gittinger <cg@exept.de>
parents: 10441
diff changeset
    21
		ignoreCaseInNotContents sameContentsAsHolder useLocate useGrep
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
    22
		rememberInCache searchOnlyInCache searchForSameContents
11096
c9585b9d2697 refactored
Claus Gittinger <cg@exept.de>
parents: 10441
diff changeset
    23
		contentsInfoCache contentsInfoCacheAccessLock
6330
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
    24
		fileSizeOperatorHolder fileSizeHolder enableFileSizeFilter
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
    25
		fileSizeUnitHolder modificationTimeOperatorHolder
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
    26
		modificationTimeHolder enableModificationTimeFilter
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
    27
		showUnreadableFilesAndDirectoriesHolder
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
    28
		modificationTimeOperatorIndexHolder'
6442
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
    29
	classVariableNames:'ContentsInfoCache ContentsInfoCacheAccessLock LastRememberInCache
8330
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
    30
		LastSearchIgnoredCaseInContents LastSearchIgnoredCaseInFilename
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
    31
		SearchStringHistory LastSearchIgnoredCaseInExcludedFilename
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
    32
		LastShowUnreadableFilesAndDirectories'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    33
	poolDictionaries:''
321c1729db5b initial checkin
penk
parents:
diff changeset
    34
	category:'Interface-Tools-File'
321c1729db5b initial checkin
penk
parents:
diff changeset
    35
!
321c1729db5b initial checkin
penk
parents:
diff changeset
    36
5140
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    37
!FindFileApplication class methodsFor:'documentation'!
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    38
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    39
copyright
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    40
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    41
 COPYRIGHT (c) 2002 by eXept Software AG
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    42
              All Rights Reserved
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    43
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    44
 This software is furnished under a license and may be used
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    45
 only in accordance with the terms of that license and with the
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    46
 inclusion of the above copyright notice.   This software may not
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    47
 be provided or otherwise made available to, or used by, any
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    48
 other person.  No title to or ownership of the software is
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    49
 hereby transferred.
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    50
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
    51
! !
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    52
321c1729db5b initial checkin
penk
parents:
diff changeset
    53
!FindFileApplication class methodsFor:'instance creation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    54
321c1729db5b initial checkin
penk
parents:
diff changeset
    55
open
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    56
    ^ self openInDirectory:(Filename currentDirectory)
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    57
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    58
    "
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    59
     self open
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    60
    "
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    61
!
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    62
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    63
openInDirectory:aFilename
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    64
    ^ self openOnFileName:(aFilename asFilename asAbsoluteFilename)
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    65
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    66
    "
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    67
     self openInDirectory:'/etc'
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    68
    "
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    69
!
321c1729db5b initial checkin
penk
parents:
diff changeset
    70
321c1729db5b initial checkin
penk
parents:
diff changeset
    71
openOnFileName:aFileName
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    72
    ^ self openOnFileName:aFileName for:nil
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    73
!
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    74
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    75
openOnFileName:aFileName for:aTargetApplicationOrNil
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    76
321c1729db5b initial checkin
penk
parents:
diff changeset
    77
    | instance builder|
321c1729db5b initial checkin
penk
parents:
diff changeset
    78
321c1729db5b initial checkin
penk
parents:
diff changeset
    79
    builder := super open.
321c1729db5b initial checkin
penk
parents:
diff changeset
    80
    instance := builder application.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3937
diff changeset
    81
    instance item:(DirectoryContentsBrowser itemClass fileName:aFileName).
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    82
    aTargetApplicationOrNil notNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    83
        instance targetApplication:aTargetApplicationOrNil.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
    84
    ].
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    85
    ^ builder
321c1729db5b initial checkin
penk
parents:
diff changeset
    86
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
    87
321c1729db5b initial checkin
penk
parents:
diff changeset
    88
!FindFileApplication class methodsFor:'defaults'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    89
321c1729db5b initial checkin
penk
parents:
diff changeset
    90
tabStringFor:aApplicationType
7688
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
    91
    "the formatString shown in a tab (language translated)"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    92
7688
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
    93
    ^ 'Find in %1'
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
    94
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
    95
    "Modified: / 01-03-2007 / 21:47:54 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    96
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
    97
9408
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
    98
!FindFileApplication class methodsFor:'help specs'!
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
    99
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   100
flyByHelpSpec
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   101
    "This resource specification was automatically generated
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   102
     by the UIHelpTool of ST/X."
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   103
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   104
    "Do not manually edit this!! If it is corrupted,
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   105
     the UIHelpTool may not be able to read the specification."
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   106
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   107
    "
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   108
     UIHelpTool openOnClass:FindFileApplication    
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   109
    "
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   110
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   111
    <resource: #help>
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   112
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   113
    ^ super flyByHelpSpec addPairsFrom:#(
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   114
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   115
#contentsPattern
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   116
'Search for files containing this. Can be matchPatterns, separated by ";"'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   117
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   118
#namePattern
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   119
'Filename(s) to search for. Can be matchPatterns, separated by ";"'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   120
11122
Claus Gittinger <cg@exept.de>
parents: 11117
diff changeset
   121
#excludedNamePattern
Claus Gittinger <cg@exept.de>
parents: 11117
diff changeset
   122
'Filename(s) to skip. Can be matchPatterns, separated by ";"'
Claus Gittinger <cg@exept.de>
parents: 11117
diff changeset
   123
9408
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   124
#notContentsPattern
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   125
'Search for files NOT containing this. Can be matchPatterns, separated by ";"'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   126
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   127
#searchDirectory
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   128
'Folder, where the search starts'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   129
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   130
#searchRecursive
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   131
'Recursively search in sub-folders'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   132
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   133
#ignoreCase
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   134
'Ignore upper/lowercase differences (be case-insensitive)'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   135
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   136
#sameContents
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   137
'Search for files with same contents as the other file'
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   138
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   139
#fileSize
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
   140
'Search for files with a specific size constraint ("~" means: +/- 10%)'
9408
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   141
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
   142
#modificationTime
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
   143
'Search for files which are newer or older'
9408
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   144
)
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
   145
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
   146
    "Modified: / 28-03-2012 / 23:03:39 / cg"
9408
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   147
! !
173aa5a55022 active help
Claus Gittinger <cg@exept.de>
parents: 9400
diff changeset
   148
8330
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   149
!FindFileApplication class methodsFor:'history'!
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   150
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   151
addToSearchStringHistory:aString
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   152
    self searchStringHistory 
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   153
        remove:aString ifAbsent:[];
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   154
        addFirst:aString.
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   155
    self searchStringHistory size > 25 ifTrue:[
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   156
        self searchStringHistory removeLast
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   157
    ].
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   158
!
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   159
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   160
searchStringHistory
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   161
    SearchStringHistory isNil ifTrue:[
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   162
        SearchStringHistory := OrderedCollection new 
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   163
    ].
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   164
    ^ SearchStringHistory
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   165
! !
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   166
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   167
!FindFileApplication class methodsFor:'interface specs'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   168
321c1729db5b initial checkin
penk
parents:
diff changeset
   169
windowSpec
321c1729db5b initial checkin
penk
parents:
diff changeset
   170
    "This resource specification was automatically generated
321c1729db5b initial checkin
penk
parents:
diff changeset
   171
     by the UIPainter of ST/X."
321c1729db5b initial checkin
penk
parents:
diff changeset
   172
321c1729db5b initial checkin
penk
parents:
diff changeset
   173
    "Do not manually edit this!! If it is corrupted,
321c1729db5b initial checkin
penk
parents:
diff changeset
   174
     the UIPainter may not be able to read the specification."
321c1729db5b initial checkin
penk
parents:
diff changeset
   175
321c1729db5b initial checkin
penk
parents:
diff changeset
   176
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   177
     UIPainter new openOnClass:FindFileApplication andSelector:#windowSpec
321c1729db5b initial checkin
penk
parents:
diff changeset
   178
     FindFileApplication new openInterface:#windowSpec
321c1729db5b initial checkin
penk
parents:
diff changeset
   179
     FindFileApplication open
321c1729db5b initial checkin
penk
parents:
diff changeset
   180
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   181
321c1729db5b initial checkin
penk
parents:
diff changeset
   182
    <resource: #canvas>
321c1729db5b initial checkin
penk
parents:
diff changeset
   183
321c1729db5b initial checkin
penk
parents:
diff changeset
   184
    ^ 
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   185
    #(FullSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   186
       name: windowSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   187
       window: 
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   188
      (WindowSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   189
         label: 'File Search'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   190
         name: 'File Search'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   191
         min: (Point 377 131)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   192
         bounds: (Rectangle 0 0 759 420)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   193
       )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   194
       component: 
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   195
      (SpecCollection
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   196
         collection: (
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   197
          (MenuPanelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   198
             name: 'ToolBar1'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   199
             layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   200
             level: 0
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   201
             menu: searchMenu
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   202
             textDefault: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   203
           )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   204
          (ProgressIndicatorSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   205
             name: 'ProgressIndicator1'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   206
             layout: (LayoutFrame 125 0 11 0 231 0 21 0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   207
             visibilityChannel: enableStop
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   208
             backgroundColor: (Color 0.0 67.0 67.0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   209
             showPercentage: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   210
             isActivityIndicator: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   211
           )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   212
          (ViewSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   213
             name: 'Box1'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   214
             layout: (LayoutFrame 0 0.0 32 0 0 1.0 231 0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   215
             component: 
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   216
            (SpecCollection
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   217
               collection: (
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   218
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   219
                   label: 'Directory:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   220
                   name: 'DirectoryLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   221
                   layout: (LayoutFrame 2 0 7 0 180 0 24 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   222
                   activeHelpKey: searchDirectory
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   223
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   224
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   225
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   226
                (FilenameInputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   227
                   name: 'DirectoryEntryField'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   228
                   layout: (LayoutFrame 180 0 4 0 -350 1 24 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   229
                   activeHelpKey: searchDirectory
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   230
                   model: searchDirectoryHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   231
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   232
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   233
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   234
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   235
                   label: 'Search Files Named:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   236
                   name: 'FileNameLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   237
                   layout: (LayoutFrame 2 0 31 0 180 0 48 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   238
                   activeHelpKey: namePattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   239
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   240
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   241
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   242
                (InputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   243
                   name: 'FileNameEntryField'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   244
                   layout: (LayoutFrame 180 0 28 0 -350 1 48 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   245
                   activeHelpKey: namePattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   246
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   247
                   model: namePatternHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   248
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   249
                   acceptOnLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   250
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   251
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   252
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   253
                   label: 'But not Named:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   254
                   name: 'Label1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   255
                   layout: (LayoutFrame 2 0 55 0 180 0 72 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   256
                   activeHelpKey: excludedNamePattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   257
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   258
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   259
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   260
                (InputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   261
                   name: 'EntryField1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   262
                   layout: (LayoutFrame 180 0 52 0 -350 1 72 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   263
                   activeHelpKey: excludedNamePattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   264
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   265
                   model: excludedNamePatternHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   266
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   267
                   acceptOnLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   268
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   269
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   270
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   271
                   label: 'Containing:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   272
                   name: 'ContentsLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   273
                   layout: (LayoutFrame 2 0 79 0 180 0 96 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   274
                   activeHelpKey: contentsPattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   275
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   276
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   277
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   278
                (ComboBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   279
                   name: 'ComboBox1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   280
                   layout: (LayoutFrame 180 0 76 0 -350 1 96 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   281
                   activeHelpKey: contentsPattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   282
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   283
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   284
                   model: contentsPatternHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   285
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   286
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   287
                   comboList: searchStringHistory
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   288
                   useIndex: false
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   289
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   290
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   291
                   label: 'Not Containing:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   292
                   name: 'NotContentsLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   293
                   layout: (LayoutFrame 2 0 103 0 180 0 120 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   294
                   activeHelpKey: notContentsPattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   295
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   296
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   297
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   298
                (InputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   299
                   name: 'NotContentsEntryField'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   300
                   layout: (LayoutFrame 180 0 100 0 -350 1 120 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   301
                   activeHelpKey: notContentsPattern
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   302
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   303
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   304
                   model: notContentsPatternHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   305
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   306
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   307
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   308
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   309
                   label: 'Same Contents As:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   310
                   name: 'SameContentsAsLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   311
                   layout: (LayoutFrame 2 0 127 0 180 0 144 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   312
                   activeHelpKey: sameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   313
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   314
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   315
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   316
                (InputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   317
                   name: 'SameContentsAsEntryField'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   318
                   layout: (LayoutFrame 180 0 124 0 -367 1 144 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   319
                   activeHelpKey: sameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   320
                   enableChannel: searchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   321
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   322
                   model: sameContentsAsHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   323
                   immediateAccept: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   324
                   acceptOnPointerLeave: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   325
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   326
                (CheckToggleSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   327
                   name: 'EnableSameContentsCheckToggle'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   328
                   layout: (LayoutOrigin -366 1 128 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   329
                   activeHelpKey: sameContents
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   330
                   translateLabel: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   331
                   model: searchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   332
                   isTriggerOnDown: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   333
                   showLamp: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   334
                   lampColor: (Color 100.0 100.0 0.0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   335
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   336
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   337
                   label: 'File Size:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   338
                   name: 'FileSizeLabel'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   339
                   layout: (LayoutFrame 2 0 151 0 180 0 168 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   340
                   activeHelpKey: fileSize
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   341
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   342
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   343
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   344
                (PopUpListSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   345
                   label: 'PopUp List'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   346
                   name: 'FileSizeOperatorPopUpList'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   347
                   layout: (LayoutFrame 180 0 148 0 260 0 168 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   348
                   activeHelpKey: fileSize
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   349
                   translateLabel: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   350
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   351
                   model: fileSizeOperatorHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   352
                   enableChannel: enableFileSizeFilterAndNotSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   353
                   menu: 
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   354
                  (Array
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   355
                     ' >' ' < '
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   356
                     ' !!= ' ' = '
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   357
                     ' ~ '
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   358
                   )
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   359
                 )
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   360
                (InputFieldSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   361
                   name: 'FileSizeEntryField'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   362
                   layout: (LayoutFrame 260 0 148 0 -367 1 168 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   363
                   activeHelpKey: fileSize
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   364
                   enableChannel: enableFileSizeFilterAndNotSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   365
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   366
                   model: fileSizeHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   367
                   type: fileSize
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   368
                   immediateAccept: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   369
                   acceptOnLeave: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   370
                   acceptOnLostFocus: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   371
                   acceptOnPointerLeave: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   372
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   373
                (CheckToggleSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   374
                   name: 'EnableSizeCheckToggle'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   375
                   layout: (LayoutOrigin -366 1 151 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   376
                   activeHelpKey: fileSize
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   377
                   translateLabel: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   378
                   model: enableFileSizeFilter
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   379
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   380
                   isTriggerOnDown: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   381
                   showLamp: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   382
                   lampColor: (Color 100.0 100.0 0.0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   383
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   384
                (LabelSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   385
                   label: 'Modified:'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   386
                   name: 'Label2'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   387
                   layout: (LayoutFrame 2 0 175 0 180 0 192 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   388
                   activeHelpKey: modificationTime
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   389
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   390
                   adjust: right
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   391
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   392
                (PopUpListSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   393
                   label: 'PopUp List'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   394
                   name: 'PopUpList1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   395
                   layout: (LayoutFrame 180 0 172 0 260 0 192 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   396
                   activeHelpKey: modificationTime
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   397
                   translateLabel: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   398
                   tabable: true
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   399
                   model: modificationTimeOperatorIndexHolder
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   400
                   enableChannel: enableModificationTimeFilter
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   401
                   menu: modificationTimeOperatorLabelList
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   402
                   useIndex: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   403
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   404
                (InputFieldSpec
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   405
                   name: 'ModifiedEntryField'
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   406
                   layout: (LayoutFrame 260 0 172 0 -367 1 192 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   407
                   activeHelpKey: modificationTime
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   408
                   enableChannel: enableModificationTimeFilter
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   409
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   410
                   model: modificationTimeHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   411
                   type: timestamp
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   412
                   immediateAccept: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   413
                   acceptOnLeave: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   414
                   acceptOnLostFocus: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   415
                   acceptOnPointerLeave: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   416
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   417
                (CheckToggleSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   418
                   name: 'CheckToggle1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   419
                   layout: (LayoutOrigin -366 1 175 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   420
                   activeHelpKey: modificationTime
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   421
                   translateLabel: true
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   422
                   model: enableModificationTimeFilter
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   423
                   isTriggerOnDown: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   424
                   showLamp: false
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   425
                   lampColor: (Color 100.0 100.0 0.0)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   426
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   427
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   428
                   label: 'Use ''locate'' Cmd'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   429
                   name: 'UseLocateCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   430
                   layout: (LayoutFrame -350 1 5 0 -167 1 28 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   431
                   activeHelpKey: useLocate
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   432
                   visibilityChannel: canUseLocate
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   433
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   434
                   model: useLocate
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   435
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   436
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   437
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   438
                   label: 'Recursive'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   439
                   name: 'RecursiveSearchCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   440
                   layout: (LayoutFrame -200 1 5 0 -4 1 28 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   441
                   activeHelpKey: recursiveSearch
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   442
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   443
                   model: searchRecursively
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   444
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   445
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   446
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   447
                   label: 'Directories'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   448
                   name: 'SearchDirectoriesCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   449
                   layout: (LayoutFrame -350 1 29 0 -167 1 52 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   450
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   451
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   452
                   model: searchDirectories
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   453
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   454
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   455
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   456
                   label: 'Ignore Case'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   457
                   name: 'IgnoreCaseInNameCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   458
                   layout: (LayoutFrame -200 1 29 0 -4 1 52 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   459
                   activeHelpKey: ignoreCase
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   460
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   461
                   model: ignoreCaseInName
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   462
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   463
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   464
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   465
                   label: 'Ignore Case'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   466
                   name: 'CheckBox1'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   467
                   layout: (LayoutFrame -200 1 53 0 -4 1 76 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   468
                   activeHelpKey: ignoreCase
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   469
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   470
                   model: ignoreCaseInExcludedName
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   471
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   472
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   473
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   474
                   label: 'Use ''grep'' Cmd'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   475
                   name: 'UseGrepCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   476
                   layout: (LayoutFrame -350 1 77 0 -167 1 100 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   477
                   visibilityChannel: canUseGrep
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   478
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   479
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   480
                   model: useGrep
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   481
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   482
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   483
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   484
                   label: 'Ignore Case'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   485
                   name: 'IgnoreCaseInContentsCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   486
                   layout: (LayoutFrame -200 1 77 0 -4 1 100 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   487
                   activeHelpKey: ignoreCase
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   488
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   489
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   490
                   model: ignoreCaseInContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   491
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   492
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   493
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   494
                   label: 'Ignore Case'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   495
                   name: 'IgnoreCaseInNotContentsCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   496
                   layout: (LayoutFrame -200 1 101 0 -4 1 124 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   497
                   activeHelpKey: ignoreCase
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   498
                   enableChannel: notSearchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   499
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   500
                   model: ignoreCaseInNotContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   501
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   502
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   503
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   504
                   label: 'Cache Info'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   505
                   name: 'RememberInCacheCheckBox'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   506
                   layout: (LayoutFrame -350 1 125 0 -167 1 148 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   507
                   visibilityChannel: canUseGrep
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   508
                   enableChannel: searchForSameContents
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   509
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   510
                   model: rememberInCache
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   511
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   512
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   513
                (ActionButtonSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   514
                   label: 'Clear Cache'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   515
                   name: 'ClearCacheButton'
16965
d39ebfdb101d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16826
diff changeset
   516
                   layout: (LayoutFrame -169 1 125 0 -21 1 147 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   517
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   518
                   model: clearCache
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   519
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   520
                (CheckBoxSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   521
                   label: 'Show Unreadable Files and Folders'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   522
                   name: 'CheckBox2'
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   523
                   layout: (LayoutFrame -350 1 149 0 0 1 172 0)
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   524
                   tabable: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   525
                   model: showUnreadableFilesAndDirectoriesHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   526
                   translateLabel: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   527
                 )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   528
                )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   529
              
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   530
             )
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   531
           )
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   532
          (SequenceViewSpec
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   533
             name: 'List1'
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   534
             layout: (LayoutFrame 0 0.0 238 0 0 1.0 0 1)
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   535
             model: selectionHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   536
             menu: menu
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   537
             hasHorizontalScrollBar: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   538
             hasVerticalScrollBar: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   539
             isMultiSelect: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   540
             doubleClickSelector: fileDoubleClick:
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   541
             valueChangeSelector: fileSelected:
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   542
             useIndex: true
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   543
             sequenceList: shownListHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   544
             properties: 
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   545
            (PropertyListDictionary
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   546
               dropObjectSelector: getDropObjects:
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   547
               displayObjectSelector: getDisplayObjects:
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   548
               startDragSelector: doStartDrag:in:
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   549
               dragArgument: findFileList
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   550
             )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   551
           )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   552
          )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   553
        
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   554
       )
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   555
     )
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
   556
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   557
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   558
321c1729db5b initial checkin
penk
parents:
diff changeset
   559
!FindFileApplication class methodsFor:'menu specs'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   560
321c1729db5b initial checkin
penk
parents:
diff changeset
   561
menu
321c1729db5b initial checkin
penk
parents:
diff changeset
   562
    "This resource specification was automatically generated
321c1729db5b initial checkin
penk
parents:
diff changeset
   563
     by the MenuEditor of ST/X."
321c1729db5b initial checkin
penk
parents:
diff changeset
   564
321c1729db5b initial checkin
penk
parents:
diff changeset
   565
    "Do not manually edit this!! If it is corrupted,
321c1729db5b initial checkin
penk
parents:
diff changeset
   566
     the MenuEditor may not be able to read the specification."
321c1729db5b initial checkin
penk
parents:
diff changeset
   567
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   568
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   569
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   570
     MenuEditor new openOnClass:FindFileApplication andSelector:#menu
321c1729db5b initial checkin
penk
parents:
diff changeset
   571
     (Menu new fromLiteralArrayEncoding:(FindFileApplication menu)) startUp
321c1729db5b initial checkin
penk
parents:
diff changeset
   572
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   573
321c1729db5b initial checkin
penk
parents:
diff changeset
   574
    <resource: #menu>
321c1729db5b initial checkin
penk
parents:
diff changeset
   575
321c1729db5b initial checkin
penk
parents:
diff changeset
   576
    ^ 
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   577
     #(Menu
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   578
        (
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   579
         (MenuItem
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   580
            enabled: hasOneFileSelected
7323
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   581
            label: 'Open in New File Browser'
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   582
            itemValue: openInNewBrowser
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   583
          )
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   584
         (MenuItem
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   585
            enabled: hasOneFileSelected
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   586
            label: 'Select in Browser'
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   587
            itemValue: selectInBrowser
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   588
            isVisible: isEmbeddedApplication
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   589
          )
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   590
         (MenuItem
6158
823812e0c7ac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6154
diff changeset
   591
            label: 'Autoselect in Browser'
823812e0c7ac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6154
diff changeset
   592
            indication: autoSelectInBrowserHolder
823812e0c7ac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6154
diff changeset
   593
          )
823812e0c7ac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6154
diff changeset
   594
         (MenuItem
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   595
            label: '-'
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   596
          )
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   597
         (MenuItem
8613
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   598
            enabled: hasOneFileSelected
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   599
            label: 'FileIn'
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   600
            itemValue: fileInInBrowser
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   601
          )
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   602
         (MenuItem
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   603
            label: '-'
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   604
          )
6c82076a9cbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8330
diff changeset
   605
         (MenuItem
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   606
            enabled: hasSelectionInResultList
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   607
            label: 'Copy Selected Filenames to Clipboard'
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   608
            itemValue: copySelectedFileNamesToClipboard
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   609
          )
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   610
         (MenuItem
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   611
            label: '-'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   612
          )
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   613
         (MenuItem
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   614
            enabled: hasSelection
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   615
            label: 'Delete Selected File(s)...'
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   616
            itemValue: deleteSelectedFiles
12494
dd5b8035d104 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
   617
          )
dd5b8035d104 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
   618
         (MenuItem
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   619
            enabled: hasListEntries
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   620
            label: 'Delete all Files...'
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   621
            itemValue: deleteAllFiles
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   622
            isVisible: false
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   623
          )
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   624
         (MenuItem
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   625
            label: '-'
16826
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   626
          )
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   627
         (MenuItem
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   628
            enabled: hasSelection
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   629
            label: 'Touch Selected File(s)...'
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   630
            itemValue: touchSelectedFiles
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   631
          )
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   632
         (MenuItem
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   633
            enabled: hasListEntries
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   634
            label: 'Touch all Files...'
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   635
            itemValue: touchAllFiles
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   636
            isVisible: false
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   637
          )
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   638
         (MenuItem
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
   639
            label: '-'
12778
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   640
            isVisible: cvsMenusAreShown
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   641
          )
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   642
         (MenuItem
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   643
            enabled: hasSelection
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   644
            label: 'Commit Selected File(s) to CVS...'
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   645
            itemValue: commitSelectedFilesToCVS
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   646
            isVisible: cvsMenusAreShown
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   647
          )
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   648
         (MenuItem
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   649
            enabled: hasSelection
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   650
            label: 'Delete Selected File(s) and CVS Container(s)...'
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   651
            itemValue: deleteSelectedFilesAndCVSContainers
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   652
            isVisible: cvsMenusAreShown
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   653
          )
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   654
         (MenuItem
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
   655
            label: '-'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   656
          )
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   657
         (MenuItem
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   658
            enabled: hasSelection
5767
2cc71e97ef70 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5766
diff changeset
   659
            label: 'Remove Selected from Resultlist'
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   660
            itemValue: removeSelectedFilesFromResultList
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   661
          )
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   662
         (MenuItem
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   663
            enabled: hasListEntries
7691
6ff02cb42c55 code cleanup
Claus Gittinger <cg@exept.de>
parents: 7688
diff changeset
   664
            label: 'Clear Resultlist'
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   665
            itemValue: clearResultList
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   666
          )
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   667
         (MenuItem
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   668
            label: '-'
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   669
          )
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   670
         (MenuItem
7691
6ff02cb42c55 code cleanup
Claus Gittinger <cg@exept.de>
parents: 7688
diff changeset
   671
            label: 'Show Matched Files (After SameContents-Search)'
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   672
            itemValue: showMatchedFiles:
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   673
            isVisible: notShowingMatchedFiles
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   674
            argument: true
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   675
          )
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   676
         (MenuItem
7691
6ff02cb42c55 code cleanup
Claus Gittinger <cg@exept.de>
parents: 7688
diff changeset
   677
            label: 'Show Matching Files (After SameContents-Search)'
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   678
            itemValue: showMatchedFiles:
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   679
            isVisible: showingMatchedFiles
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   680
            argument: false
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   681
          )
15214
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   682
         (MenuItem
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   683
            enabled: hasTwoFilesSelected
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   684
            label: 'Compare with Each Other'
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   685
            itemValue: doCompareTwoFiles
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   686
            argument: false
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   687
          )
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   688
         )
321c1729db5b initial checkin
penk
parents:
diff changeset
   689
        nil
321c1729db5b initial checkin
penk
parents:
diff changeset
   690
        nil
321c1729db5b initial checkin
penk
parents:
diff changeset
   691
      )
321c1729db5b initial checkin
penk
parents:
diff changeset
   692
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   693
321c1729db5b initial checkin
penk
parents:
diff changeset
   694
searchMenu
321c1729db5b initial checkin
penk
parents:
diff changeset
   695
    "This resource specification was automatically generated
321c1729db5b initial checkin
penk
parents:
diff changeset
   696
     by the MenuEditor of ST/X."
321c1729db5b initial checkin
penk
parents:
diff changeset
   697
321c1729db5b initial checkin
penk
parents:
diff changeset
   698
    "Do not manually edit this!! If it is corrupted,
321c1729db5b initial checkin
penk
parents:
diff changeset
   699
     the MenuEditor may not be able to read the specification."
321c1729db5b initial checkin
penk
parents:
diff changeset
   700
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   701
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   702
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   703
     MenuEditor new openOnClass:FindFileApplication andSelector:#searchMenu
321c1729db5b initial checkin
penk
parents:
diff changeset
   704
     (Menu new fromLiteralArrayEncoding:(FindFileApplication searchMenu)) startUp
321c1729db5b initial checkin
penk
parents:
diff changeset
   705
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   706
321c1729db5b initial checkin
penk
parents:
diff changeset
   707
    <resource: #menu>
321c1729db5b initial checkin
penk
parents:
diff changeset
   708
321c1729db5b initial checkin
penk
parents:
diff changeset
   709
    ^ 
7574
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   710
     #(Menu
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   711
        (
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   712
         (MenuItem
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   713
            label: 'Search'
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   714
            itemValue: doSearch
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   715
            translateLabel: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   716
            isButton: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   717
            labelImage: (ResourceRetriever ToolbarIconLibrary searchFileIcon)
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   718
          )
7574
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   719
         (MenuItem
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   720
            enabled: enableStop
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   721
            label: 'Stop'
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   722
            itemValue: stop
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   723
            translateLabel: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   724
            isButton: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   725
            isVisible: enableStop
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   726
            labelImage: (ResourceRetriever XPToolbarIconLibrary stop22x22Icon)
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   727
          )
7574
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   728
         (MenuItem
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   729
            label: 'Close'
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   730
            itemValue: doClose
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   731
            translateLabel: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   732
            isButton: true
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   733
            startGroup: right
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   734
            isVisible: false
7574
097a6513da1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7323
diff changeset
   735
            labelImage: (ResourceRetriever ToolbarIconLibrary removeTabIcon)
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   736
          )
321c1729db5b initial checkin
penk
parents:
diff changeset
   737
         )
321c1729db5b initial checkin
penk
parents:
diff changeset
   738
        nil
321c1729db5b initial checkin
penk
parents:
diff changeset
   739
        nil
321c1729db5b initial checkin
penk
parents:
diff changeset
   740
      )
321c1729db5b initial checkin
penk
parents:
diff changeset
   741
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   742
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   743
!FindFileApplication class methodsFor:'startup & release'!
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   744
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   745
releaseContentsInfoCache
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   746
    ContentsInfoCache := ContentsInfoCacheAccessLock := nil.
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   747
! !
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   748
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   749
!FindFileApplication class methodsFor:'tableColumns specs'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   750
321c1729db5b initial checkin
penk
parents:
diff changeset
   751
searchResultTable
321c1729db5b initial checkin
penk
parents:
diff changeset
   752
    "This resource specification was automatically generated
321c1729db5b initial checkin
penk
parents:
diff changeset
   753
     by the DataSetBuilder of ST/X."
321c1729db5b initial checkin
penk
parents:
diff changeset
   754
321c1729db5b initial checkin
penk
parents:
diff changeset
   755
    "Do not manually edit this!! If it is corrupted,
321c1729db5b initial checkin
penk
parents:
diff changeset
   756
     the DataSetBuilder may not be able to read the specification."
321c1729db5b initial checkin
penk
parents:
diff changeset
   757
321c1729db5b initial checkin
penk
parents:
diff changeset
   758
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   759
     DataSetBuilder new openOnClass:FindFileApplication andSelector:#searchResultTable
321c1729db5b initial checkin
penk
parents:
diff changeset
   760
    "
321c1729db5b initial checkin
penk
parents:
diff changeset
   761
321c1729db5b initial checkin
penk
parents:
diff changeset
   762
    <resource: #tableColumns>
321c1729db5b initial checkin
penk
parents:
diff changeset
   763
321c1729db5b initial checkin
penk
parents:
diff changeset
   764
    ^#(
6583
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   765
      (DataSetColumnSpec
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   766
         label: 'Filename'
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   767
         id: 'FileName'
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   768
         labelButtonType: Button
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   769
         model: fileName
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   770
         showRowSeparator: false
2652ac4ca0ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
   771
         showColSeparator: false
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   772
       )
321c1729db5b initial checkin
penk
parents:
diff changeset
   773
      )
321c1729db5b initial checkin
penk
parents:
diff changeset
   774
    
321c1729db5b initial checkin
penk
parents:
diff changeset
   775
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   776
321c1729db5b initial checkin
penk
parents:
diff changeset
   777
!FindFileApplication methodsFor:'actions'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   778
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
   779
clearCache
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
   780
    contentsInfoCache := nil
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
   781
!
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
   782
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   783
clearResultList
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   784
    self resultList removeAll.
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   785
    self matchedFilesList removeAll.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   786
!
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
   787
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   788
deleteAllFiles
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   789
    |files|
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   790
5864
0338587f079e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5860
diff changeset
   791
    files := self shownList copy.
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   792
    self deleteFiles:files confirm:true.
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   793
    self removeFilesFromResultList:files
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   794
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   795
    "Modified: / 29-03-2012 / 10:06:09 / cg"
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   796
!
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   797
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   798
deleteFiles:colOfFiles confirm:confirm
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   799
    "delete current selected files/directories
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   800
    "
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   801
    |delete result|
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   802
6832
c69c570a3ec7 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6822
diff changeset
   803
"/    self windowGroup withWaitCursorDo:[
5961
f91c25cf2475 private classes are private
Claus Gittinger <cg@exept.de>
parents: 5866
diff changeset
   804
        delete := FileOperation deleteFiles:(colOfFiles asSet) confirm:confirm.
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   805
        result := delete result.
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   806
        result notNil ifTrue:[
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   807
            result ifFalse:[
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   808
                self notify:delete errorString.
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   809
            ] ifTrue:[
5769
c7f4f5fc96e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5768
diff changeset
   810
"/                masterApplication notNil ifTrue:[
c7f4f5fc96e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5768
diff changeset
   811
"/                    masterApplication updateListAfterDelete:colOfFiles.
c7f4f5fc96e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5768
diff changeset
   812
"/                ]
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   813
            ]
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   814
        ].
6832
c69c570a3ec7 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6822
diff changeset
   815
"/    ].
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   816
    ^ result.
6832
c69c570a3ec7 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6822
diff changeset
   817
c69c570a3ec7 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6822
diff changeset
   818
    "Modified: / 25-07-2006 / 09:11:09 / cg"
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   819
!
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   820
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   821
deleteSelectedFiles
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
   822
    |sel files result|
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   823
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   824
    sel := self selectionHolder value.
6109
aed06872e73e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6107
diff changeset
   825
    sel isEmptyOrNil ifTrue:[^ self].
aed06872e73e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6107
diff changeset
   826
5864
0338587f079e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5860
diff changeset
   827
    files := sel collect:[:idx | self shownList at:idx].
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   828
    self deleteFiles:files confirm:true.
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
   829
    result == true ifTrue:[
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   830
        self removeFilesFromResultList:files
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
   831
    ].
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   832
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   833
    "Modified: / 29-03-2012 / 10:05:39 / cg"
5766
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   834
!
97f7422b1ea6 +deleteFiles
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   835
15214
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   836
doCompareTwoFiles
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   837
    |sel entry1 entry2|
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   838
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   839
    sel := self selectionHolder value.
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   840
    sel size == 2 ifFalse:[^ self].
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   841
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   842
    entry1 := self shownList at:sel first.
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   843
    (entry1 := entry1 asFilename) exists ifFalse:[
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   844
        self warn:'Oops - file is gone: ',entry1 pathName
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   845
    ].
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   846
    entry2 := self shownList at:sel second.
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   847
    (entry2 := entry2 asFilename) exists ifFalse:[
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   848
        self warn:'Oops - file is gone: ',entry2 pathName
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   849
    ].
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   850
    masterApplication openDiffViewOn:entry1 and:entry2
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   851
!
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   852
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   853
doSearch
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   854
    |namePatterns excludedNamePatterns contentsPattern notContentsPattern 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   855
     dir dirs fn fileToCompareAgainst ignoreCaseInName ignoreCaseInExcludedName 
11423
ba26e541c690 changed: #doSearch
Claus Gittinger <cg@exept.de>
parents: 11122
diff changeset
   856
     ignoreCaseInContents ignoreCaseInNotContents|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   857
321c1729db5b initial checkin
penk
parents:
diff changeset
   858
"/    self changeExtentToSeeSearchResult.
321c1729db5b initial checkin
penk
parents:
diff changeset
   859
321c1729db5b initial checkin
penk
parents:
diff changeset
   860
    dir := self searchDirectoryHolder value.
321c1729db5b initial checkin
penk
parents:
diff changeset
   861
    dir isNil ifTrue:[
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   862
        Dialog warn:(resources string:'Missing directory name').
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   863
        ^ self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   864
    ].
16608
1edaaaaa88e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16574
diff changeset
   865
    dir asString includesMatchCharacters ifTrue:[
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   866
        dirs := Filename filesMatchingGLOB:dir.
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   867
        dirs isEmpty ifTrue:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   868
            Dialog warn:(resources string:'No matching directory: ''%1''' with:dir allBold).
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   869
            ^ self.
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   870
        ].    
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   871
    ] ifFalse:[    
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   872
        dir asFilename exists ifFalse:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   873
            Dialog warn:(resources string:'No such directory: ''%1''' with:dir allBold).
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   874
            ^ self.
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   875
        ].
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   876
        dirs := { dir }
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   877
    ].
6442
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
   878
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
   879
    LastShowUnreadableFilesAndDirectories := showUnreadableFilesAndDirectoriesHolder value.
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   880
    LastSearchIgnoredCaseInFilename := ignoreCaseInName := self ignoreCaseInName value.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   881
    LastSearchIgnoredCaseInExcludedFilename := ignoreCaseInExcludedName := self ignoreCaseInExcludedName value.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   882
    LastSearchIgnoredCaseInContents := ignoreCaseInContents := self ignoreCaseInContents value.
11423
ba26e541c690 changed: #doSearch
Claus Gittinger <cg@exept.de>
parents: 11122
diff changeset
   883
    ignoreCaseInNotContents := self ignoreCaseInNotContents value.
6442
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
   884
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   885
    self stopSearchTaskOrAbort.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   886
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   887
    namePatterns := self namePatternsFor:(self namePatternHolder value) ignoringCase:ignoreCaseInName.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   888
    excludedNamePatterns := self namePatternsFor:(self excludedNamePatternHolder value) ignoringCase:ignoreCaseInExcludedName.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   889
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   890
    contentsPattern := self contentsPatternHolder value.
321c1729db5b initial checkin
penk
parents:
diff changeset
   891
    contentsPattern size == 0 ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   892
        contentsPattern := nil
321c1729db5b initial checkin
penk
parents:
diff changeset
   893
    ] ifFalse:[
8330
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   894
        self class addToSearchStringHistory:contentsPattern.
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   895
        ignoreCaseInContents ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   896
            contentsPattern := contentsPattern asLowercase
8330
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   897
        ].
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   898
    ].
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   899
    notContentsPattern := self notContentsPatternHolder value.
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   900
    notContentsPattern size == 0 ifTrue:[
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   901
        notContentsPattern := nil
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   902
    ] ifFalse:[
11423
ba26e541c690 changed: #doSearch
Claus Gittinger <cg@exept.de>
parents: 11122
diff changeset
   903
        ignoreCaseInNotContents ifTrue:[
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   904
            notContentsPattern := notContentsPattern asLowercase
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   905
        ]
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
   906
    ].
5787
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   907
    searchForSameContents value ifTrue:[
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   908
        fileToCompareAgainst := (self sameContentsAsHolder value ? '') withoutSeparators.
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   909
        fileToCompareAgainst isEmpty ifTrue:[
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   910
            fileToCompareAgainst := nil.
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   911
        ] ifFalse:[
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   912
            fileToCompareAgainst includesMatchCharacters ifFalse:[
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   913
                (fn := fileToCompareAgainst asFilename) exists ifFalse:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   914
                    Dialog warn:('No such file: %1' bindWith:fileToCompareAgainst allBold).
5787
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   915
                    ^ self.
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   916
                ].
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   917
                fn isReadable ifFalse:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   918
                    Dialog warn:('Cannot read: %1' bindWith:fileToCompareAgainst allBold).
5787
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   919
                    ^ self.
7afc10d73559 search fix
Claus Gittinger <cg@exept.de>
parents: 5786
diff changeset
   920
                ]
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
   921
            ].
5726
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
   922
        ].
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
   923
    ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
   924
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   925
    self 
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   926
        startSearchTask:[
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   927
            self changeInformationTo:'Find File ' , '- searching ' toTab:true.
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   928
            self 
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   929
                doFindFileNamed:namePatterns
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   930
                directories:(self searchDirectories value)
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   931
                ignoreCaseInName:ignoreCaseInName
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   932
                excludeFilesNamed:excludedNamePatterns
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   933
                ignoreCaseInExcludedName:ignoreCaseInExcludedName
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   934
                containingString:contentsPattern
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   935
                ignoreCaseInContents:ignoreCaseInContents
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   936
                notContainingString:notContentsPattern
11423
ba26e541c690 changed: #doSearch
Claus Gittinger <cg@exept.de>
parents: 11122
diff changeset
   937
                ignoreCaseInNotContents:ignoreCaseInNotContents
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   938
                sameContentsAsFile:fileToCompareAgainst  
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   939
                sameContentsAs:nil 
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   940
                in:dirs.
5770
2b3f1705ed84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5769
diff changeset
   941
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
   942
        ]
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
   943
        name:('FindFile[', dir asFilename baseName, ']')
5770
2b3f1705ed84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5769
diff changeset
   944
11423
ba26e541c690 changed: #doSearch
Claus Gittinger <cg@exept.de>
parents: 11122
diff changeset
   945
    "Modified: / 16-03-2012 / 09:37:13 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   946
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   947
7323
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   948
fileInInBrowser
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   949
    |sel entry application|
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   950
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   951
    sel := self selectionHolder value.
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   952
    (sel notEmptyOrNil) ifTrue:[
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   953
        entry := self shownList at:sel first.
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   954
        entry asFilename exists ifFalse:[ ^ self].
15214
f00b3fcd0a60 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15105
diff changeset
   955
7323
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   956
        application := targetApplication ? self masterApplication.
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   957
        application notNil ifTrue:[
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   958
            application fileIn:(entry asFilename).
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   959
        ].
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   960
    ].
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   961
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   962
    "Created: / 20-09-2006 / 14:30:37 / cg"
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   963
!
54d7a46631e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6832
diff changeset
   964
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   965
namePatternsFor:namePatternArg ignoringCase:ignoringCase
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   966
    |namePattern|
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   967
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   968
    namePattern := namePatternArg.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   969
    namePattern size == 0 ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   970
        ^ nil
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   971
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   972
    ignoringCase ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   973
        namePattern := namePattern asLowercase
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   974
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   975
    ^ (namePattern asCollectionOfSubstringsSeparatedBy:$;)
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   976
        collect:[:each | each withoutSeparators].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   977
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   978
    "Created: / 03-08-2011 / 18:19:20 / cg"
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   979
!
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
   980
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   981
removeFilesFromResultList:listOfFiles 
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   982
    |list|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   983
5864
0338587f079e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5860
diff changeset
   984
    list := self shownList.
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   985
    (listOfFiles notEmptyOrNil) ifTrue:[
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   986
        listOfFiles reverseDo:[: key |
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   987
            list removeAtIndex:key
321c1729db5b initial checkin
penk
parents:
diff changeset
   988
        ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   989
    ].
11474
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   990
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   991
    "Created: / 29-03-2012 / 10:04:58 / cg"
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   992
!
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   993
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   994
removeSelectedFilesFromResultList
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   995
    self removeFilesFromResultList:(self selectionHolder value)
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   996
99b9dcfbcc4a added: #removeFilesFromResultList:
Claus Gittinger <cg@exept.de>
parents: 11473
diff changeset
   997
    "Modified: / 29-03-2012 / 10:05:11 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   998
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   999
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1000
showMatchedFiles:aBoolean
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1001
    aBoolean ifTrue:[
5864
0338587f079e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5860
diff changeset
  1002
        self shownListHolder valueHolder:(self matchedFilesList)
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1003
    ] ifFalse:[
5864
0338587f079e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5860
diff changeset
  1004
        self shownListHolder valueHolder:(self resultList)
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1005
    ].
16826
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1006
!
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1007
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1008
touchAllFiles
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1009
    |files|
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1010
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1011
    files := self shownList copy.
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1012
    self touchFiles:files.
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1013
!
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1014
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1015
touchFiles:colOfFiles
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1016
    "touch current selected files/directories
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1017
    "
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1018
    colOfFiles asSet do:[:each |
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1019
        OperatingSystem executeCommand:('touch %1' bindWith:each asFilename pathName).
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1020
    ].
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1021
!
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1022
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1023
touchSelectedFiles
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1024
    |sel files|
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1025
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1026
    sel := self selectionHolder value.
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1027
    sel isEmptyOrNil ifTrue:[^ self].
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1028
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1029
    files := sel collect:[:idx | self shownList at:idx].
db04dc4aac2d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16810
diff changeset
  1030
    self touchFiles:files.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1031
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  1032
12778
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1033
!FindFileApplication methodsFor:'actions-CVS'!
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1034
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1035
commitSelectedFilesToCVS
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1036
    |sel files|
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1037
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1038
    sel := self selectionHolder value.
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1039
    files := sel collect:[:idx | (self shownList at:idx) asFilename ].
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1040
    masterApplication commitFilesToCVS:files
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1041
!
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1042
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1043
deleteSelectedFilesAndCVSContainers
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1044
    |sel files|
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1045
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1046
    sel := self selectionHolder value.
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1047
    files := sel collect:[:idx | (self shownList at:idx) asFilename ].
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1048
    masterApplication removeFilesAndCVSContainers:files
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1049
! !
b7c50fd7cd7a class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12739
diff changeset
  1050
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1051
!FindFileApplication methodsFor:'aspects'!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1052
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1053
canUseGrep
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1054
    "grep command is much faster, but:
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1055
        - not under MSDOS
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1056
    "
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1057
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1058
    ^ OperatingSystem isUNIXlike and:[ OperatingSystem canExecuteCommand:'egrep' ]
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1059
!
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1060
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1061
canUseLocate
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1062
    "locate command is much faster, but:
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1063
        - only if searching recursively,
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1064
        - no case ignore
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1065
        - no contents matching
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1066
    "
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1067
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1068
    ^ OperatingSystem isUNIXlike and:[ OperatingSystem canExecuteCommand:'locate' ]
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1069
!
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1070
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1071
contentsPatternHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
  1072
321c1729db5b initial checkin
penk
parents:
diff changeset
  1073
    contentsPatternHolder isNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1074
        contentsPatternHolder := nil asValue.
8330
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
  1075
        self class searchStringHistory size > 0 ifTrue:[
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
  1076
            contentsPatternHolder value:(self class searchStringHistory first).    
f553e2e0442a search string history
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
  1077
        ].
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1078
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1079
    ^ contentsPatternHolder.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1080
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1081
6330
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1082
enableFileSizeFilter
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1083
    enableFileSizeFilter isNil ifTrue:[
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1084
        enableFileSizeFilter := false asValue.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1085
    ].
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1086
    ^ enableFileSizeFilter.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1087
!
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1088
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1089
enableFileSizeFilterAndNotSearchForSameContents
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1090
    ^ BlockValue forLogical:self notSearchForSameContents and:self enableFileSizeFilter
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1091
!
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1092
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1093
enableModificationTimeFilter
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1094
    enableModificationTimeFilter isNil ifTrue:[
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1095
        enableModificationTimeFilter := false asValue.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1096
    ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1097
    ^ enableModificationTimeFilter.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1098
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1099
    "Created: / 28-03-2012 / 23:11:58 / cg"
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1100
!
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1101
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1102
excludedNamePatternHolder
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1103
    excludedNamePatternHolder isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1104
        excludedNamePatternHolder := '' asValue.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1105
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1106
    ^ excludedNamePatternHolder.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1107
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1108
    "Created: / 03-08-2011 / 18:03:14 / cg"
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1109
!
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1110
6330
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1111
fileSizeHolder
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1112
    fileSizeHolder isNil ifTrue:[
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1113
        fileSizeHolder := 0 asValue.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1114
    ].
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1115
    ^ fileSizeHolder.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1116
!
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1117
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1118
fileSizeOperatorHolder
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1119
    fileSizeOperatorHolder isNil ifTrue:[
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1120
        fileSizeOperatorHolder := '>' asValue.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1121
    ].
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1122
    ^ fileSizeOperatorHolder.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1123
!
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1124
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1125
fileSizeUnitHolder
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1126
    fileSizeUnitHolder isNil ifTrue:[
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1127
        fileSizeUnitHolder := 'b' asValue.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1128
    ].
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1129
    ^ fileSizeUnitHolder.
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1130
!
24949170ff90 size-search filter added
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
  1131
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1132
ignoreCaseInContents
321c1729db5b initial checkin
penk
parents:
diff changeset
  1133
    ignoreCaseInContents isNil ifTrue:[
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1134
        ignoreCaseInContents := (LastSearchIgnoredCaseInContents notNil
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1135
                                    ifTrue:[ LastSearchIgnoredCaseInContents ]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1136
                                    ifFalse:[ TextView lastSearchIgnoredCase ? true]) asValue.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1137
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1138
    ^ ignoreCaseInContents.
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1139
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1140
    "Modified: / 03-08-2011 / 18:05:02 / cg"
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1141
!
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1142
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1143
ignoreCaseInExcludedName
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1144
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1145
    ignoreCaseInExcludedName isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1146
        ignoreCaseInExcludedName := (LastSearchIgnoredCaseInExcludedFilename notNil 
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1147
                                        ifTrue:[ LastSearchIgnoredCaseInExcludedFilename ]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1148
                                        ifFalse:[ OperatingSystem caseSensitiveFilenames not]) asValue.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1149
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1150
    ^ ignoreCaseInExcludedName.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1151
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1152
    "Created: / 03-08-2011 / 18:03:38 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1153
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1154
321c1729db5b initial checkin
penk
parents:
diff changeset
  1155
ignoreCaseInName
321c1729db5b initial checkin
penk
parents:
diff changeset
  1156
    ignoreCaseInName isNil ifTrue:[
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1157
        ignoreCaseInName := (LastSearchIgnoredCaseInFilename notNil
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1158
                                ifTrue:[LastSearchIgnoredCaseInFilename]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1159
                                ifFalse:[ OperatingSystem caseSensitiveFilenames not ]) asValue.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1160
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1161
    ^ ignoreCaseInName.
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1162
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1163
    "Modified (format): / 03-08-2011 / 18:05:49 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1164
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1165
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1166
ignoreCaseInNotContents
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1167
    ignoreCaseInNotContents isNil ifTrue:[
6442
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
  1168
        ignoreCaseInNotContents := (LastSearchIgnoredCaseInContents 
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
  1169
                                    ? TextView lastSearchIgnoredCase 
840b9ab17b66 case defaults
Claus Gittinger <cg@exept.de>
parents: 6355
diff changeset
  1170
                                    ? true) asValue.
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1171
    ].
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1172
    ^ ignoreCaseInNotContents.
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1173
!
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1174
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1175
modificationTimeHolder
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1176
    modificationTimeHolder isNil ifTrue:[
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1177
        modificationTimeHolder := (Timestamp now subtractDays:1) asValue.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1178
    ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1179
    ^ modificationTimeHolder.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1180
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1181
    "Created: / 28-03-2012 / 23:08:25 / cg"
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1182
!
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1183
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1184
modificationTimeOperatorHolder
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1185
    modificationTimeOperatorHolder isNil ifTrue:[
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1186
        modificationTimeOperatorHolder := 'after' asValue.
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1187
        modificationTimeOperatorHolder onChangeSend:#modificationTimeOperatorChanged to:self.
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1188
    ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1189
    ^ modificationTimeOperatorHolder.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1190
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1191
    "Created: / 28-03-2012 / 23:04:44 / cg"
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1192
!
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1193
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1194
modificationTimeOperatorIndexHolder
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1195
    modificationTimeOperatorIndexHolder isNil ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1196
        modificationTimeOperatorIndexHolder := 1 asValue.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1197
        modificationTimeOperatorIndexHolder onChangeSend:#modificationTimeOperatorChanged to:self.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1198
    ].
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1199
    ^ modificationTimeOperatorIndexHolder.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1200
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1201
    "Created: / 28-03-2012 / 23:04:44 / cg"
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1202
!
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1203
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1204
modificationTimeOperatorLabelList
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1205
    ^ self modificationTimeOperatorSpecList collect:#first
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1206
!
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1207
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1208
modificationTimeOperatorSpecList
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1209
    ^ #(
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1210
        ('before'   #before)
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1211
        ('after'    #after)
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1212
        ('in day'   #inDay)
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1213
        ('in month' #inMonth)
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1214
        ('in year'  #inYear)
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1215
    )
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1216
!
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1217
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1218
modificationTimeOperatorValueList
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1219
    ^ self modificationTimeOperatorSpecList collect:#second
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1220
!
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1221
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1222
namePatternHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
  1223
321c1729db5b initial checkin
penk
parents:
diff changeset
  1224
    namePatternHolder isNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1225
        namePatternHolder := '*' asValue.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1226
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1227
    ^ namePatternHolder.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1228
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1229
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1230
notContentsPatternHolder
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1231
    notContentsPatternHolder isNil ifTrue:[
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1232
        notContentsPatternHolder := nil asValue.
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1233
    ].
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1234
    ^ notContentsPatternHolder.
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1235
!
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1236
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1237
notSearchForSameContents
5743
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1238
    ^ BlockValue forLogicalNot:self searchForSameContents
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1239
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1240
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1241
notShowingMatchedFiles
5865
24bc1718c04f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5864
diff changeset
  1242
    ^ self shownList == self resultList
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1243
!
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1244
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1245
rememberInCache
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1246
    rememberInCache isNil ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1247
        rememberInCache := (LastRememberInCache ? false) asValue.
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1248
    ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1249
    ^ rememberInCache.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1250
!
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1251
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1252
sameContentsAsHolder
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1253
    |sel|
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1254
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1255
    sameContentsAsHolder isNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1256
        sameContentsAsHolder := ValueHolder new.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1257
        masterApplication notNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1258
            sel := masterApplication currentSelectedFiles.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1259
            sel size > 0 ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1260
                sameContentsAsHolder value:(sel first asFilename pathName).
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1261
            ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1262
        ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1263
    ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1264
    ^ sameContentsAsHolder.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1265
!
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1266
4518
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1267
searchDirectories
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1268
    searchDirectories isNil ifTrue:[
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1269
        searchDirectories := false asValue.
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1270
    ].
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1271
    ^ searchDirectories.
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1272
!
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1273
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1274
searchDirectoryHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
  1275
321c1729db5b initial checkin
penk
parents:
diff changeset
  1276
    searchDirectoryHolder isNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1277
        searchDirectoryHolder := ValueHolder new.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1278
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1279
    ^ searchDirectoryHolder.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1280
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1281
5743
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1282
searchForSameContents
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1283
    searchForSameContents isNil ifTrue:[
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1284
        searchForSameContents := false asValue.
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1285
    ].
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1286
    ^ searchForSameContents.
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1287
!
ab4c777f25f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
  1288
5726
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1289
searchOnlyInCache
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1290
    searchOnlyInCache isNil ifTrue:[
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1291
        searchOnlyInCache := false asValue.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1292
    ].
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1293
    ^ searchOnlyInCache.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1294
!
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1295
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1296
showUnreadableFilesAndDirectoriesHolder
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1297
    showUnreadableFilesAndDirectoriesHolder isNil ifTrue:[
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1298
        showUnreadableFilesAndDirectoriesHolder := (LastShowUnreadableFilesAndDirectories ? false) asValue.
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1299
    ].
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1300
    ^ showUnreadableFilesAndDirectoriesHolder.
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1301
!
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1302
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1303
showingMatchedFiles
5865
24bc1718c04f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5864
diff changeset
  1304
    ^ self shownList == self matchedFilesList
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1305
!
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1306
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1307
useGrep
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1308
    useGrep isNil ifTrue:[
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1309
        useGrep := false asValue.
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1310
    ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1311
    ^ useGrep.
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1312
!
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1313
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1314
useLocate
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1315
    useLocate isNil ifTrue:[
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1316
        useLocate := false asValue.
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1317
    ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1318
    ^ useLocate.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1319
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  1320
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1321
!FindFileApplication methodsFor:'change & update'!
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1322
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1323
modificationTimeOperatorChanged
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1324
    |timeEditField converter realModel idx operator|
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1325
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1326
    timeEditField := (self componentAt:'ModifiedEntryField').
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1327
    converter := timeEditField model.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1328
    realModel := converter model.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1329
    self assert:(self modificationTimeHolder == realModel).
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1330
    idx := self modificationTimeOperatorIndexHolder value.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1331
    operator := self modificationTimeOperatorValueList at:idx.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1332
    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1333
    ((operator == #after) or:[operator = #before]) ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1334
        realModel setValue:(realModel value asTimestamp).    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1335
        converter timeOfClass:Timestamp withFormat:nil orDefault:Timestamp now    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1336
    ] ifFalse:[    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1337
        operator = #inDay ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1338
            realModel setValue:(realModel value asDate).    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1339
            converter timeOfClass:Date withFormat:'%y-%m-%d' orDefault:Date today    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1340
        ] ifFalse:[    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1341
            operator = #inMonth ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1342
                realModel setValue:(realModel value asDate).    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1343
                converter monthAndYear    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1344
            ] ifFalse:[    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1345
                operator = #inYear ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1346
                    realModel setValue:(realModel value asDate).    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1347
                    converter year    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1348
                ] ifFalse:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1349
                    self halt.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1350
                ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1351
            ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1352
        ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1353
    ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1354
    realModel changed.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1355
! !
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  1356
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1357
!FindFileApplication methodsFor:'private'!
321c1729db5b initial checkin
penk
parents:
diff changeset
  1358
321c1729db5b initial checkin
penk
parents:
diff changeset
  1359
changeExtentToSeeSearchResult
321c1729db5b initial checkin
penk
parents:
diff changeset
  1360
    
321c1729db5b initial checkin
penk
parents:
diff changeset
  1361
    | extent window|
321c1729db5b initial checkin
penk
parents:
diff changeset
  1362
321c1729db5b initial checkin
penk
parents:
diff changeset
  1363
    expanded isNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1364
        window := self builder window.
9536
ea60487ceeee changed: #changeExtentToSeeSearchResult
Claus Gittinger <cg@exept.de>
parents: 9475
diff changeset
  1365
        window notNil ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1366
            window := window topView.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1367
            extent := window extent.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1368
            window extent:((extent x) @ (extent y + 300)).
321c1729db5b initial checkin
penk
parents:
diff changeset
  1369
            expanded := true.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1370
            window containerChangedSize.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1371
        ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1372
    ].
9536
ea60487ceeee changed: #changeExtentToSeeSearchResult
Claus Gittinger <cg@exept.de>
parents: 9475
diff changeset
  1373
ea60487ceeee changed: #changeExtentToSeeSearchResult
Claus Gittinger <cg@exept.de>
parents: 9475
diff changeset
  1374
    "Modified: / 08-08-2010 / 14:42:40 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1375
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  1376
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1377
!FindFileApplication methodsFor:'private - searching'!
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1378
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1379
cachedFileSizeOf:aFilenameString
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1380
    |cache cacheLine fileSize|
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1381
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1382
    cache := self contentsInfoCache.
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1383
    cache isNil ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1384
        fileSize := aFilenameString asFilename fileSize
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1385
    ] ifFalse:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1386
        ContentsInfoCacheAccessLock critical:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1387
            cacheLine := cache at:aFilenameString ifAbsent:nil.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1388
            cacheLine isNil ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1389
                cache at:aFilenameString put:(cacheLine := Array new:2).
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1390
            ] ifFalse:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1391
                fileSize := (cacheLine at:1).
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1392
            ].
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1393
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1394
            fileSize isNil ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1395
                fileSize := aFilenameString asFilename fileSize.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1396
                cacheLine at:1 put:fileSize.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1397
            ].
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1398
        ].
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1399
    ].
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1400
    ^ fileSize
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1401
!
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1402
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1403
cachedHashValueOfFile:aFilenameString
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1404
    |cache cacheLine hashValue|
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1405
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1406
    cache := self contentsInfoCache.
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1407
    cache isNil ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1408
        hashValue := MD5Stream hashValueOfFile:aFilenameString asFilename
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1409
    ] ifFalse:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1410
        ContentsInfoCacheAccessLock critical:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1411
            cacheLine := cache at:aFilenameString ifAbsent:nil.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1412
            cacheLine isNil ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1413
                cache at:aFilenameString put:(Array new:2).
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1414
            ] ifFalse:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1415
                hashValue := (cacheLine at:2).
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1416
            ].
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1417
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1418
            hashValue isNil ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1419
                hashValue := MD5Stream hashValueOfFile:aFilenameString asFilename.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1420
                cacheLine at:2 put:hashValue.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1421
            ].
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1422
        ].
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1423
    ].
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1424
    ^ hashValue
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1425
!
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1426
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1427
contentsInfoCache
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1428
    contentsInfoCache isNil ifTrue:[
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1429
        ContentsInfoCache isNil ifTrue:[
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1430
            ContentsInfoCache := Dictionary new.    
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1431
            ContentsInfoCacheAccessLock := Semaphore forMutualExclusion.
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1432
        ].
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1433
        contentsInfoCache := ContentsInfoCache
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1434
    ].
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  1435
    ^ contentsInfoCache
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1436
!
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1437
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1438
doFindFileNamed:namePatterns directories:searchDirectories ignoreCase:ignCaseInName 
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1439
    containingString:contentsStringArg ignoreCaseInContents:ignCaseInContents 
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1440
    notContainingString:notContentsStringArg ignoreCaseInNotContents:ignCaseInNotContents 
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1441
    sameContentsAsFile:filenameToCompareContentsOrNil sameContentsAs:bytesToCompareContentsOrNil in:aDirectory
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1442
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1443
    "/ only for backward compatibility...
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1444
    ^ self
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1445
        doFindFileNamed:namePatterns directories:searchDirectories ignoreCaseInName:ignCaseInName
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1446
        excludeFilesNamed:'' ignoreCaseInExcludedName:false
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1447
        containingString:contentsStringArg ignoreCaseInContents:ignCaseInContents 
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1448
        notContainingString:notContentsStringArg ignoreCaseInNotContents:ignCaseInNotContents 
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1449
        sameContentsAsFile:filenameToCompareContentsOrNil sameContentsAs:bytesToCompareContentsOrNil in:aDirectory
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1450
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1451
    "Modified: / 03-08-2011 / 18:16:42 / cg"
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1452
!
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1453
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1454
doFindFileNamed:namePatterns directories:searchDirectories ignoreCaseInName:ignCaseInName
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1455
    excludeFilesNamed:excludedNamePatterns ignoreCaseInExcludedName:ignoreCaseInExcludedName
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1456
    containingString:contentsStringArg ignoreCaseInContents:ignCaseInContents 
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1457
    notContainingString:notContentsStringArg ignoreCaseInNotContents:ignCaseInNotContents 
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1458
    sameContentsAsFile:filenameToCompareContentsOrNil 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1459
    sameContentsAs:bytesToCompareContentsOrNil 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1460
    in:aDirectoryOrCollectionOfDirectories
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1461
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1462
    "the main workhorse for searching files.
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1463
     Creates optimized search blocks, depending on how we search,
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1464
     and passes these to the recursive directory walker.
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1465
     (got too big, and may need some splitting/refactoring"
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1466
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1467
    |theSingleDirectory lines contentsToCompare resultList inStream
5601
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1468
     doesFileMatch contentsString notContentsString check checkNot 
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1469
     grepCommand nameMatch nameExcludedMatch realNameMatch 
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1470
     fileSizesToSearchFor filesToSearchFor fileMD5sToSearchFor 
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  1471
     setOfFilesToSearchFor remember cache fn dirSearchedRelative easyCheck|
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1472
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1473
    (aDirectoryOrCollectionOfDirectories isFilename
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1474
    or:[aDirectoryOrCollectionOfDirectories isString]) ifTrue:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1475
        theSingleDirectory := aDirectoryOrCollectionOfDirectories asFilename
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1476
    ] ifFalse:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1477
        (aDirectoryOrCollectionOfDirectories size == 1) ifTrue:[
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1478
            theSingleDirectory := aDirectoryOrCollectionOfDirectories first asFilename
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1479
        ].
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1480
    ].
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1481
    
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1482
    "/ dir := aDirectory asFilename.
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1483
    contentsString := contentsStringArg.
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1484
    (contentsString notEmptyOrNil and:[ ignCaseInContents ]) ifTrue:[ 
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1485
        contentsString := contentsString asLowercase
6183
e6d9cfbfb358 care for empty search-arguments
Michael Beyl <mb@exept.de>
parents: 6158
diff changeset
  1486
    ].
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1487
    notContentsString := notContentsStringArg.
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1488
    (notContentsString notEmptyOrNil and:[ ignCaseInNotContents ]) ifTrue:[ 
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1489
        notContentsString := notContentsString asLowercase    
6183
e6d9cfbfb358 care for empty search-arguments
Michael Beyl <mb@exept.de>
parents: 6158
diff changeset
  1490
    ].
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1491
    filenameToCompareContentsOrNil notEmptyOrNil ifTrue:[
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1492
        fileSizesToSearchFor := OrderedCollection new.
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1493
        filesToSearchFor := OrderedCollection new.
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1494
        fileMD5sToSearchFor := OrderedCollection new.
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1495
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1496
        filenameToCompareContentsOrNil includesMatchCharacters ifTrue:[
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1497
            |dir|
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1498
            
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1499
            dir := filenameToCompareContentsOrNil asFilename.
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1500
            [dir pathName includesMatchCharacters] whileTrue:[
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1501
                dir := dir directory
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1502
            ].
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1503
            dir recursiveDirectoryContentsDo:[:relName |
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1504
                |path fn|
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1505
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1506
                fn := dir construct:relName.
5770
2b3f1705ed84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5769
diff changeset
  1507
                (filenameToCompareContentsOrNil match:fn name) ifTrue:[
5847
6ff1fce17ac4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5844
diff changeset
  1508
                    fn isDirectory ifFalse:[
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1509
                        fileSizesToSearchFor add:(self cachedFileSizeOf:fn).
5847
6ff1fce17ac4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5844
diff changeset
  1510
                        filesToSearchFor add:(fn name).
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1511
                        fileMD5sToSearchFor add:(self cachedHashValueOfFile:fn).
5847
6ff1fce17ac4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5844
diff changeset
  1512
                    ]
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1513
                ]
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1514
            ].
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1515
        ] ifFalse:[
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1516
            fn := filenameToCompareContentsOrNil asFilename.
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1517
            fileSizesToSearchFor add:(self cachedFileSizeOf:fn).
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1518
            filesToSearchFor add:(fn pathName).
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1519
            fileMD5sToSearchFor add:(self cachedHashValueOfFile:fn).
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1520
        ].
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1521
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1522
        remember := LastRememberInCache := self rememberInCache value.
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1523
        remember ifTrue:[
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1524
            cache := self contentsInfoCache.
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1525
        ].
5866
d754a2b95e8f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5865
diff changeset
  1526
        setOfFilesToSearchFor := filesToSearchFor asSet.
d754a2b95e8f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5865
diff changeset
  1527
    ].    
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1528
    
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1529
"/    dirSearchedRelative := (dir name) copyFrom:(self searchDirectoryHolder value asString size + 1).
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1530
"/    dirSearchedRelative notEmpty ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1531
"/        self changeInformationTo:('Find File - searching %1' bindWith:dirSearchedRelative) toTab:false.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1532
"/    ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1533
        self changeInformationTo:'Find File - searching' toTab:false.
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1534
"/    ].
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1535
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1536
    resultList := self resultList.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1537
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1538
    filenameToCompareContentsOrNil notEmptyOrNil ifTrue:[
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1539
        doesFileMatch := 
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1540
            [:f |
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1541
                |contentsMatches mustValidateExistance 
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1542
                 fileMD5 fileName fileSize cacheLine idxInList matchedFile|
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1543
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1544
                "/ contents compare ...
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1545
                contentsMatches := false.
5771
ba11ead45024 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  1546
                fileName := f name.
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1547
                (setOfFilesToSearchFor includes:fileName) ifFalse:[
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1548
                    mustValidateExistance := false.
5856
68274991f212 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5851
diff changeset
  1549
5727
2e272a545f8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5726
diff changeset
  1550
                    cache notNil ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1551
                        ContentsInfoCacheAccessLock critical:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1552
                            cacheLine := cache at:fileName ifAbsent:nil.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1553
                            cacheLine notNil ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1554
                                fileSize := cacheLine at:1.    
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1555
                                fileMD5 := cacheLine at:2.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1556
                                mustValidateExistance := true.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1557
                            ].
5727
2e272a545f8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5726
diff changeset
  1558
                        ].
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1559
                    ].
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1560
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1561
                    fileSize isNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1562
                        fileSize := f fileSize.
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1563
                    ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1564
                    remember ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1565
                        ContentsInfoCacheAccessLock critical:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1566
                            cacheLine := cache at:fileName ifAbsentPut:[Array new:2].
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1567
                            cacheLine at:1 put:fileSize.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1568
                        ]
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1569
                    ].
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1570
                    (idxInList := fileSizesToSearchFor indexOf:fileSize) ~~ 0 ifTrue:[
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1571
                        fileMD5 isNil ifTrue:[
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1572
                            OpenError handle:[:ex |
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1573
                                ObjectMemory garbageCollect.
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1574
                                fileMD5 := MD5Stream hashValueOfFile:f.
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1575
                            ] do:[
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1576
                                fileMD5 := MD5Stream hashValueOfFile:f.
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1577
                            ].
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1578
                            remember ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1579
                                cacheLine at:2 put:fileMD5
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1580
                            ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1581
                        ].
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1582
                        contentsMatches := (fileMD5 = (fileMD5sToSearchFor at:idxInList)).
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1583
                        contentsMatches ifTrue:[
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1584
                            mustValidateExistance ifTrue:[
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1585
                                fileName asFilename exists ifFalse:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1586
                                    ContentsInfoCacheAccessLock critical:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1587
                                        cache removeKey:fileName.
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1588
                                    ].
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1589
                                    contentsMatches := false.
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1590
                                ].
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1591
                            ].
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1592
                            contentsMatches ifTrue:[
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1593
                                matchedFile := filesToSearchFor at:idxInList.
11106
86ac37a9a382 changed: #doFindFileNamed:directories:ignoreCaseInName:excludeFilesNamed:ignoreCaseInExcludedName:containingString:ignoreCaseInContents:notContainingString:ignoreCaseInNotContents:sameContentsAsFile:sameContentsAs:in:
Claus Gittinger <cg@exept.de>
parents: 11103
diff changeset
  1594
                                self matchedFilesList add:matchedFile.
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1595
                            ].
5850
9f217d207505 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5848
diff changeset
  1596
                        ].
5723
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1597
"/                        contentsToCompare isNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1598
"/                            filenameToCompareContentsOrNil fileSize < (512*1024) ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1599
"/                                contentsToCompare := filenameToCompareContentsOrNil binaryContentsOfEntireFile
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1600
"/                            ]
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1601
"/                        ].
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1602
"/                        contentsToCompare isNil ifTrue:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1603
"/                            "/ too large - compare block-wise ...
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1604
"/                            contentsMatches := (filenameToCompareContentsOrNil sameContentsAs:f).
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1605
"/                        ] ifFalse:[
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1606
"/                            contentsMatches := contentsToCompare = (f binaryContentsOfEntireFile).
dadcb827b659 more search
Claus Gittinger <cg@exept.de>
parents: 5677
diff changeset
  1607
"/                        ]
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1608
                    ].
5773
6c5f260f3a5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1609
                ] ifTrue:[
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1610
                    f isSymbolicLink ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1611
                        resultList add: (f name , ' is a symbolic link to ' , f pathName).
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1612
                    ]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1613
                ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1614
                contentsMatches
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1615
            ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1616
    ] ifFalse:[
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1617
        (contentsString isEmptyOrNil and:[notContentsString isEmptyOrNil]) ifTrue:[
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1618
            doesFileMatch := [:f | true].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1619
        ] ifFalse:[
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1620
            (self canUseGrep and:[self useGrep value]) ifTrue:[
5601
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1621
                (ignCaseInContents not and:[ignCaseInNotContents not]) ifTrue:[
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1622
                    contentsString notEmptyOrNil ifTrue:[
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1623
                        notContentsString notEmptyOrNil ifTrue:[
5601
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1624
                            grepCommand := '(grep "',contentsString,'" %1) && (grep -v "',notContentsString,'" %1)'.
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1625
                        ] ifFalse:[
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1626
                            grepCommand := 'grep "' , contentsString , '" %1'.
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1627
                        ].
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1628
                    ] ifFalse:[
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1629
                        grepCommand := 'grep -v "' , notContentsString , '" %1'.
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1630
                    ].
5601
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1631
                    doesFileMatch := [:f | |cmd ret|
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1632
                                            cmd := grepCommand bindWith:f pathName.
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1633
                                            ret := OperatingSystem executeCommand:cmd.
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1634
                                            ret
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1635
                                     ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1636
                ]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1637
            ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1638
5601
08ab506e471d egrep search support
Claus Gittinger <cg@exept.de>
parents: 5600
diff changeset
  1639
            doesFileMatch isNil ifTrue:[
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1640
                contentsString notEmptyOrNil ifTrue:[
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1641
                    ignCaseInContents ifTrue:[
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  1642
                        check := easyCheck := [:l | l includesString:contentsString caseSensitive:false]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1643
                    ] ifFalse:[
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  1644
                        check := easyCheck := [:l | l includesString:contentsString]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1645
                    ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1646
                ].
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1647
                notContentsString notEmptyOrNil ifTrue:[
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1648
                    ignCaseInNotContents ifTrue:[
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1649
                        checkNot := [:l | (l includesString:notContentsString caseSensitive:false)]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1650
                    ] ifFalse:[
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1651
                        checkNot := [:l | (l includesString:notContentsString)]
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1652
                    ].
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1653
                ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1654
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1655
                doesFileMatch := 
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1656
                    [:f |
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1657
                        |realFile contentsMatches contentsNotMatches sz hugeFile bigFile isBadFile|
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1658
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1659
                        "/ string search ...
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1660
                        contentsMatches := true.
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1661
                        (f exists and:[f isReadable]) ifFalse:[
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1662
                            showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1663
                                resultList add: (('*** "',f pathName,'" skipped - unreadable or bad symbolic link ***') withColor:(Color red darkened)).
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1664
                            ].
13773
b4eb885ea9f0 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12778
diff changeset
  1665
                            contentsMatches := false.
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1666
                        ] ifTrue:[
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1667
                            isBadFile := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1668
                            realFile := f.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1669
                            f isSymbolicLink ifTrue:[ 
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1670
                                realFile := f linkInfo linkTargetPath asFilename. 
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1671
                                (realFile exists and:[realFile isReadable]) ifFalse:[
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1672
                                    showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1673
                                        resultList add: (('*** "',f pathName,'"->"',realFile pathName,'" skipped - unreadable or bad symbolic link destination ***') withColor:(Color red darkened)).
13920
1929484021d8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13773
diff changeset
  1674
                                    ].
13773
b4eb885ea9f0 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12778
diff changeset
  1675
                                    contentsMatches := false.
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1676
                                    isBadFile := true.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1677
                                ].    
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1678
                            ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1679
                            isBadFile ifFalse:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1680
                                realFile isDirectory ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1681
                                    contentsMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1682
                                ] ifFalse:[    
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1683
                                    sz := realFile fileSize.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1684
                                    sz isNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1685
                                        contentsMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1686
                                    ] ifFalse:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1687
                                        hugeFile := (sz ? 0) > (4024*1024).
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1688
                                        bigFile := (sz ? 0) > (512*1024).
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1689
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1690
                                        hugeFile ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1691
                                            showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1692
                                                resultList add: (('*** ' , f pathName , ' skipped - too large ***') withColor:(Color red darkened)).
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1693
                                            ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1694
                                            contentsMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1695
                                        ] ifFalse:[
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1696
                                            Stream lineTooLongErrorSignal handle:[:ex |
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1697
                                                |cont|
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1698
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1699
            "/                                    "/ this typically happens, when a binary file is read linewise ...
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1700
                                                showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1701
                                                    resultList add: (('*** ' , f pathName , ' skipped - binary/long line ***') withColor:(Color red darkened)).
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1702
                                                ].
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1703
                                                contentsMatches := false.
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1704
                                            ] do:[
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1705
                                                bigFile ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1706
                                                    Stream lineTooLongErrorSignal handle:[:ex |
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1707
                                                        showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1708
                                                            resultList add: (('*** ' , f pathName , ' skipped - too large ***') withColor:(Color red darkened)).
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1709
                                                        ].
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1710
                                                        contentsMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1711
                                                    ] do:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1712
                                                        contentsMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1713
                                                        (check == easyCheck 
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1714
                                                        and:[ realFile size < (128*1024) ]) ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1715
                                                            check notNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1716
                                                                contentsMatches := realFile contentsAsString includesString: contentsString caseSensitive:ignCaseInContents not.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1717
                                                                (contentsMatches and:[ checkNot notNil ]) ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1718
                                                                    contentsMatches := (realFile contentsAsString includesString: notContentsString caseSensitive:ignCaseInNotContents not) not.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1719
                                                                ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1720
                                                            ] ifFalse:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1721
                                                                checkNot notNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1722
                                                                    contentsMatches := (realFile contentsAsString includesString: notContentsString caseSensitive:ignCaseInNotContents not) not.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1723
                                                                ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1724
                                                            ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1725
                                                        ] ifFalse:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1726
                                                            contentsNotMatches := false.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1727
                                                            realFile readingFileDo:[:stream |
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1728
                                                                [contentsMatches or:[contentsNotMatches or:[stream atEnd]]] whileFalse:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1729
                                                                    |line|
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1730
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1731
                                                                    line := stream nextLine.
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1732
                                                                    check notNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1733
                                                                        contentsMatches := check value:line
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1734
                                                                    ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1735
                                                                    checkNot notNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1736
                                                                        contentsNotMatches := checkNot value:line
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1737
                                                                    ].
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1738
                                                                ]
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1739
                                                            ].
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1740
                                                        ].
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1741
                                                    ].
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1742
                                                ] ifFalse:[
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1743
                                                    lines := realFile contents ? #().
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1744
                                                    check notNil ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1745
                                                        contentsMatches := lines contains:check
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1746
                                                    ].
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1747
                                                    (contentsMatches and:[ checkNot notNil ]) ifTrue:[
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1748
                                                        contentsMatches := (lines contains:checkNot) not
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1749
                                                    ]
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1750
                                                ]
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1751
                                            ].
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1752
                                        ].    
15105
30559da8faf6 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15092
diff changeset
  1753
                                    ].
5231
d74730347ed8 added option to search for file NOT containing a string
Claus Gittinger <cg@exept.de>
parents: 5224
diff changeset
  1754
                                ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1755
                            ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1756
                        ].
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1757
                        contentsMatches
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1758
                    ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1759
            ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1760
        ].
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1761
        doesFileMatch := self fileSizeWrapperFor:doesFileMatch.
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1762
    ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1763
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1764
    doesFileMatch := self modificationTimeWrapperFor:doesFileMatch.
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1765
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1766
    namePatterns isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1767
        nameMatch := [:fn | true]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1768
    ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1769
        ignCaseInName ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1770
            nameMatch := [:fn | namePatterns contains:[:aPattern | aPattern match:(fn asLowercase)]].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1771
        ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1772
            nameMatch := [:fn | namePatterns contains:[:aPattern | aPattern match:fn]].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1773
        ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1774
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1775
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1776
    excludedNamePatterns isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1777
        nameExcludedMatch := [:fn | true]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1778
    ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1779
        ignoreCaseInExcludedName ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1780
            nameExcludedMatch := [:fn | excludedNamePatterns contains:[:aPattern | aPattern match:(fn asLowercase)]].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1781
        ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1782
            nameExcludedMatch := [:fn | excludedNamePatterns contains:[:aPattern | aPattern match:fn]].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1783
        ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1784
    ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1785
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1786
    "/ combine
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1787
    namePatterns isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1788
        excludedNamePatterns isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1789
            realNameMatch := [:fn | true]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1790
        ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1791
            realNameMatch := [:fn | (nameExcludedMatch value:fn) not]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1792
        ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1793
    ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1794
        excludedNamePatterns isNil ifTrue:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1795
            realNameMatch := nameMatch
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1796
        ] ifFalse:[
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1797
            realNameMatch := [:fn | (nameMatch value:fn) and:[ (nameExcludedMatch value:fn) not ]]
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1798
        ].
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1799
    ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1800
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1801
    (self canUseLocate 
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1802
    and:[self useLocate value
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1803
    and:[searchDirectories not
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1804
    and:[theSingleDirectory notNil]]])
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1805
    ifTrue:[
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1806
        [
16639
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1807
            |updateInfo cmd line f|
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1808
16639
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1809
            updateInfo :=
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1810
                [
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1811
                    self 
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1812
                        changeInformationTo:('%1 found' bindWith:resultList size) 
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1813
                        toTab:false.
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1814
                ].
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1815
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1816
            self window shown ifTrue:[
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1817
                updateInfo value.
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1818
            ].
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1819
            
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1820
            cmd := 'locate '.
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1821
            ignCaseInName ifTrue:[
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1822
                "/ cmd := cmd , '--ignore-case '
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1823
                cmd := cmd , '-i '
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1824
            ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1825
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1826
            cmd := cmd , ((namePatterns 
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1827
                            collect:[:nm | '"',nm,'"'])
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  1828
                                asStringCollection asStringWith:Character space).
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1829
            inStream := PipeStream readingFrom:cmd inDirectory:theSingleDirectory.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1830
            [inStream atEnd] whileFalse:[
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1831
                line := inStream nextLine.
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1832
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1833
                f := line asFilename.
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1834
                (doesFileMatch value:f) ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1835
                    resultList add:line.
16639
629bf5cdd089 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16608
diff changeset
  1836
                    updateInfo value.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1837
                ]
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1838
            ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1839
        ] ensure:[
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1840
            inStream notNil ifTrue:[inStream close].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1841
        ].
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1842
        ^ self.
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1843
    ].
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  1844
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1845
    bytesToCompareContentsOrNil notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1846
        contentsToCompare := bytesToCompareContentsOrNil
321c1729db5b initial checkin
penk
parents:
diff changeset
  1847
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1848
12385
d2206a9da1c9 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12339
diff changeset
  1849
    filenameToCompareContentsOrNil notEmptyOrNil ifTrue:[
5727
2e272a545f8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5726
diff changeset
  1850
        self searchOnlyInCache value ifTrue:[
5726
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1851
            cache notEmptyOrNil ifTrue:[
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1852
                cache keysAndValuesDo:[:fn :info |
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1853
                    |filesSize filesMD5 idxInList|
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  1854
5726
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1855
                    filesSize := info at:1.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1856
                    filesSize isNil ifTrue:[
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1857
                        filesSize := fn asFilename fileSize.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1858
                        info at:1 put:filesSize.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1859
                    ].
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1860
                    (idxInList := fileSizesToSearchFor indexOf:filesSize) ~~ 0 ifTrue:[
6250
5b0673ccff1c refactored intention revealing code:
Claus Gittinger <cg@exept.de>
parents: 6183
diff changeset
  1861
                        (setOfFilesToSearchFor includes:fn) ifFalse:[
5729
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1862
                            fn asFilename exists ifFalse:[
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1863
                                info at:1 put:nil.    
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1864
                                info at:2 put:nil.    
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1865
                            ] ifTrue:[
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1866
                                filesMD5 := info at:2.
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1867
                                filesMD5 isNil ifTrue:[
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1868
                                    filesMD5 := MD5Stream hashValueOfFile:fn asFilename.
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1869
                                    info at:2 put:filesMD5.
752d89ffb83e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5728
diff changeset
  1870
                                ].
5768
18f6e4033412 multisearch
Claus Gittinger <cg@exept.de>
parents: 5767
diff changeset
  1871
                                filesMD5 = (fileMD5sToSearchFor at:idxInList) ifTrue:[
5859
c85f10082d25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5857
diff changeset
  1872
                                    resultList add:fn.
5728
93ac88c7f87d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
  1873
                                ]
5727
2e272a545f8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5726
diff changeset
  1874
                            ]
5726
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1875
                        ]
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1876
                    ]
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1877
                ].
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1878
            ].
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1879
            ^ self.
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1880
        ].
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1881
    ].
464df1753187 fast cache search added
Claus Gittinger <cg@exept.de>
parents: 5723
diff changeset
  1882
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1883
    filesSearchedCount := 0.
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1884
16574
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1885
    aDirectoryOrCollectionOfDirectories do:[:eachDir |
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1886
        self 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1887
            doFindFileNamed:namePatterns 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1888
            directories:searchDirectories
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1889
            nameMatch:realNameMatch 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1890
            contentsMatch:doesFileMatch 
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1891
            in:eachDir.
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1892
    ]
635deee55b29 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16511
diff changeset
  1893
    
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1894
    "Created: / 03-08-2011 / 18:16:02 / cg"
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1895
!
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1896
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1897
doFindFileNamed:namePatterns directories:searchDirectories nameMatch:nameMatch contentsMatch:doesFileMatch in:aDirectory
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1898
    "the recursive walker. Searches for files matching namematch-block,
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1899
     and contents matching doesFileMatch-block"
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1900
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1901
    |dir subDirs list directoryContents updateInfo|
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1902
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1903
    dir := aDirectory asFilename.
5844
11812dd2d7d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5811
diff changeset
  1904
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1905
    updateInfo :=
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1906
        [
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1907
            self 
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1908
                changeInformationTo:('%1 found - searching %2' 
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1909
                                        bindWith:resultList size
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1910
                                        with:((dir name) copyFrom:(self searchDirectoryHolder value asString size + 1))) 
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1911
                toTab:false.
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1912
        ].
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1913
14748
e6132b5f9f68 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 14064
diff changeset
  1914
    self window shown ifTrue:[
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1915
        updateInfo value.
14748
e6132b5f9f68 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 14064
diff changeset
  1916
    ].
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1917
    list := self resultList.
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1918
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1919
    subDirs := OrderedCollection new.
321c1729db5b initial checkin
penk
parents:
diff changeset
  1920
4638
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1921
    [
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1922
        directoryContents := dir directoryContents.
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1923
    ] on:FileStream openErrorSignal do:[:ex|
15660
252c9daa66e0 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15217
diff changeset
  1924
        self showUnreadableFilesAndDirectoriesHolder value ifTrue:[
16511
5a82c3c6dd2d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16474
diff changeset
  1925
            list add:((ex pathName , ' -> ' , ex description) withColor:Color red darkened).
15660
252c9daa66e0 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15217
diff changeset
  1926
        ].
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1927
        "/        self warn:('Cannot access %1\(%2)'
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1928
        "/                        bindWith:ex parameter printString
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1929
        "/                        with:ex description) withCRs.
4638
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1930
        ^ self
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1931
    ].
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1932
4638
79734f7bdfc4 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4518
diff changeset
  1933
    directoryContents sort do:[:fn |
4518
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1934
        |f isDirectory|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1935
321c1729db5b initial checkin
penk
parents:
diff changeset
  1936
        f := dir construct:fn.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1937
4518
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1938
        isDirectory := f isDirectory.
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1939
        isDirectory ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1940
            f isSymbolicLink ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1941
                subDirs add:f
321c1729db5b initial checkin
penk
parents:
diff changeset
  1942
            ]
4518
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1943
        ].
85b13890d7b1 allow to search for directories
Claus Gittinger <cg@exept.de>
parents: 4336
diff changeset
  1944
        (searchDirectories or:[isDirectory not]) ifTrue:[
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1945
            (nameMatch value:fn) ifTrue:[
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1946
                filesSearchedCount := (filesSearchedCount ? 0) + 1.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1947
                (isDirectory or:[ doesFileMatch value:f ])
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1948
                ifTrue:[
15217
d815d45f3c53 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15214
diff changeset
  1949
                    updateInfo value.
5176
b76af7e92feb option to use locate for faster search
Claus Gittinger <cg@exept.de>
parents: 5140
diff changeset
  1950
                    list add:(f asString).
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1951
                ]
321c1729db5b initial checkin
penk
parents:
diff changeset
  1952
            ]
321c1729db5b initial checkin
penk
parents:
diff changeset
  1953
        ]
321c1729db5b initial checkin
penk
parents:
diff changeset
  1954
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1955
321c1729db5b initial checkin
penk
parents:
diff changeset
  1956
    self searchRecursively value ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  1957
        subDirs do:[:dir |
321c1729db5b initial checkin
penk
parents:
diff changeset
  1958
            self
321c1729db5b initial checkin
penk
parents:
diff changeset
  1959
                doFindFileNamed:namePatterns 
5600
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1960
                directories:searchDirectories 
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1961
                nameMatch:nameMatch 
4e7bca968c09 findFile code cleanup (and speedup by factor of 2)
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  1962
                contentsMatch:doesFileMatch 
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  1963
                in:dir
321c1729db5b initial checkin
penk
parents:
diff changeset
  1964
        ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  1965
    ]
10441
3238040023bb class definition
Claus Gittinger <cg@exept.de>
parents: 9536
diff changeset
  1966
15660
252c9daa66e0 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 15217
diff changeset
  1967
    "Modified: / 22-05-2015 / 11:42:17 / cg"
11097
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1968
!
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1969
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1970
fileSizeWrapperFor:aFileMatchBlock
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1971
    "possibly wrap the search-match block into a file-size matcher"
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1972
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1973
    |fileSizeToCompare sizeMatch op compare|
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1974
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1975
    self enableFileSizeFilter value ifFalse:[ ^ aFileMatchBlock ].
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1976
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1977
    fileSizeToCompare := self fileSizeHolder value.
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1978
    op := self fileSizeOperatorHolder value withoutSeparators.
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1979
    op = '~' ifTrue:[
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1980
        compare := [:sz | sz between:(fileSizeToCompare*0.9) and:(fileSizeToCompare*1.1) ].
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1981
    ] ifFalse:[
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1982
        op := op asSymbol.
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1983
        compare := [:sz | sz perform:op with:fileSizeToCompare ].
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1984
    ].
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1985
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1986
    sizeMatch := [:f | 
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1987
                    |sz| 
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1988
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1989
                    sz := f fileSize. 
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1990
                    sz notNil and:[ compare value:sz ]
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1991
                 ].
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1992
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1993
    ^ [:f | (sizeMatch value:f) and:[ aFileMatchBlock value:f ]]
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1994
0319362db871 refactored
Claus Gittinger <cg@exept.de>
parents: 11096
diff changeset
  1995
    "Created: / 11-01-2012 / 23:17:02 / cg"
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1996
!
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1997
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1998
modificationTimeWrapperFor:aFileMatchBlock
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  1999
    "possibly wrap the search-match block into a modification time matcher"
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2000
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2001
    |timeToCompare timeMatch idx op compare|
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2002
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2003
    self enableModificationTimeFilter value ifFalse:[ ^ aFileMatchBlock ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2004
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2005
    timeToCompare := self modificationTimeHolder value.
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2006
    idx := self modificationTimeOperatorIndexHolder value.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2007
    op := self modificationTimeOperatorValueList at:idx.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2008
    op = #after ifTrue:[
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2009
        compare := [:t | t > timeToCompare ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2010
    ] ifFalse:[
16810
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2011
        op = #before ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2012
            compare := [:t | t < timeToCompare ].
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2013
        ] ifFalse:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2014
            op = #inDay ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2015
                timeToCompare := timeToCompare asDate.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2016
                compare := [:t | t asDate = timeToCompare ].
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2017
            ] ifFalse:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2018
                op = #inMonth ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2019
                    timeToCompare := timeToCompare asDate.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2020
                    compare := [:t | t month = timeToCompare month
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2021
                                     and:[t year = timeToCompare year] ].
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2022
                ] ifFalse:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2023
                    op = #inYear ifTrue:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2024
                        timeToCompare := timeToCompare asDate.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2025
                        compare := [:t | t year = timeToCompare year ].
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2026
                    ] ifFalse:[
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2027
                        self halt.
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2028
                    ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2029
                ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2030
            ].    
dee205471698 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16639
diff changeset
  2031
        ].
11473
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2032
    ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2033
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2034
    timeMatch := [:f | 
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2035
                    |t| 
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2036
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2037
                    t := f modificationTime. 
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2038
                    t notNil and:[ compare value:t ]
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2039
                 ].
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2040
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2041
    ^ [:f | (timeMatch value:f) and:[ aFileMatchBlock value:f ]]
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2042
2d838f1ab6e3 class definition
Claus Gittinger <cg@exept.de>
parents: 11423
diff changeset
  2043
    "Created: / 28-03-2012 / 23:18:32 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2044
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  2045
321c1729db5b initial checkin
penk
parents:
diff changeset
  2046
!FindFileApplication methodsFor:'queries'!
321c1729db5b initial checkin
penk
parents:
diff changeset
  2047
7688
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
  2048
getTabValueString
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
  2049
    "the item shown in a tab (not language translated)"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2050
7691
6ff02cb42c55 code cleanup
Claus Gittinger <cg@exept.de>
parents: 7688
diff changeset
  2051
    ^ self fileName directory baseName
7688
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
  2052
9f592c9a86db code cleanup
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
  2053
    "Created: / 01-03-2007 / 21:39:54 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2054
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  2055
321c1729db5b initial checkin
penk
parents:
diff changeset
  2056
!FindFileApplication methodsFor:'startup & release'!
321c1729db5b initial checkin
penk
parents:
diff changeset
  2057
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2058
initialize
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2059
    super initialize.
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2060
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2061
    self enableStop value:false.
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2062
    self enableSearch value:true.
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2063
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2064
    "Created: / 12-01-2012 / 01:38:29 / cg"
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2065
!
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2066
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4798
diff changeset
  2067
item:anItem
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2068
4797
6e16a84c6bb5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4638
diff changeset
  2069
    |file newPattern|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2070
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4798
diff changeset
  2071
    super item:anItem.
4797
6e16a84c6bb5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4638
diff changeset
  2072
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2073
    file := self fileName.
321c1729db5b initial checkin
penk
parents:
diff changeset
  2074
    self searchDirectoryHolder value:(self getDirWithoutFileName:file).
4797
6e16a84c6bb5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4638
diff changeset
  2075
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2076
    file isDirectory ifTrue:[
4797
6e16a84c6bb5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4638
diff changeset
  2077
        newPattern := '*'.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2078
    ] ifFalse:[
12739
5dfe43fb5704 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12494
diff changeset
  2079
        anItem suffix isEmptyOrNil ifTrue:[
5dfe43fb5704 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12494
diff changeset
  2080
            newPattern := '*'.
5dfe43fb5704 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12494
diff changeset
  2081
        ] ifFalse:[
5dfe43fb5704 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12494
diff changeset
  2082
            newPattern := '*.', anItem suffix.
5dfe43fb5704 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 12494
diff changeset
  2083
        ].
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2084
    ].
4797
6e16a84c6bb5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4638
diff changeset
  2085
    self namePatternHolder value:newPattern.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2086
    ^ true.
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2087
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2088
    "Modified: / 12-01-2012 / 01:38:14 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2089
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  2090
321c1729db5b initial checkin
penk
parents:
diff changeset
  2091
postOpenWith:aBuilder
321c1729db5b initial checkin
penk
parents:
diff changeset
  2092
    self masterApplication isNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
  2093
        self masterApplication:nil.
321c1729db5b initial checkin
penk
parents:
diff changeset
  2094
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
  2095
    findFileView := aBuilder window.
321c1729db5b initial checkin
penk
parents:
diff changeset
  2096
    self windowGroup addPreEventHook:self.
6633
6843fedf7516 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6583
diff changeset
  2097
    super postOpenWith:aBuilder.
11101
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2098
34affbf84319 refactored
Claus Gittinger <cg@exept.de>
parents: 11097
diff changeset
  2099
    "Modified (format): / 12-01-2012 / 01:40:44 / cg"
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2100
!
321c1729db5b initial checkin
penk
parents:
diff changeset
  2101
321c1729db5b initial checkin
penk
parents:
diff changeset
  2102
release
321c1729db5b initial checkin
penk
parents:
diff changeset
  2103
    self stopSearchTask.
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6094
diff changeset
  2104
    contentsInfoCache := nil.
14064
7aa0a1075ee8 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 13920
diff changeset
  2105
    super release
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2106
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
  2107
321c1729db5b initial checkin
penk
parents:
diff changeset
  2108
!FindFileApplication class methodsFor:'documentation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
  2109
321c1729db5b initial checkin
penk
parents:
diff changeset
  2110
version
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  2111
    ^ '$Header$'
9036
9242245f6689 no need for #asText to emphasize a string
Claus Gittinger <cg@exept.de>
parents: 8613
diff changeset
  2112
!
9242245f6689 no need for #asText to emphasize a string
Claus Gittinger <cg@exept.de>
parents: 8613
diff changeset
  2113
9242245f6689 no need for #asText to emphasize a string
Claus Gittinger <cg@exept.de>
parents: 8613
diff changeset
  2114
version_CVS
16186
aa2cd75d6b8d #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15660
diff changeset
  2115
    ^ '$Header$'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
  2116
! !
12339
4fb3104f0334 class: FindFileApplication
Claus Gittinger <cg@exept.de>
parents: 11474
diff changeset
  2117