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