DirectoryContentsBrowser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 17221 83d1d509d23b
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5140
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     1
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     3
              All Rights Reserved
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     4
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     5
 This software is furnished under a license and may be used
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
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: 5120
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     8
 be provided or otherwise made available to, or used by, any
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
     9
 other person.  No title to or ownership of the software is
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    10
 hereby transferred.
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    11
"
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
    12
"{ Package: 'stx:libtool' }"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    13
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
    14
"{ NameSpace: Smalltalk }"
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
    15
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    16
AbstractDirectoryBrowser subclass:#DirectoryContentsBrowser
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    17
	instanceVariableNames:'modificationTime directory columnDescriptors iconIndex
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    18
		fileDescriptionIndex iconExtent tableColumns previewIndex
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    19
		draggedItem viewBrowserMenu updateContentsSelection
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    20
		selectionInFileList browserItemList matchBlock updateTask
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    21
		directoryChangeFlag directoryContentsChangeFlag filterChangeFlag
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    22
		sortBlockChangeFlag isBusy changeSema filteredItems allItems
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    23
		diskUsageInfo diskUsageUpdateProcess multipleSelect
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
    24
		doubleClickAction updateCycleSemaphore updatingColumns accessLock
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
    25
		enterActionBlock updateCurrentFileNameHolderWhenSelectionChanges'
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    26
	classVariableNames:'Debug'
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    27
	poolDictionaries:''
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    28
	category:'Interface-Tools-File'
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    29
!
81925afd23fd initial checkin
penk
parents:
diff changeset
    30
81925afd23fd initial checkin
penk
parents:
diff changeset
    31
Object subclass:#DirectoryContentsItem
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    32
	instanceVariableNames:'fileName fileInfo icon fileType
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    33
		contentsBrowserChangeModificationTime suffix preview group owner
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    34
		timeAndDate mimeType iconKey mimeTypeForContents baseName'
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    35
	classVariableNames:'LastUIDToUserNameMapping LastGIDToGroupNameMapping'
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    36
	poolDictionaries:''
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
    37
	privateIn:DirectoryContentsBrowser
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
    38
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
    39
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    40
!DirectoryContentsBrowser class methodsFor:'documentation'!
81925afd23fd initial checkin
penk
parents:
diff changeset
    41
5140
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    42
copyright
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    43
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    44
 COPYRIGHT (c) 2002 by eXept Software AG
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    45
              All Rights Reserved
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    46
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    47
 This software is furnished under a license and may be used
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    48
 only in accordance with the terms of that license and with the
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    49
 inclusion of the above copyright notice.   This software may not
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    50
 be provided or otherwise made available to, or used by, any
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    51
 other person.  No title to or ownership of the software is
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    52
 hereby transferred.
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    53
"
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    54
!
36c7da05d814 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5120
diff changeset
    55
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    56
documentation
81925afd23fd initial checkin
penk
parents:
diff changeset
    57
"
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    58
    An application for displaying a directories' contents flat (or as a tree, alternatively).
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    59
    To be used as a building block in file browsers and fileSelection dialogs.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    60
    This is used as the top-right component in the new fileBrowser.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    61
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    62
    [author:]
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    63
        Christian Penk (penk@bierfix)
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    64
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    65
    [see also:]
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    66
        FileBrowserV2
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    67
"
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    68
!
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    69
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    70
examples
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    71
"
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    72
                                                                [exBegin]
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    73
    DirectoryContentsBrowser openIn:Filename currentDirectory
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
    74
                                                                [exEnd]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    75
"
81925afd23fd initial checkin
penk
parents:
diff changeset
    76
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
    77
81925afd23fd initial checkin
penk
parents:
diff changeset
    78
!DirectoryContentsBrowser class methodsFor:'instance creation'!
81925afd23fd initial checkin
penk
parents:
diff changeset
    79
81925afd23fd initial checkin
penk
parents:
diff changeset
    80
openIn:aDirectory
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    81
    "open a standalone broser for a directory"
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    82
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    83
    self openIn:aDirectory withDirectories:false
81925afd23fd initial checkin
penk
parents:
diff changeset
    84
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    85
    "
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    86
      self openIn:'.cvsignore' asFilename
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    87
    "
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    88
!
81925afd23fd initial checkin
penk
parents:
diff changeset
    89
81925afd23fd initial checkin
penk
parents:
diff changeset
    90
openIn:aDirectory withDirectories:withDirectoriesBoolean
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    91
    "open a broswer (standalone) for a directory"
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    92
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    93
    |browser|
81925afd23fd initial checkin
penk
parents:
diff changeset
    94
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    95
    browser := self new.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    96
    browser open.
81925afd23fd initial checkin
penk
parents:
diff changeset
    97
    aDirectory notNil ifTrue:[
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
    98
        browser currentFileNameHolder value:(OrderedCollection with:aDirectory asFilename)
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
    99
    ].
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
   100
    browser viewDirsInContentsBrowser value:withDirectoriesBoolean.
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
   101
    ^ browser
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   102
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
   103
    "
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
   104
      self openIn:Filename currentDirectory withDirectories:true
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
   105
    "
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   106
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
   107
81925afd23fd initial checkin
penk
parents:
diff changeset
   108
!DirectoryContentsBrowser class methodsFor:'classAccess'!
81925afd23fd initial checkin
penk
parents:
diff changeset
   109
81925afd23fd initial checkin
penk
parents:
diff changeset
   110
itemClass
81925afd23fd initial checkin
penk
parents:
diff changeset
   111
81925afd23fd initial checkin
penk
parents:
diff changeset
   112
    ^ DirectoryContentsItem
81925afd23fd initial checkin
penk
parents:
diff changeset
   113
81925afd23fd initial checkin
penk
parents:
diff changeset
   114
81925afd23fd initial checkin
penk
parents:
diff changeset
   115
"
81925afd23fd initial checkin
penk
parents:
diff changeset
   116
self itemClass
81925afd23fd initial checkin
penk
parents:
diff changeset
   117
"
81925afd23fd initial checkin
penk
parents:
diff changeset
   118
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
   119
81925afd23fd initial checkin
penk
parents:
diff changeset
   120
!DirectoryContentsBrowser class methodsFor:'constant'!
81925afd23fd initial checkin
penk
parents:
diff changeset
   121
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   122
updateTaskCyleTime
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   123
    "time to check for changed directories or changed columns
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   124
     (unless triggered by an action)"
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   125
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   126
    ^ 10 seconds
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   127
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
   128
    "Modified (comment): / 20-03-2012 / 12:26:40 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   129
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   130
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   131
updateTaskPriority
5377
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
   132
    "priority of the update task"
5b0ca5fafecd comments
Stefan Vogel <sv@exept.de>
parents: 5348
diff changeset
   133
15466
a62dd831dbb8 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15284
diff changeset
   134
    ^ Processor userSchedulingPriority
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   135
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
   136
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   137
!DirectoryContentsBrowser class methodsFor:'image specs'!
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   138
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   139
detailsMenuIconDown
8998
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   140
    <resource: #programImage>
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   141
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   142
    ^ DataSetLabel sortReverseIndicator
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   143
!
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   144
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   145
detailsMenuIconR
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   146
    "This resource specification was automatically generated
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   147
     by the ImageEditor of ST/X."
16559
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   148
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   149
    "Do not manually edit this!! If it is corrupted,
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   150
     the ImageEditor may not be able to read the specification."
16559
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   151
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   152
    "
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   153
     self detailsMenuIconR inspect
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   154
     ImageEditor openOnClass:self andSelector:#detailsMenuIconR
16559
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   155
     Icon flushCachedIcons
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   156
    "
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   157
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   158
    <resource: #image>
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   159
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   160
    ^Icon
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   161
        constantNamed:'DirectoryContentsBrowser detailsMenuIconR'
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   162
        ifAbsentPut:[(Depth1Image width:5 height:7) bits:(ByteArray fromPackedString:'@@@@@@@@@@@a')
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   163
            colorMapFromArray:#[0 0 0]
74cccc7918fe #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16110
diff changeset
   164
            mask:((ImageMask width:5 height:7) bits:(ByteArray fromPackedString:' DB TJA@ @@a'); yourself); yourself]
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   165
!
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   166
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   167
detailsMenuIconUp
8998
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   168
    <resource: #programImage>
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   169
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
   170
    ^ DataSetLabel sortIndicator
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   171
! !
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   172
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
   173
!DirectoryContentsBrowser class methodsFor:'interface specs'!
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   174
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   175
tableColumns
81925afd23fd initial checkin
penk
parents:
diff changeset
   176
    "This resource specification was automatically generated
81925afd23fd initial checkin
penk
parents:
diff changeset
   177
     by the DataSetBuilder of ST/X."
81925afd23fd initial checkin
penk
parents:
diff changeset
   178
81925afd23fd initial checkin
penk
parents:
diff changeset
   179
    "Do not manually edit this!! If it is corrupted,
81925afd23fd initial checkin
penk
parents:
diff changeset
   180
     the DataSetBuilder may not be able to read the specification."
81925afd23fd initial checkin
penk
parents:
diff changeset
   181
81925afd23fd initial checkin
penk
parents:
diff changeset
   182
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   183
     DataSetBuilder new openOnClass:DirectoryContentsBrowser andSelector:#tableColumns
81925afd23fd initial checkin
penk
parents:
diff changeset
   184
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   185
81925afd23fd initial checkin
penk
parents:
diff changeset
   186
    <resource: #tableColumns>
81925afd23fd initial checkin
penk
parents:
diff changeset
   187
81925afd23fd initial checkin
penk
parents:
diff changeset
   188
    ^#(
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   189
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   190
         label: ''
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   191
         labelIsImage: true
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   192
         labelButtonType: Group
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   193
         width: 22
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   194
         minWidth: 22
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   195
         height: 16
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   196
         model: icon
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   197
         menuFromApplication: false
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   198
         printSelector: icon
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   199
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   200
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   201
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   202
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   203
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   204
         label: 'Filename'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   205
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   206
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   207
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   208
         labelActionArgument: 'baseName'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   209
         minWidth: 150
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   210
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   211
         model: baseName
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   212
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   213
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   214
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   215
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   216
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   217
         label: 'Suffix'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   218
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   219
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   220
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   221
         labelActionArgument: 'suffix'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   222
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   223
         width: 40
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   224
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   225
         model: suffix
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   226
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   227
         isResizeable: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   228
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   229
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   230
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   231
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   232
         label: 'Inode'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   233
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   234
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   235
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   236
         labelActionArgument: 'inodeNumber'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   237
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   238
         width: 75
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   239
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   240
         model: inodeNumber
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   241
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   242
         isResizeable: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   243
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   244
         showColSeparator: false
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
   245
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   246
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   247
         label: 'Perm'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   248
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   249
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   250
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   251
         labelActionArgument: 'permissions'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   252
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   253
         width: 75
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   254
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   255
         model: permissions
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   256
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   257
         isResizeable: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   258
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   259
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   260
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   261
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   262
         label: 'Owner'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   263
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   264
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   265
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   266
         labelActionArgument: 'owner'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   267
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   268
         width: 50
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   269
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   270
         model: owner
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   271
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   272
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   273
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   274
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   275
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   276
         label: 'Group'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   277
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   278
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   279
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   280
         labelActionArgument: 'group'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   281
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   282
         width: 40
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   283
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   284
         model: group
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   285
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   286
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   287
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   288
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   289
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   290
         label: 'Size'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   291
         labelAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   292
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   293
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   294
         labelActionArgument: 'fileSize'
15702
49a0ffb6f350 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15701
diff changeset
   295
         columnAlignment: right
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   296
         usePreferredWidth: true
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   297
         minWidth: 65
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   298
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   299
         model: sizeString
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   300
         menuFromApplication: false
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   301
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   302
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   303
         showColSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   304
       )
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   305
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   306
         label: 'KB'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   307
         labelAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   308
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   309
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   310
         labelActionArgument: 'fileSize'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   311
         columnAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   312
         usePreferredWidth: true
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   313
         minWidth: 55
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   314
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   315
         model: sizeInKiloBytesString
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   316
         menuFromApplication: false
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   317
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   318
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   319
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   320
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   321
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   322
         label: 'Bytes'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   323
         labelAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   324
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   325
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   326
         labelActionArgument: 'fileSize'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   327
         columnAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   328
         usePreferredWidth: true
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   329
         minWidth: 65
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   330
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   331
         model: sizeInBytesString
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   332
         menuFromApplication: false
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   333
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   334
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   335
         showColSeparator: false
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   336
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   337
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   338
         label: 'Date & Time'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   339
         labelAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   340
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   341
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   342
         labelActionArgument: 'modificationTime'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   343
         columnAlignment: right
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   344
         usePreferredWidth: true
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   345
         width: 140
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   346
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   347
         model: timeAndDate
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   348
         writeSelector: date:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   349
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   350
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   351
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   352
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   353
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   354
         label: 'File Info'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   355
         labelAlignment: left
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   356
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   357
         labelActionSelector: sortFileListsBy:
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   358
         labelActionArgument: 'fileType'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   359
         width: 250
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
   360
         height: heightOfFirstRow
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   361
         model: fileInfoString
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   362
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   363
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   364
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   365
       )
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   366
      (DataSetColumnSpec
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   367
         label: 'Pre +/-'
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   368
         labelButtonType: Button
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   369
         labelActionSelector: doResizeImage
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   370
         labelActionArgument: ''
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   371
         columnAlignment: center
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   372
         width: 45
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   373
         height: 16
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   374
         model: preview
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   375
         canSelect: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   376
         showRowSeparator: false
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   377
         showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   378
       )
81925afd23fd initial checkin
penk
parents:
diff changeset
   379
      )
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
   380
    
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   381
!
81925afd23fd initial checkin
penk
parents:
diff changeset
   382
81925afd23fd initial checkin
penk
parents:
diff changeset
   383
windowSpec
81925afd23fd initial checkin
penk
parents:
diff changeset
   384
    "This resource specification was automatically generated
81925afd23fd initial checkin
penk
parents:
diff changeset
   385
     by the UIPainter of ST/X."
81925afd23fd initial checkin
penk
parents:
diff changeset
   386
81925afd23fd initial checkin
penk
parents:
diff changeset
   387
    "Do not manually edit this!! If it is corrupted,
81925afd23fd initial checkin
penk
parents:
diff changeset
   388
     the UIPainter may not be able to read the specification."
81925afd23fd initial checkin
penk
parents:
diff changeset
   389
81925afd23fd initial checkin
penk
parents:
diff changeset
   390
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   391
     UIPainter new openOnClass:DirectoryContentsBrowser andSelector:#windowSpec
81925afd23fd initial checkin
penk
parents:
diff changeset
   392
     DirectoryContentsBrowser new openInterface:#windowSpec
81925afd23fd initial checkin
penk
parents:
diff changeset
   393
     DirectoryContentsBrowser open
81925afd23fd initial checkin
penk
parents:
diff changeset
   394
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   395
81925afd23fd initial checkin
penk
parents:
diff changeset
   396
    <resource: #canvas>
81925afd23fd initial checkin
penk
parents:
diff changeset
   397
81925afd23fd initial checkin
penk
parents:
diff changeset
   398
    ^ 
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   399
     #(FullSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   400
        name: windowSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   401
        window: 
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   402
       (WindowSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   403
          label: 'Directory ContentsBrowser'
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   404
          name: 'Directory ContentsBrowser'
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   405
          min: (Point 10 10)
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   406
          bounds: (Rectangle 0 0 588 478)
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   407
          menu: menu
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   408
        )
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   409
        component: 
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   410
       (SpecCollection
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   411
          collection: (
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   412
           (DataSetSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   413
              name: 'browser'
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   414
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   415
              model: selectionInFileList
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   416
              menu: directoryContentsBrowserMenu
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   417
              hasHorizontalScrollBar: true
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   418
              hasVerticalScrollBar: true
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   419
              miniScrollerHorizontal: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   420
              miniScrollerVertical: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   421
              dataList: browserItemList
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   422
              useIndex: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   423
              has3Dsepartors: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   424
              doubleClickSelector: doubleClickedAt:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   425
              columnHolder: tableColumns
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   426
              multipleSelectOk: true
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   427
              verticalSpacing: 0
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   428
              columns: 
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   429
             (OrderedCollection
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   430
                
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   431
               (DataSetColumnSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   432
                  labelButtonType: Group
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   433
                  width: 22
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   434
                  minWidth: 22
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   435
                  height: 16
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   436
                  model: icon
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   437
                  canSelect: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   438
                  showRowSeparator: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   439
                  showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   440
                ) 
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   441
               (DataSetColumnSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   442
                  label: 'file name'
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   443
                  labelAlignment: left
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   444
                  labelButtonType: Button
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   445
                  model: baseName
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   446
                  canSelect: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   447
                  showRowSeparator: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   448
                  showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   449
                )
81925afd23fd initial checkin
penk
parents:
diff changeset
   450
                
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   451
               (DataSetColumnSpec
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   452
                  label: '+/-'
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   453
                  labelButtonType: Button
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   454
                  labelActionSelector: doResizeImage
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   455
                  labelActionArgument: ''
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   456
                  columnAlignment: center
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   457
                  width: 30
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   458
                  height: 16
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   459
                  model: preview
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   460
                  canSelect: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   461
                  showRowSeparator: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   462
                  showSelectionHighLighted: false
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   463
                  showColSeparator: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   464
                )
81925afd23fd initial checkin
penk
parents:
diff changeset
   465
              )
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   466
              doubleClickChannel: doDoubleClick:
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   467
              postBuildCallback: postBuildBrowser:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   468
              properties: 
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   469
             (PropertyListDictionary
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   470
                dropSelector: doDrop:
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   471
                dragArgument: contentsbrowser
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   472
                startDragSelector: doStartDrag:in:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   473
                displayObjectSelector: getDisplayObjects:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   474
                dropObjectSelector: getDropObjects:
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   475
                overSelector: dropOver:
5152
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   476
                dropArgument: browser
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   477
                canDropSelector: canDrop:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   478
                leaveSelector: dropLeave:
6c6716dd6642 Delete #max: (- windowsize) in windowSpecs
Stefan Vogel <sv@exept.de>
parents: 5140
diff changeset
   479
                enterSelector: dropEnter:
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   480
              )
81925afd23fd initial checkin
penk
parents:
diff changeset
   481
            )
81925afd23fd initial checkin
penk
parents:
diff changeset
   482
           )
81925afd23fd initial checkin
penk
parents:
diff changeset
   483
         
81925afd23fd initial checkin
penk
parents:
diff changeset
   484
        )
81925afd23fd initial checkin
penk
parents:
diff changeset
   485
      )
81925afd23fd initial checkin
penk
parents:
diff changeset
   486
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
   487
81925afd23fd initial checkin
penk
parents:
diff changeset
   488
!DirectoryContentsBrowser class methodsFor:'menu specs'!
81925afd23fd initial checkin
penk
parents:
diff changeset
   489
81925afd23fd initial checkin
penk
parents:
diff changeset
   490
directoryContentsBrowserMenu
81925afd23fd initial checkin
penk
parents:
diff changeset
   491
    "This resource specification was automatically generated
81925afd23fd initial checkin
penk
parents:
diff changeset
   492
     by the MenuEditor of ST/X."
81925afd23fd initial checkin
penk
parents:
diff changeset
   493
81925afd23fd initial checkin
penk
parents:
diff changeset
   494
    "Do not manually edit this!! If it is corrupted,
81925afd23fd initial checkin
penk
parents:
diff changeset
   495
     the MenuEditor may not be able to read the specification."
81925afd23fd initial checkin
penk
parents:
diff changeset
   496
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   497
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   498
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   499
     MenuEditor new openOnClass:DirectoryContentsBrowser andSelector:#directoryContentsBrowserMenu
81925afd23fd initial checkin
penk
parents:
diff changeset
   500
     (Menu new fromLiteralArrayEncoding:(DirectoryContentsBrowser directoryContentsBrowserMenu)) startUp
81925afd23fd initial checkin
penk
parents:
diff changeset
   501
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   502
81925afd23fd initial checkin
penk
parents:
diff changeset
   503
    <resource: #menu>
81925afd23fd initial checkin
penk
parents:
diff changeset
   504
81925afd23fd initial checkin
penk
parents:
diff changeset
   505
    ^ 
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   506
     #(Menu
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   507
        (
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   508
         (MenuItem
6594
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   509
            enabled: hasSelection
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   510
            label: 'Open'
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   511
            itemValue: doShowFileContents
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   512
            translateLabel: true
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   513
          )
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   514
         (MenuItem
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   515
            enabled: hasSelection
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   516
            label: 'FileIn'
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   517
            itemValue: fileFileIn
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   518
            translateLabel: true
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   519
          )
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   520
         (MenuItem
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   521
            label: '-'
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   522
          )
cb70dc35308d menu reorganized
Claus Gittinger <cg@exept.de>
parents: 6463
diff changeset
   523
         (MenuItem
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   524
            label: 'SourceCodeManagement'
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   525
            translateLabel: true
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   526
            submenuChannel: scmMenuSlice
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   527
            isMenuSlice: true
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   528
          )
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   529
         (MenuItem
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   530
            label: '-'
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   531
          )
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
   532
         (MenuItem
5945
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   533
            label: 'New'
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   534
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   535
            submenuChannel: newMenu
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   536
            keepLinkedMenu: true
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   537
          )
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   538
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   539
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   540
          )
Claus Gittinger <cg@exept.de>
parents: 5935
diff changeset
   541
         (MenuItem
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   542
            label: 'Cut'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   543
            itemValue: doCut
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   544
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   545
            shortcutKey: Cut
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   546
          )
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   547
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   548
            label: 'Copy'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   549
            itemValue: doCopy
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   550
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   551
            shortcutKey: Copy
4615
cc32f33b6b60 cut-copy-paste is the correct order
Claus Gittinger <cg@exept.de>
parents: 4611
diff changeset
   552
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   553
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   554
            enabled: canPaste
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   555
            label: 'Paste'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   556
            itemValue: pasteFiles
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   557
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   558
            shortcutKey: Paste
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   559
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   560
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   561
            label: 'Delete'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   562
            itemValue: doDelete
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   563
            nameKey: delete
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   564
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   565
            shortcutKey: Delete
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   566
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   567
         (MenuItem
6286
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   568
            label: 'Erase'
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   569
            itemValue: doErase
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   570
            nameKey: erase
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   571
            translateLabel: true
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   572
          )
fac153824f35 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6250
diff changeset
   573
         (MenuItem
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   574
            label: '-'
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   575
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   576
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   577
            enabled: hasSelection
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   578
            label: 'Rename...'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   579
            itemValue: renameSelection
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   580
            translateLabel: true
8715
b3cab0b56b9a Cmdr -> F2
Claus Gittinger <cg@exept.de>
parents: 8658
diff changeset
   581
            shortcutKey: Rename
4534
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   582
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   583
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   584
            enabled: hasSelection
6107
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   585
            label: 'Move To...'
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   586
            itemValue: moveSelectionTo
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   587
            translateLabel: true
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   588
          )
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   589
         (MenuItem
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   590
            enabled: hasSelection
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   591
            label: 'Copy To...'
745d91a22e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6026
diff changeset
   592
            itemValue: copySelectionTo
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   593
            translateLabel: true
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   594
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   595
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   596
            enabled: hasSelection
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   597
            label: 'Properties...'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   598
            itemValue: doShowProperties
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   599
            translateLabel: true
4376
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   600
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   601
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   602
            label: '-'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   603
          )
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   604
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   605
            label: 'More'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   606
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   607
            submenu: 
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   608
           (Menu
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   609
              (
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   610
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   611
                  label: 'Select All'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   612
                  itemValue: selectAll
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   613
                  translateLabel: true
4477
eee4d27eb958 menu item
Claus Gittinger <cg@exept.de>
parents: 4462
diff changeset
   614
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   615
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   616
                  label: '-'
4477
eee4d27eb958 menu item
Claus Gittinger <cg@exept.de>
parents: 4462
diff changeset
   617
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   618
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   619
                  enabled: fileListIsNotEmpty
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   620
                  label: 'Copy Filenames'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   621
                  itemValue: copyFileList
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   622
                  translateLabel: true
3907
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   623
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   624
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   625
                  label: '-'
3907
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   626
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   627
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   628
                  enabled: hasFileSelection
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   629
                  label: 'FileIn to Namespace...'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   630
                  itemValue: fileFileInToNameSpace
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   631
                  translateLabel: true
3907
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   632
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   633
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   634
                  label: '-'
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   635
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   636
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   637
                  enabled: hasTwoFilesSelected
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   638
                  label: 'Compare with Each Other'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   639
                  itemValue: doCompareTwoFiles
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   640
                  translateLabel: true
4415
311ffc07cab6 compare files - incomplete
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   641
                )
4376
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   642
               )
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   643
              nil
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   644
              nil
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   645
            )
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   646
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   647
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   648
            label: 'Tools'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   649
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   650
            submenuChannel: toolsMenuSpec
5425
fed05f7926d7 do not destroy linked menues
penk
parents: 5404
diff changeset
   651
            keepLinkedMenu: true
4850
b2d7550e1914 tools-menu
Claus Gittinger <cg@exept.de>
parents: 4828
diff changeset
   652
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   653
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   654
            label: '-'
4376
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   655
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   656
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   657
            label: 'View'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   658
            translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   659
            submenu: 
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   660
           (Menu
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   661
              (
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   662
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   663
                  label: 'Details'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   664
                  nameKey: View
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   665
                  translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   666
                  submenuChannel: viewBrowserMenu
4376
e6e33ae8f78a fileIn is often req'd
Claus Gittinger <cg@exept.de>
parents: 4370
diff changeset
   667
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   668
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   669
                  label: 'Sort'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   670
                  nameKey: Sort
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   671
                  translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   672
                  submenuChannel: sortMenu
3907
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   673
                )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   674
               (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   675
                  label: 'Show'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   676
                  translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   677
                  submenu: 
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   678
                 (Menu
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   679
                    (
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   680
                     (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   681
                        label: 'Hidden Files'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   682
                        translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   683
                        indication: showHiddenFiles
4415
311ffc07cab6 compare files - incomplete
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   684
                      )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   685
                     (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   686
                        label: 'Directories'
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   687
                        translateLabel: true
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   688
                        indication: viewDirsInContentsBrowser
4415
311ffc07cab6 compare files - incomplete
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   689
                      )
4410
b1972ecceb2a popup menu
Claus Gittinger <cg@exept.de>
parents: 4404
diff changeset
   690
                     )
b1972ecceb2a popup menu
Claus Gittinger <cg@exept.de>
parents: 4404
diff changeset
   691
                    nil
b1972ecceb2a popup menu
Claus Gittinger <cg@exept.de>
parents: 4404
diff changeset
   692
                    nil
b1972ecceb2a popup menu
Claus Gittinger <cg@exept.de>
parents: 4404
diff changeset
   693
                  )
b1972ecceb2a popup menu
Claus Gittinger <cg@exept.de>
parents: 4404
diff changeset
   694
                )
3907
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   695
               )
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   696
              nil
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   697
              nil
a06fe9db6195 next stage
penk
parents: 3906
diff changeset
   698
            )
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   699
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   700
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   701
            label: '-'
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   702
          )
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   703
         (MenuItem
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   704
            label: 'Update'
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   705
            itemValue: updateCurrentDirectoryWithReread
5334
637f49d94b1b move file(s) operation added
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
   706
            translateLabel: true
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   707
          )
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   708
         )
81925afd23fd initial checkin
penk
parents:
diff changeset
   709
        nil
81925afd23fd initial checkin
penk
parents:
diff changeset
   710
        nil
81925afd23fd initial checkin
penk
parents:
diff changeset
   711
      )
81925afd23fd initial checkin
penk
parents:
diff changeset
   712
!
81925afd23fd initial checkin
penk
parents:
diff changeset
   713
81925afd23fd initial checkin
penk
parents:
diff changeset
   714
viewBrowserMenu
81925afd23fd initial checkin
penk
parents:
diff changeset
   715
    "This resource specification was automatically generated
81925afd23fd initial checkin
penk
parents:
diff changeset
   716
     by the MenuEditor of ST/X."
81925afd23fd initial checkin
penk
parents:
diff changeset
   717
81925afd23fd initial checkin
penk
parents:
diff changeset
   718
    "Do not manually edit this!! If it is corrupted,
81925afd23fd initial checkin
penk
parents:
diff changeset
   719
     the MenuEditor may not be able to read the specification."
81925afd23fd initial checkin
penk
parents:
diff changeset
   720
81925afd23fd initial checkin
penk
parents:
diff changeset
   721
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   722
     MenuEditor new openOnClass:DirectoryContentsBrowser andSelector:#viewBrowserMenu
81925afd23fd initial checkin
penk
parents:
diff changeset
   723
     (Menu new fromLiteralArrayEncoding:(DirectoryContentsBrowser viewBrowserMenu)) startUp
81925afd23fd initial checkin
penk
parents:
diff changeset
   724
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   725
4415
311ffc07cab6 compare files - incomplete
Claus Gittinger <cg@exept.de>
parents: 4410
diff changeset
   726
    <resource: #programMenu>
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   727
7764
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   728
    ^ Menu decodeFromLiteralArray:self viewBrowserMenuSpec
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   729
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   730
    "Modified: / 27-03-2007 / 08:46:24 / cg"
3961
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   731
!
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   732
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   733
viewBrowserMenuSpec
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   734
    "This resource specification was automatically generated
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   735
     by the MenuEditor of ST/X."
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   736
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   737
    "Do not manually edit this!! If it is corrupted,
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   738
     the MenuEditor may not be able to read the specification."
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   739
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   740
    "
4421
7e5d8ab16f4a checkin from browser
penk
parents: 4415
diff changeset
   741
     MenuEditor new openOnClass:DirectoryContentsBrowser andSelector:#viewBrowserMenuSpec
7e5d8ab16f4a checkin from browser
penk
parents: 4415
diff changeset
   742
     (Menu new fromLiteralArrayEncoding:(DirectoryContentsBrowser viewBrowserMenuSpec)) startUp
3961
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   743
    "
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   744
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   745
    <resource: #menu>
cc887842b5ca next stage
penk
parents: 3953
diff changeset
   746
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   747
    ^ 
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   748
     #(Menu
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   749
        (
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   750
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   751
            label: 'Show Details'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   752
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   753
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   754
            indication: viewDetails
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   755
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   756
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   757
            label: '-'
3984
6a54bf2c139a double click - index
Claus Gittinger <cg@exept.de>
parents: 3983
diff changeset
   758
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   759
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   760
            label: 'Icon'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   761
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   762
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   763
            indication: viewIcon
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
   764
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   765
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   766
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   767
            label: 'Suffix'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   768
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   769
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   770
            indication: viewType
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   771
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   772
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   773
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   774
            label: 'Inode'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   775
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   776
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   777
            indication: viewInodeNumber
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
   778
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   779
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   780
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   781
            label: 'Permissions'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   782
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   783
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   784
            indication: viewPermissions
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   785
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   786
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   787
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   788
            label: 'Owner'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   789
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   790
            isVisible: userContextAvailable
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   791
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   792
            indication: viewOwner
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   793
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   794
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   795
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   796
            label: 'Group'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   797
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   798
            isVisible: userContextAvailable
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   799
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   800
            indication: viewGroup
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   801
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   802
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   803
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   804
            label: 'Size'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   805
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   806
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   807
            indication: viewSize
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   808
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   809
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   810
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   811
            label: 'Size (KByte)'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   812
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   813
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   814
            indication: viewSizeInKiloBytes
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
   815
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   816
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   817
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   818
            label: 'Size (Byte)'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   819
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   820
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   821
            indication: viewSizeInBytes
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   822
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   823
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   824
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   825
            label: 'Date && Time'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   826
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   827
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   828
            indication: viewTime
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   829
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   830
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   831
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   832
            label: 'File Info'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   833
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   834
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   835
            indication: viewDescription
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   836
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   837
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   838
            enabled: viewDetails
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   839
            label: 'Preview'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   840
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   841
            hideMenuOnActivated: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   842
            indication: viewPreview
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   843
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   844
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   845
            label: '-'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   846
            isVisible: false
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   847
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   848
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   849
            label: 'Show Hidden Files'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   850
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   851
            isVisible: false
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   852
            indication: showHiddenFiles
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   853
          )
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   854
         (MenuItem
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   855
            label: 'Update'
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   856
            itemValue: updateCurrentDirectoryWithReread
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   857
            translateLabel: true
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
   858
            isVisible: false
3980
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   859
          )
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   860
         )
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   861
        nil
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   862
        nil
3f8311a42ca7 menus reorganized
Claus Gittinger <cg@exept.de>
parents: 3978
diff changeset
   863
      )
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   864
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
   865
81925afd23fd initial checkin
penk
parents:
diff changeset
   866
!DirectoryContentsBrowser methodsFor:'accessing'!
81925afd23fd initial checkin
penk
parents:
diff changeset
   867
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   868
allItems
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   869
    allItems isNil ifTrue:[
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   870
        ^ OrderedCollection new.
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   871
    ].
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   872
    ^ allItems
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   873
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
   874
    "Modified: / 20-03-2012 / 14:31:02 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   875
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   876
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   877
allItems:something
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   878
    allItems := something.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   879
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   880
5105
849d4430b492 bug fix (copy filenames/selected filenames)
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
   881
browserFileList
849d4430b492 bug fix (copy filenames/selected filenames)
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
   882
    ^ self browserItemList collect:[:item | item fileName]
849d4430b492 bug fix (copy filenames/selected filenames)
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
   883
!
849d4430b492 bug fix (copy filenames/selected filenames)
Claus Gittinger <cg@exept.de>
parents: 5010
diff changeset
   884
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   885
columnDescriptors
81925afd23fd initial checkin
penk
parents:
diff changeset
   886
    "get the column description
81925afd23fd initial checkin
penk
parents:
diff changeset
   887
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   888
    ^ columnDescriptors
81925afd23fd initial checkin
penk
parents:
diff changeset
   889
!
81925afd23fd initial checkin
penk
parents:
diff changeset
   890
81925afd23fd initial checkin
penk
parents:
diff changeset
   891
columnDescriptors:aListOfColumns
81925afd23fd initial checkin
penk
parents:
diff changeset
   892
    "set the column description
81925afd23fd initial checkin
penk
parents:
diff changeset
   893
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   894
    columnDescriptors = aListOfColumns ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
   895
        ^ self
81925afd23fd initial checkin
penk
parents:
diff changeset
   896
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
   897
81925afd23fd initial checkin
penk
parents:
diff changeset
   898
    columnDescriptors    := OrderedCollection new.
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   899
    previewIndex         := 0.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   900
    iconIndex            := 0.
81925afd23fd initial checkin
penk
parents:
diff changeset
   901
    fileDescriptionIndex := 0.
81925afd23fd initial checkin
penk
parents:
diff changeset
   902
    iconExtent           := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
   903
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   904
    aListOfColumns keysAndValuesDo:[:anIndex :aDesc| 
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   905
        |col readSelector|
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   906
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   907
        col := aDesc isSequenceable 
7764
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   908
                ifTrue:[DataSetColumnSpec decodeFromLiteralArray:aDesc]
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   909
                ifFalse:[aDesc].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   910
        columnDescriptors add:col.
81925afd23fd initial checkin
penk
parents:
diff changeset
   911
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   912
        "/ cg: UGLY CODE NOTIFICATION
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   913
        readSelector := col readSelector.
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   914
        readSelector == #preview ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   915
            previewIndex := anIndex.
81925afd23fd initial checkin
penk
parents:
diff changeset
   916
            iconExtent := Point x:(col width) y:(col height).
81925afd23fd initial checkin
penk
parents:
diff changeset
   917
        ] ifFalse:[
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   918
            readSelector == #fileInfoString ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   919
                fileDescriptionIndex := anIndex.
81925afd23fd initial checkin
penk
parents:
diff changeset
   920
            ] ifFalse:[
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
   921
                readSelector == #icon ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   922
                    iconIndex  := anIndex.
81925afd23fd initial checkin
penk
parents:
diff changeset
   923
                ]
81925afd23fd initial checkin
penk
parents:
diff changeset
   924
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
   925
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
   926
    ].
7764
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   927
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
   928
    "Modified: / 27-03-2007 / 08:46:33 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
   929
!
81925afd23fd initial checkin
penk
parents:
diff changeset
   930
81925afd23fd initial checkin
penk
parents:
diff changeset
   931
directory
81925afd23fd initial checkin
penk
parents:
diff changeset
   932
    "returns the current directory or nil
81925afd23fd initial checkin
penk
parents:
diff changeset
   933
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
   934
    ^ directory
81925afd23fd initial checkin
penk
parents:
diff changeset
   935
81925afd23fd initial checkin
penk
parents:
diff changeset
   936
!
81925afd23fd initial checkin
penk
parents:
diff changeset
   937
81925afd23fd initial checkin
penk
parents:
diff changeset
   938
directory:aDirectory
81925afd23fd initial checkin
penk
parents:
diff changeset
   939
    "change the current directory and read the items
81925afd23fd initial checkin
penk
parents:
diff changeset
   940
    "
5935
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
   941
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   942
    aDirectory ~= directory ifTrue:[
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   943
        directory notNil ifTrue:[
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   944
            AbstractFileBrowser directoryHistory setPosition:(browser firstLineShown) for:(directory pathName).
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   945
        ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   946
        directory := aDirectory.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   947
        self wakeUpForDirectoryChanged.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   948
    ]
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   949
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   950
    "Modified: / 07-01-2012 / 16:41:20 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   951
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   952
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   953
directoryChangeFlag
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   954
    ^ directoryChangeFlag
7856
2508daf776bd comments
Claus Gittinger <cg@exept.de>
parents: 7764
diff changeset
   955
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   956
    "Modified: / 07-01-2012 / 16:34:39 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   957
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   958
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   959
directoryChangeFlag:aBoolean
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   960
    directoryChangeFlag := aBoolean.
7856
2508daf776bd comments
Claus Gittinger <cg@exept.de>
parents: 7764
diff changeset
   961
2508daf776bd comments
Claus Gittinger <cg@exept.de>
parents: 7764
diff changeset
   962
    "Modified: / 01-10-2007 / 19:22:35 / cg"
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   963
    "Modified (format): / 07-01-2012 / 16:34:46 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   964
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   965
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   966
directoryContentsChangeFlag
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   967
    "return the value of the instance variable 'directoryContentsChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   968
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   969
    ^ directoryContentsChangeFlag
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   970
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   971
    "Modified: / 07-01-2012 / 16:34:51 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   972
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   973
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   974
directoryContentsChangeFlag:aBoolean
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   975
    "set the value of the instance variable 'directoryContentsChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   976
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   977
    directoryContentsChangeFlag := aBoolean.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   978
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
   979
    "Modified (format): / 07-01-2012 / 16:35:01 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   980
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
   981
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   982
doubleClickAction
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   983
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   984
    ^ doubleClickAction
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   985
!
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   986
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   987
doubleClickAction:aBlock
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   988
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   989
    " aBlock is a one arg block with selected index as argument "
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   990
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   991
    doubleClickAction := aBlock
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   992
!
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
   993
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   994
enterActionBlock
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   995
    ^ enterActionBlock
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   996
!
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   997
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   998
enterActionBlock:aBlock
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
   999
    enterActionBlock := aBlock.
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1000
!
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1001
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1002
filterChangeFlag
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1003
    "return the value of the instance variable 'filterChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1004
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1005
    ^ filterChangeFlag
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1006
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1007
    "Modified: / 07-01-2012 / 16:35:07 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1008
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1009
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1010
filterChangeFlag:aBoolean
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1011
    "set the value of the instance variable 'filterChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1012
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1013
    filterChangeFlag := aBoolean.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1014
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1015
    "Modified (format): / 07-01-2012 / 16:35:12 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1016
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1017
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1018
isBusy
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1019
    "return the value of the instance variable 'isBusy' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1020
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1021
    isBusy isNil ifTrue:[
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1022
        isBusy := false.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1023
    ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1024
    ^ isBusy
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1025
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1026
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1027
isBusy:something
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1028
    "set the value of the instance variable 'isBusy' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1029
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1030
    isBusy := something.
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1031
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1032
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1033
matchBlock
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1034
    "return the value of the instance variable 'matchBlock' (automatically generated)"
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1035
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1036
    ^ matchBlock
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1037
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1038
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1039
matchBlock:filterBlock
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1040
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1041
    matchBlock := filterBlock.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1042
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1043
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1044
multipleSelect
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1045
    ^ multipleSelect ? false
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1046
!
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1047
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1048
multipleSelect:aBoolean
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1049
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1050
    multipleSelect := aBoolean.
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1051
    browser notNil ifTrue:[
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1052
        browser multipleSelectOk:aBoolean.
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1053
    ].
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1054
!
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1055
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1056
sortBlockChangeFlag
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1057
    "return the value of the instance variable 'sortBlockChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1058
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1059
    ^ sortBlockChangeFlag
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1060
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1061
    "Modified: / 07-01-2012 / 16:35:20 / cg"
4298
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1062
!
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1063
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1064
sortBlockChangeFlag:aBoolean
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1065
    "set the value of the instance variable 'sortBlockChangeFlag' (automatically generated)"
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1066
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1067
    sortBlockChangeFlag := aBoolean.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1068
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1069
    "Modified (format): / 07-01-2012 / 16:35:25 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1070
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1071
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1072
updateContentsSelection
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1073
    "return the value of the instance variable 'updateToExternFileHolder' (automatically generated)"
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1074
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1075
    updateContentsSelection isNil ifTrue:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1076
        updateContentsSelection := self class newLock.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1077
    ].
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1078
    ^ updateContentsSelection
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1079
!
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1080
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1081
updateCurrentFileNameHolderWhenSelectionChanges
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1082
    ^ updateCurrentFileNameHolderWhenSelectionChanges
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1083
!
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1084
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1085
updateCurrentFileNameHolderWhenSelectionChanges:aBoolean
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1086
    updateCurrentFileNameHolderWhenSelectionChanges := aBoolean.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1087
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1088
81925afd23fd initial checkin
penk
parents:
diff changeset
  1089
!DirectoryContentsBrowser methodsFor:'actions'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1090
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1091
browserItemListAdd:addItemCol remove:remItemCol
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1092
    | browserList selection|
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1093
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1094
    (addItemCol isEmpty and:[remItemCol isEmpty]) ifTrue:[ ^ self].
4972
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1095
    selection := self selectedItemsWithoutDotDotDirectory.
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1096
    remItemCol notEmpty ifTrue:[
4462
b14fcc67ff8e removeAll: changed to removeAllFoundIn:
Michael Beyl <mb@exept.de>
parents: 4421
diff changeset
  1097
        self browserItemList removeAllFoundIn:remItemCol        
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1098
    ].
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1099
    addItemCol notEmpty ifTrue:[
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1100
        browserList := self browserItemList copy.
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1101
        addItemCol do:[: aNewItem |
6250
5b0673ccff1c refactored intention revealing code:
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1102
            (browserList includes:aNewItem) ifFalse:[
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1103
                browserList add:aNewItem.
5383
ae8a426ef69e use for sorting files the new FileSorter class
penk
parents: 5377
diff changeset
  1104
                browserList := self sortBlockHolder value sortItemList:browserList.
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1105
                self browserItemList add:aNewItem beforeIndex:(browserList indexOf:aNewItem).
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1106
            ]
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1107
        ].
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1108
    ].
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  1109
    self selectItems:selection.
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1110
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1111
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1112
currentSortOrderChanged
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1113
4652
40e96ac7d988 *** empty log message ***
penk
parents: 4648
diff changeset
  1114
"/    self wakeUpForSortBlockChanged.
6225
cc46b667db69 *** empty log message ***
penk
parents: 6222
diff changeset
  1115
cc46b667db69 *** empty log message ***
penk
parents: 6222
diff changeset
  1116
    "/ have to reread the columns to set the icon for sort direction
cc46b667db69 *** empty log message ***
penk
parents: 6222
diff changeset
  1117
    "/ very expensive. Need to change table label directly
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1118
    self viewedColumnsChanged.
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1119
!
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1120
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1121
doResizeImage
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1122
    |column w h selection|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1123
81925afd23fd initial checkin
penk
parents:
diff changeset
  1124
    previewIndex == 0 ifTrue:[^ self].
81925afd23fd initial checkin
penk
parents:
diff changeset
  1125
81925afd23fd initial checkin
penk
parents:
diff changeset
  1126
    column := columnDescriptors at:previewIndex.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1127
    w := iconExtent  x.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1128
    h := iconExtent y.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1129
81925afd23fd initial checkin
penk
parents:
diff changeset
  1130
    w == column width ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  1131
        w := w * 2.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1132
        h := h * 2.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1133
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  1134
    column width:w.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1135
    column height:h.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1136
3990
64f30adbf27b *** empty log message ***
penk
parents: 3989
diff changeset
  1137
"/Processor activeProcess ~~ self windowGroup process ifTrue:[self halt].
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1138
    selection := self selectedItems.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1139
    browserItemList do:[:el| el resetImageFile ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1140
    browser columnDescriptors:(self tableColumns value).
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1141
    self selectItems:selection.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1142
    self wakeUp.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1143
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1144
81925afd23fd initial checkin
penk
parents:
diff changeset
  1145
doUpdate
4421
7e5d8ab16f4a checkin from browser
penk
parents: 4415
diff changeset
  1146
"/    DirectoryContents flushCache.
5738
09f8fe13f3f5 update now reread all the items
penk
parents: 5716
diff changeset
  1147
    self wakeUpForDirectoryChanged.
7714
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1148
    self updateDiskUsage.
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1149
    "/ updateCycleSemaphore wait.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1150
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1151
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
  1152
doUpdateDirectoryContents
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
  1153
"/    DirectoryContents flushCache.
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
  1154
    self wakeUpForDirectoryContentsChanged.
7714
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1155
    self updateDiskUsage.
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1156
    "/ updateCycleSemaphore wait.
5740
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
  1157
!
fd67f31da836 update now reread all the items
penk
parents: 5738
diff changeset
  1158
3984
6a54bf2c139a double click - index
Claus Gittinger <cg@exept.de>
parents: 3983
diff changeset
  1159
doubleClickedAt:anItemIndex
5959
27c1d00a790d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
  1160
    |action|
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1161
6831
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1162
"/    self withWaitCursorDo:[
5959
27c1d00a790d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
  1163
        (action := self doubleClickAction) notNil ifTrue:[
27c1d00a790d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
  1164
            action value:anItemIndex.
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  1165
        ].
4013
049b94940308 *** empty log message ***
penk
parents: 4012
diff changeset
  1166
        self enterActionFor:(self browserItemList at:anItemIndex). "/ anItemIndex.
6831
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1167
"/    ]
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1168
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1169
    "Modified: / 25-07-2006 / 09:07:55 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1170
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1171
81925afd23fd initial checkin
penk
parents:
diff changeset
  1172
enterActionFor:anItem
10300
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1173
    | filename info targetItem linkFile targetFile|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1174
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1175
    enterActionBlock notNil ifTrue:[ 
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1176
        enterActionBlock value: anItem.
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1177
        ^ self.
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1178
    ].
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1179
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1180
    filename := anItem fileName.
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  1181
4014
ba5e66d9b931 *** empty log message ***
penk
parents: 4013
diff changeset
  1182
    filename baseName = '..' ifTrue:[
5959
27c1d00a790d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
  1183
        self setCurrentFileName:(self directory directory).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1184
        ^ self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1185
    ].
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1186
    targetItem := anItem.
9883
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1187
    targetFile := filename.
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1188
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1189
    [
9883
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1190
       (info := targetFile linkInfo) notNil 
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1191
       and:[ info isSymbolicLink ]
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1192
    ] whileTrue:[
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1193
        targetItem := nil.
9883
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1194
        info path isNil ifTrue:[^ self].
10300
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1195
        linkFile := info path asFilename.   
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1196
        linkFile isRelative ifTrue:[
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1197
            targetFile := filename directory construct:info path.
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1198
        ] ifFalse:[
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1199
            targetFile := linkFile            
5ed6f3d35cbb changed: #enterActionFor: fix for UNIX symlinks
vrany
parents: 9883
diff changeset
  1200
        ]
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1201
    ].
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1202
9883
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1203
    filename := targetFile.
e38f1b023cb5 changed: #selectFiles:
Michael Beyl <mb@exept.de>
parents: 9880
diff changeset
  1204
5321
4839bfb1a28d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5312
diff changeset
  1205
    (filename isDirectory) ifTrue:[
5959
27c1d00a790d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
  1206
        self setCurrentFileName:filename.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1207
        ^ self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1208
    ].
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1209
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1210
    targetItem isNil ifTrue:[
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1211
        targetItem := anItem class fileName:filename.
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1212
    ].
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1213
6831
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1214
"/    self withWaitCursorDo:[
8375
fd8d9e2fe62a handling of symbolicLinks
ca
parents: 8372
diff changeset
  1215
        self openApplByFileItem:targetItem.
6831
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1216
"/    ]
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1217
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1218
    "Modified: / 25-07-2006 / 09:08:00 / cg"
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1219
    "Modified: / 27-08-2014 / 20:22:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1220
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1221
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1222
noOfShownFiles:noOfShownFiles noOfFiles:noOfFiles
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1223
4263
d611afabecb9 # of files message
Claus Gittinger <cg@exept.de>
parents: 4251
diff changeset
  1224
    |info filterBox clr|
d611afabecb9 # of files message
Claus Gittinger <cg@exept.de>
parents: 4251
diff changeset
  1225
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1226
    info := (noOfShownFiles == 1 ifTrue:['%1 file'] ifFalse:['%1 files']).
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1227
    noOfShownFiles = noOfFiles ifFalse:[
7672
f7ad4a06bbec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7636
diff changeset
  1228
        info := info,' (%2 total)'.
4263
d611afabecb9 # of files message
Claus Gittinger <cg@exept.de>
parents: 4251
diff changeset
  1229
    ].
5120
e4c15c9d82ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5105
diff changeset
  1230
    self shownFiles 
e4c15c9d82ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5105
diff changeset
  1231
        value:(resources 
e4c15c9d82ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5105
diff changeset
  1232
                string:info 
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1233
                with:noOfShownFiles 
7672
f7ad4a06bbec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7636
diff changeset
  1234
                with:noOfFiles).
4263
d611afabecb9 # of files message
Claus Gittinger <cg@exept.de>
parents: 4251
diff changeset
  1235
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1236
    filterBox := self filterValueBox value.
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1237
    filterBox isNil ifTrue:[^ self ].
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1238
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1239
    noOfShownFiles ~= noOfFiles ifTrue:[
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1240
        clr := Color red lightened lightened lightened.
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1241
        [ 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1242
            View drawingOnClosedDrawableSignal catch:[ 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1243
                filterBox flash 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1244
            ] 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  1245
        ] fork.                 
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1246
    ] ifFalse:[
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1247
        clr := self filterBackgroundColor value.
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1248
    ].
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1249
    filterBox backgroundColor:clr.
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1250
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1251
    "Created: / 20-03-2012 / 12:08:57 / cg"
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1252
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1253
8407
eabf2cc93e11 setBrowserItemList: changed
ca
parents: 8375
diff changeset
  1254
setBrowserItemList:aFilteredItems
eabf2cc93e11 setBrowserItemList: changed
ca
parents: 8375
diff changeset
  1255
14707
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1256
    |showDir showDirsOnTop directoryUpItem locItems browserList|
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1257
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
  1258
    showDir := self viewDirsInContentsBrowser value.
14707
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1259
    showDirsOnTop := self showDirectoriesOnTop value.
8407
eabf2cc93e11 setBrowserItemList: changed
ca
parents: 8375
diff changeset
  1260
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1261
    (showDir and:[self directory notNil and:[self directory isRootDirectory not]]) ifTrue:[
5249
7b77b88a225e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
  1262
        locItems := OrderedCollection new.
17204
788f1338503a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17029
diff changeset
  1263
        directoryUpItem := self class itemClass fileName:(self directory construct:'..').
5249
7b77b88a225e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
  1264
        directoryUpItem notNil ifTrue:[
7b77b88a225e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
  1265
            locItems add:directoryUpItem.
7b77b88a225e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
  1266
        ].
12093
900b133ef74c class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12061
diff changeset
  1267
        locItems addAll:(aFilteredItems ? #()).
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  1268
    ] ifFalse:[
8407
eabf2cc93e11 setBrowserItemList: changed
ca
parents: 8375
diff changeset
  1269
        locItems := aFilteredItems.
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1270
    ].
14707
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1271
    (showDir and:[showDirsOnTop]) ifTrue:[ 
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1272
        locItems := (locItems select:[ :e | e isDirectory ]) , (locItems reject:[ :e | e isDirectory])
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1273
    ].
4039
c259e9105173 *** empty log message ***
penk
parents: 4033
diff changeset
  1274
    self updateToExternFileHolderLock doLocked:[
8407
eabf2cc93e11 setBrowserItemList: changed
ca
parents: 8375
diff changeset
  1275
        browserList := self browserItemList.
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1276
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1277
        (browserList sameContentsAs: locItems) ifTrue:[
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1278
            "/ same
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1279
        ] ifFalse:[
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1280
            "/ bugfix - first remove all entries in list
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1281
            browserList removeAll.
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1282
            browserList contents:locItems.
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1283
        ].
4039
c259e9105173 *** empty log message ***
penk
parents: 4033
diff changeset
  1284
    ].
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1285
    self selectCurrentFiles.
11177
4b83b53c4b1b changed: #directoryChanged
Claus Gittinger <cg@exept.de>
parents: 11058
diff changeset
  1286
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  1287
    "Modified: / 20-03-2012 / 12:17:14 / cg"
14707
3c6471ac9f14 Added option to show directories always in top of the list in directory contents view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14574
diff changeset
  1288
    "Modified: / 12-08-2014 / 13:14:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7714
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1289
!
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1290
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1291
updateDiskUsage
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1292
    directory notNil ifTrue:[
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1293
        self flushRememberedDiskUsageInfoFor:directory.
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1294
    ] ifFalse:[
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1295
        self flushRememberedDiskUsageInfo.
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1296
    ].
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1297
    self startDiskUsageInfoProcess.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1298
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1299
81925afd23fd initial checkin
penk
parents:
diff changeset
  1300
!DirectoryContentsBrowser methodsFor:'aspects'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1301
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1302
browserItemList
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1303
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1304
    browserItemList isNil ifTrue:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1305
        browserItemList := List new.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1306
    ].
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1307
    ^ browserItemList
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1308
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1309
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1310
currentDirectoryDisplayed
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1311
    "Return a directory as Filename that is currently displayed in the browser"
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1312
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1313
    ^ directory
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1314
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1315
    "Modified: / 15-01-2013 / 11:42:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1316
!
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1317
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1318
selectionInFileList
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1319
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1320
    selectionInFileList isNil ifTrue:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1321
        selectionInFileList := ValueHolder new.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1322
        selectionInFileList addDependent:self.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1323
    ].
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1324
    ^ selectionInFileList
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1325
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1326
81925afd23fd initial checkin
penk
parents:
diff changeset
  1327
tableColumns
81925afd23fd initial checkin
penk
parents:
diff changeset
  1328
81925afd23fd initial checkin
penk
parents:
diff changeset
  1329
    tableColumns isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  1330
        tableColumns := self class tableColumns asValue.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1331
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  1332
    ^ tableColumns.
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1333
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1334
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1335
valueHolderForColumn:id
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1336
    "xlate #suffix -> viewType, etc...
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1337
     i.e. for a columns readSelector, return my valueHolder"
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1338
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1339
    ^ self perform:('view' , id asUppercaseFirst) asSymbol
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1340
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1341
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1342
viewFileInfoString
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1343
    ^ self viewDescription
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1344
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1345
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1346
viewSizeInBytesString
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1347
    ^ self viewSizeInBytes
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1348
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1349
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1350
viewSizeInKiloBytesString
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1351
    ^ self viewSizeInKiloBytes
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1352
!
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1353
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1354
viewSizeString
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1355
    ^ self viewSize
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1356
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1357
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1358
viewSuffix
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1359
    ^ self viewType
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1360
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1361
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1362
viewTimeAndDate
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1363
    ^ self viewTime
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1364
! !
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1365
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1366
!DirectoryContentsBrowser methodsFor:'aspects-visibility'!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1367
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1368
colVisibilityAspectFor:aKey ifAbsent:absentBlock
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1369
    "aspect for a columns visibility"
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1370
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1371
    |holder|
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1372
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1373
    holder := self aspectFor:aKey ifAbsent:absentBlock.
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1374
    holder onChangeSend:#viewedColumnsChanged to:self.
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1375
    ^ holder
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1376
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1377
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1378
viewDescription
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1379
    "aspect for show file description"
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1380
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1381
    ^ self colVisibilityAspectFor:#viewDescription ifAbsent:[ false asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1382
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1383
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1384
viewDetails
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1385
    "aspect for show more file properties 
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1386
    "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1387
6359
53212b2cad15 detail defaults
Claus Gittinger <cg@exept.de>
parents: 6298
diff changeset
  1388
    ^ self colVisibilityAspectFor:#viewDetails ifAbsent:[ true asValue ].
7079
d70b24e39eba default values
Claus Gittinger <cg@exept.de>
parents: 6831
diff changeset
  1389
d70b24e39eba default values
Claus Gittinger <cg@exept.de>
parents: 6831
diff changeset
  1390
    "Modified: / 04-09-2006 / 09:46:43 / cg"
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1391
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1392
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1393
viewGroup
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1394
    " aspect for show group information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1395
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1396
    ^ self colVisibilityAspectFor:#viewGroup ifAbsent:[ false asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1397
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1398
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1399
viewIcon
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1400
    " aspect for show file-type icon"
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1401
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1402
    ^ self colVisibilityAspectFor:#viewIcon ifAbsent:[ true asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1403
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1404
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1405
viewInodeNumber
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1406
    " aspect for show inode number "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1407
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1408
    ^ self colVisibilityAspectFor:#viewInodeNumber ifAbsent:[ false asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1409
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1410
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1411
viewOwner
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1412
    " aspect for show owner information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1413
6359
53212b2cad15 detail defaults
Claus Gittinger <cg@exept.de>
parents: 6298
diff changeset
  1414
    ^ self colVisibilityAspectFor:#viewOwner ifAbsent:[ true asValue ].
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1415
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1416
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1417
viewPermissions
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1418
    " aspect for show permission information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1419
7079
d70b24e39eba default values
Claus Gittinger <cg@exept.de>
parents: 6831
diff changeset
  1420
    ^ self colVisibilityAspectFor:#viewPermissions ifAbsent:[ false asValue ].
d70b24e39eba default values
Claus Gittinger <cg@exept.de>
parents: 6831
diff changeset
  1421
d70b24e39eba default values
Claus Gittinger <cg@exept.de>
parents: 6831
diff changeset
  1422
    "Modified: / 04-09-2006 / 09:46:12 / cg"
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1423
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1424
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1425
viewPreview
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1426
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1427
    " aspect for show image previev "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1428
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1429
    ^ self colVisibilityAspectFor:#viewPreview ifAbsent:[ false asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1430
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1431
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1432
viewSize
6463
64ff0bdfd046 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6440
diff changeset
  1433
    " aspect for show-size information "
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1434
6359
53212b2cad15 detail defaults
Claus Gittinger <cg@exept.de>
parents: 6298
diff changeset
  1435
    ^ self colVisibilityAspectFor:#viewSize ifAbsent:[ true asValue ].
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1436
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1437
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1438
viewSizeInBytes
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1439
    " aspect for show size-in-bytes information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1440
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1441
    ^ self colVisibilityAspectFor:#viewSizeInBytes ifAbsent:[ false asValue ].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1442
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1443
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1444
viewSizeInKiloBytes
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1445
    " aspect for show size-in-kilobytes information "
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1446
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1447
    ^ self colVisibilityAspectFor:#viewSizeInKiloBytes ifAbsent:[ false asValue ].
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1448
!
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  1449
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1450
viewTime
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1451
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1452
    " aspect for show time information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1453
6359
53212b2cad15 detail defaults
Claus Gittinger <cg@exept.de>
parents: 6298
diff changeset
  1454
    ^ self colVisibilityAspectFor:#viewTime ifAbsent:[ true asValue ].
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1455
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1456
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1457
viewType
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1458
    " aspect for show suffix (type) information "
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1459
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1460
    ^ self colVisibilityAspectFor:#viewType ifAbsent:[ false asValue ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1461
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1462
81925afd23fd initial checkin
penk
parents:
diff changeset
  1463
!DirectoryContentsBrowser methodsFor:'change & update'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1464
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1465
currentFileNameHolderChanged
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1466
    "filename changed
81925afd23fd initial checkin
penk
parents:
diff changeset
  1467
    "
4889
4d1ab950b348 *** empty log message ***
penk
parents: 4881
diff changeset
  1468
    |newDir currentDir aColOfFiles|
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1469
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1470
    aColOfFiles := self currentSelectedObjects.
4978
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  1471
    aColOfFiles isEmpty ifTrue:[
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  1472
        "/ selection is gone keep the current directory list
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  1473
        ^ self
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  1474
    ].
6250
5b0673ccff1c refactored intention revealing code:
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1475
    (self currentFilesAreInSameDirectory) ifFalse:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1476
        self directory:nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1477
        ^ self
81925afd23fd initial checkin
penk
parents:
diff changeset
  1478
    ].
6726
4bcffbd4b07d code cleanup
Claus Gittinger <cg@exept.de>
parents: 6628
diff changeset
  1479
    self currentSelectedDirectories size > 1 ifTrue:[
4889
4d1ab950b348 *** empty log message ***
penk
parents: 4881
diff changeset
  1480
        self directory:nil.
4d1ab950b348 *** empty log message ***
penk
parents: 4881
diff changeset
  1481
        ^ self
4d1ab950b348 *** empty log message ***
penk
parents: 4881
diff changeset
  1482
    ].
4536
b6c06a7b777b show symbolic link info
Claus Gittinger <cg@exept.de>
parents: 4534
diff changeset
  1483
    aColOfFiles size == 1 ifTrue:[
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1484
        self startDiskUsageInfoProcess.
4536
b6c06a7b777b show symbolic link info
Claus Gittinger <cg@exept.de>
parents: 4534
diff changeset
  1485
    ].
4900
b678ff28623d checkin from browser
penk
parents: 4894
diff changeset
  1486
    newDir := (self directoriesForFiles:aColOfFiles) first asCanonicalizedFilename. 
4901
c1e8a1dc6430 Avoid debugger on start
Stefan Vogel <sv@exept.de>
parents: 4900
diff changeset
  1487
    currentDir := self directory.
4906
5f632635a291 oops - bad checkin (cvs conflict)
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1488
    (currentDir notNil and:[newDir = currentDir asCanonicalizedFilename]) ifTrue:[
5f632635a291 oops - bad checkin (cvs conflict)
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1489
        self selectFiles:aColOfFiles.
5f632635a291 oops - bad checkin (cvs conflict)
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1490
        ^ self.
5f632635a291 oops - bad checkin (cvs conflict)
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1491
    ].
4536
b6c06a7b777b show symbolic link info
Claus Gittinger <cg@exept.de>
parents: 4534
diff changeset
  1492
    "/ change of the directory filename 
b6c06a7b777b show symbolic link info
Claus Gittinger <cg@exept.de>
parents: 4534
diff changeset
  1493
    self directory:newDir.
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1494
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1495
    "Modified: / 04-12-2006 / 13:15:32 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1496
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1497
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  1498
filterBlockHolderChanged
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  1499
7714
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  1500
    self matchBlock:(self filterBlockHolder value).
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1501
    self wakeUpForFilterChanged.
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  1502
!
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  1503
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1504
selectionChanged
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1505
4004
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1506
    | selection newCurrentFilename |
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1507
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1508
    self directory isNil ifTrue:[^ self].   
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1509
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1510
    selection := self selectedFiles.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1511
    selection isEmpty ifTrue:[
4004
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1512
        newCurrentFilename := OrderedCollection with:self directory.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1513
    ] ifFalse:[
4004
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1514
        newCurrentFilename := selection.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1515
    ].
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1516
    updateCurrentFileNameHolderWhenSelectionChanges ifTrue:[ 
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1517
        self currentSelectedObjects ~= newCurrentFilename ifTrue:[
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1518
             self currentFileNameHolder value:newCurrentFilename withoutNotifying:self
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1519
        ].
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1520
    ]
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1521
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1522
    "Modified: / 04-12-2006 / 13:15:37 / cg"
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1523
    "Modified: / 13-02-2015 / 20:57:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1524
!
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1525
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1526
update:something with:aParameter from:changedObject
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1527
    "one of my models changed
81925afd23fd initial checkin
penk
parents:
diff changeset
  1528
    "
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1529
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1530
    changedObject == self currentFileNameHolder ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1531
        super update:something with:aParameter from:changedObject.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1532
        self updateContentsSelection doIfUnLocked:[
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  1533
            self currentFileNameHolderChanged.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1534
        ].
4007
8f54ab1dbaa0 checkin from browser
penk
parents: 4004
diff changeset
  1535
        ^ self.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1536
    ].             
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1537
    changedObject == self selectionInFileList ifTrue:[
16856
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1538
        (changedObject value ? #()) do:[:eachSelectedItem |
16909
61c7ba68f70c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16856
diff changeset
  1539
            |fn|
61c7ba68f70c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16856
diff changeset
  1540
            
16856
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1541
            (eachSelectedItem modificationTime notNil
16909
61c7ba68f70c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16856
diff changeset
  1542
              and:[ (fn := eachSelectedItem fileName) notNil
61c7ba68f70c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16856
diff changeset
  1543
              and:[ fn exists
61c7ba68f70c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16856
diff changeset
  1544
              and:[ fn modificationTime > eachSelectedItem modificationTime ]]]
16856
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1545
            ) ifTrue:[
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1546
                "/ the file was modified in the meantime.
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1547
                "/ flush its info.
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1548
                eachSelectedItem resetItem
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1549
            ].    
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1550
        ].
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  1551
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1552
        self updateToExternFileHolderLock doIfUnLocked:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1553
            self updateContentsSelection doLocked:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1554
                self selectionChanged.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1555
            ]
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1556
        ].
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1557
        ^ self.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1558
    ].
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1559
    changedObject == self currentSortOrder ifTrue:[
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1560
        self currentSortOrderChanged.
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1561
        ^ self.
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1562
    ].
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1563
    changedObject == self filterBlockHolder ifTrue:[
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  1564
        self filterBlockHolderChanged.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1565
        ^ self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1566
    ].             
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1567
    changedObject == self sortBlockHolder ifTrue:[
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1568
        self wakeUpForSortBlockChanged.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1569
        ^ self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1570
    ].             
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1571
    changedObject == self viewDirsInContentsBrowser ifTrue:[
5869
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  1572
        self sortBlockHolder value directoriesBeforeFiles:(self sortDirectoriesBeforeFiles value and:[self viewDirsInContentsBrowser value]).
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1573
        self wakeUpForFilterChanged.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1574
        ^ self
81925afd23fd initial checkin
penk
parents:
diff changeset
  1575
    ].
5869
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  1576
    changedObject == self sortDirectoriesBeforeFiles ifTrue:[
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  1577
        self sortBlockHolder value directoriesBeforeFiles:(self sortDirectoriesBeforeFiles value and:[self viewDirsInContentsBrowser value]).
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  1578
        ^ self
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  1579
    ].
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1580
    changedObject == self showDiskUsageHolder ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1581
        self notify:''.
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1582
        changedObject value ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1583
            self startDiskUsageInfoProcess.
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1584
        ] ifFalse:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1585
            self flushRememberedDiskUsageInfo
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1586
        ].
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1587
        ^ self
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1588
    ].
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1589
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  1590
    super update:something with:aParameter from:changedObject
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1591
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1592
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1593
updateListAfterDelete:collectionOfFiles
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1594
    |indices firstIndex lastIndex nextIndex nextItem|
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1595
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1596
    collectionOfFiles size > 100 ifTrue:[
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1597
        super updateListAfterDelete:collectionOfFiles.
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1598
        ^ self
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1599
    ].
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1600
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1601
    indices := collectionOfFiles collect:[:eachFile | browserItemList findFirst:[:item | item fileName = eachFile]].
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1602
    lastIndex := indices max.
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1603
    firstIndex := indices min.
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1604
    nextIndex := lastIndex+1.
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1605
    nextIndex > browserItemList size ifTrue:[ nextIndex := firstIndex-1].
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1606
    nextItem := browserItemList at:nextIndex ifAbsent:nil.
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1607
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1608
    accessLock critical:[
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1609
        indices asSortedCollection 
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1610
            reverseDo:[:eachIndexToRemove |
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1611
                eachIndexToRemove ~~ 0 ifTrue:[
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1612
                        browserItemList removeIndex:eachIndexToRemove
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1613
                    ]
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1614
                ].
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1615
    ].
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1616
11446
5804c23cee35 changed:
Claus Gittinger <cg@exept.de>
parents: 11445
diff changeset
  1617
    self directoryContentsChanged. "/ to force update of the numberOfShown files.
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1618
    nextItem notNil ifTrue:[
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1619
        self
16101
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  1620
            enqueueDelayedAction:[ 
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  1621
                self selectionInFileList value:(OrderedCollection with:nextItem).
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  1622
                self selectItems:(OrderedCollection with:nextItem)  ].
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1623
"/        self selectionInFileList value:(OrderedCollection with:nextItem).
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1624
"/        self selectItems:(OrderedCollection with:nextItem).
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1625
    ].
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  1626
11446
5804c23cee35 changed:
Claus Gittinger <cg@exept.de>
parents: 11445
diff changeset
  1627
    "Modified: / 20-03-2012 / 13:22:48 / cg"
5544
e5ccc9372d6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5475
diff changeset
  1628
!
e5ccc9372d6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5475
diff changeset
  1629
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1630
viewPreviewChanged
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1631
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1632
    browserItemList do:[:el| el resetImageFile ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1633
    self viewedColumnsChanged.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1634
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1635
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1636
viewedColumnsChanged
81925afd23fd initial checkin
penk
parents:
diff changeset
  1637
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1638
    |columns buffer currentSortOrder currentSortOrderColumn currentSortOrderReverse selection holder|
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1639
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1640
    selection := self selectedItems.
4778
e1c81c22bf36 Avoid slow grow operations on Array.
Stefan Vogel <sv@exept.de>
parents: 4768
diff changeset
  1641
    buffer := self class tableColumns 
7764
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
  1642
                collect:[:col| (DataSetColumnSpec decodeFromLiteralArray:col)].
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1643
4778
e1c81c22bf36 Avoid slow grow operations on Array.
Stefan Vogel <sv@exept.de>
parents: 4768
diff changeset
  1644
    columns := buffer asOrderedCollection.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1645
    self viewDetails value = false ifTrue:[
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1646
        browser showLabels:false.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1647
        buffer do:[:col |
81925afd23fd initial checkin
penk
parents:
diff changeset
  1648
            (col readSelector = #baseName or:[col readSelector = #icon]) ifFalse:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  1649
                columns remove:col.                
81925afd23fd initial checkin
penk
parents:
diff changeset
  1650
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  1651
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  1652
    ] ifFalse:[
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1653
        browser showLabels:true.
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1654
        currentSortOrder := self currentSortOrder value.
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1655
        currentSortOrderColumn := currentSortOrder at:#column ifAbsent:nil.
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1656
        currentSortOrderReverse := currentSortOrder at:#reverse ifAbsent:nil.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1657
        buffer do:[:col |
8998
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
  1658
            | id label icon |
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1659
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1660
            id := col readSelector.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1661
            id notNil ifTrue:[
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1662
                (col labelActionArgument notNil and:[col labelActionArgument asSymbol == currentSortOrderColumn]) ifTrue:[
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1663
                    label := col label.
8998
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
  1664
                    icon := currentSortOrderReverse 
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
  1665
                                ifTrue:[ self class detailsMenuIconDown] 
9e82e5a0ea9a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8977
diff changeset
  1666
                                ifFalse:[ self class detailsMenuIconUp].
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1667
                    col label:(LabelAndIcon label:label icon:icon).
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1668
                ].  
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1669
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1670
                ((id == #baseName) or:[id == #baseNameWithOutSuffix]) ifTrue:[
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1671
                    self viewType value ifTrue:[
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1672
                        col readSelector:#baseNameWithOutSuffix
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1673
                    ] ifFalse:[
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1674
                        col readSelector:#baseName
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1675
                    ].
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  1676
                ] ifFalse:[
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1677
                    holder := self valueHolderForColumn:id.
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1678
                    holder value ifFalse:[
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1679
                        columns remove:col. 
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  1680
                    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1681
                ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  1682
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  1683
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  1684
    ].
4039
c259e9105173 *** empty log message ***
penk
parents: 4033
diff changeset
  1685
    self updateToExternFileHolderLock doLocked:[
c259e9105173 *** empty log message ***
penk
parents: 4033
diff changeset
  1686
        self tableColumns value:columns.
c259e9105173 *** empty log message ***
penk
parents: 4033
diff changeset
  1687
    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1688
    self columnDescriptors:(self tableColumns value).
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1689
    self selectItems:selection.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1690
    self wakeUp.
7764
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
  1691
54a93e4aff7b use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 7714
diff changeset
  1692
    "Modified: / 27-03-2007 / 08:46:28 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1693
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1694
81925afd23fd initial checkin
penk
parents:
diff changeset
  1695
!DirectoryContentsBrowser methodsFor:'drag & drop'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1696
81925afd23fd initial checkin
penk
parents:
diff changeset
  1697
doStartDrag:aDropSource in:aView
9360
442d863efe2a comment/format in: #doStartDrag:in:
Claus Gittinger <cg@exept.de>
parents: 9323
diff changeset
  1698
    "set the cursors before starting the drag & drop operation"
442d863efe2a comment/format in: #doStartDrag:in:
Claus Gittinger <cg@exept.de>
parents: 9323
diff changeset
  1699
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1700
    |selectedFiles|
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1701
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1702
    selectedFiles := self selectedFiles.
4014
ba5e66d9b931 *** empty log message ***
penk
parents: 4013
diff changeset
  1703
    (selectedFiles isEmpty) ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1704
        ^ self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1705
    ].
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1706
    ^ super doStartDrag:aDropSource in:aView
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1707
!
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1708
4746
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1709
dropDestinationPath
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1710
    |destinationPath|
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1711
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1712
    draggedItem isNil ifTrue:[
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1713
        destinationPath := self directory.
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1714
    ] ifFalse:[
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1715
        destinationPath := self getDirWithoutFileName:(draggedItem fileName).
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1716
        destinationPath baseName = '..' ifTrue:[
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1717
            destinationPath := self directory directory.
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1718
        ]
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1719
    ].
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1720
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1721
    ^ destinationPath
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1722
!
37dc71547964 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4738
diff changeset
  1723
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1724
dropObjects:aCollectionOfDropObjects
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1725
    "drop manager wants to drop.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1726
     This is ony sent, if #canDrop: returned true.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1727
     Must be redefined in order for drop to work."
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1728
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1729
    ^ self shouldImplement
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1730
!
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  1731
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1732
dropOver:aDropContext 
4611
ef3e46e49777 comment
Claus Gittinger <cg@exept.de>
parents: 4607
diff changeset
  1733
    "called during drag & drop while moving over the widget."
ef3e46e49777 comment
Claus Gittinger <cg@exept.de>
parents: 4607
diff changeset
  1734
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1735
    |lineNr newDest destinationFile|
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1736
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1737
    inDropMode ifFalse:[^ self].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1738
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1739
    lineNr  := self getLineNumberFor:aDropContext.
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1740
    lineNr notNil ifTrue:[
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1741
        newDest := browserItemList at:lineNr.
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1742
        (newDest notNil and:[newDest isDirectory]) ifTrue:[
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1743
            destinationFile := newDest fileName.
4014
ba5e66d9b931 *** empty log message ***
penk
parents: 4013
diff changeset
  1744
            destinationFile baseName = '..' ifTrue:[
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1745
                destinationFile := self directory directory.
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1746
            ]
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1747
        ].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1748
    ].
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1749
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1750
    newDest == draggedItem ifTrue:[
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1751
        "/ beyond last contents-line
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1752
        newDest isNil ifTrue:[
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1753
            canDropItem := self canDropFiles:(aDropContext dropObjects) for:self directory.
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1754
        ].
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1755
        ^ self
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1756
    ].
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1757
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1758
    destinationFile isNil ifTrue:[
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1759
        destinationFile := self directory.
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1760
    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1761
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1762
    newDest ~~ draggedItem ifTrue:[
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1763
        aDropContext dropSource argument == #archivApplication ifTrue:[
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1764
            canDropItem := true.
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1765
        ] ifFalse:[
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1766
            canDropItem := self canDropFiles:(aDropContext dropObjects) for:destinationFile.
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1767
        ].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1768
    ].
4683
7d58777262a6 drop into empty directory
Claus Gittinger <cg@exept.de>
parents: 4662
diff changeset
  1769
    self dropTargetItemChangedTo:newDest in:aDropContext.
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1770
!
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1771
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1772
dropTargetItemChangedTo:anItem in:aDropContext
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1773
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1774
    | current |
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1775
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1776
    
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1777
"/    (anItem notNil and:[anItem isDirectory]) ifTrue:[ self halt].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1778
    current := draggedItem.
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  1779
"/    Transcript showCR:'current:', (current isNil ifTrue:['nil'] ifFalse:[current fileName baseName]).
09ec3349210c instable state
penk
parents: 3964
diff changeset
  1780
"/    Transcript showCR:'anItem:', (anItem isNil ifTrue:['nil'] ifFalse:[anItem fileName baseName]).
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1781
    current == anItem ifTrue:[^ self].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1782
    draggedItem := anItem.
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1783
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1784
    aDropContext contentsWillChange.
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1785
9534
aabf8d5125a5 changed: #dropTargetItemChangedTo:in:
Claus Gittinger <cg@exept.de>
parents: 9513
diff changeset
  1786
    current notNil ifTrue:[
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1787
        current isDirectory ifTrue:[
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1788
            current icon:(self getIconFor:current).
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1789
        ].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1790
    ].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1791
9534
aabf8d5125a5 changed: #dropTargetItemChangedTo:in:
Claus Gittinger <cg@exept.de>
parents: 9513
diff changeset
  1792
    anItem notNil ifTrue:[
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1793
        anItem isDirectory ifTrue:[
14424
64e4e2a24b46 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14414
diff changeset
  1794
            anItem icon:(MIMETypeIconLibrary iconForKeyMatching:#directoryOpenGray)
64e4e2a24b46 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14414
diff changeset
  1795
                        "/ (self class iconForKeyMatching:#directoryOpenGray).
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1796
        ].
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1797
    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1798
    browser shown ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1799
        browser invalidateVisibleRow:current colAt:iconIndex.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1800
        browser invalidateVisibleRow:anItem colAt:iconIndex.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1801
        browser repairDamage.
3953
4fd0ed70cf36 next stage
penk
parents: 3925
diff changeset
  1802
    ].
9534
aabf8d5125a5 changed: #dropTargetItemChangedTo:in:
Claus Gittinger <cg@exept.de>
parents: 9513
diff changeset
  1803
aabf8d5125a5 changed: #dropTargetItemChangedTo:in:
Claus Gittinger <cg@exept.de>
parents: 9513
diff changeset
  1804
    "Modified: / 08-08-2010 / 14:41:53 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1805
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1806
81925afd23fd initial checkin
penk
parents:
diff changeset
  1807
getDisplayObjects:anArgument
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1808
    |selectedItems string fnName stream|
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1809
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1810
    selectedItems := self selectedFiles.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1811
    selectedItems isEmpty ifTrue:[ ^ ''].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1812
15592
cdeaf8307c45 class: DirectoryContentsBrowser
Stefan Vogel <sv@exept.de>
parents: 15466
diff changeset
  1813
    stream := CharacterWriteStream with:(selectedItems first baseName).
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1814
    selectedItems size == 1 ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1815
        fnName := 'ui_menuitem.xpm'.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1816
    ] ifFalse:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  1817
        fnName := 'ui_submenu_open.xpm'.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1818
        stream nextPutAll:' ... '.
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1819
        stream nextPutAll:(selectedItems last baseName).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1820
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  1821
    string := stream contents.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1822
    stream close.
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1823
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1824
    ^ Array with:(LabelAndIcon icon:(Image fromFile:fnName)
81925afd23fd initial checkin
penk
parents:
diff changeset
  1825
                             string:(Text string:string emphasis:#bold)
81925afd23fd initial checkin
penk
parents:
diff changeset
  1826
                 )
81925afd23fd initial checkin
penk
parents:
diff changeset
  1827
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1828
81925afd23fd initial checkin
penk
parents:
diff changeset
  1829
!DirectoryContentsBrowser methodsFor:'event handling'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1830
81925afd23fd initial checkin
penk
parents:
diff changeset
  1831
processEvent:anEvent
81925afd23fd initial checkin
penk
parents:
diff changeset
  1832
    "filter keyboard events.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1833
     Return true, if I have eaten the event"
81925afd23fd initial checkin
penk
parents:
diff changeset
  1834
12113
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  1835
    <resource: #keyboard (#Accept #Paste #CursorLeft #Cut #Copy #Delete 
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  1836
                          #Return #Rename)>
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  1837
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1838
    |focusView key rawKey|
81925afd23fd initial checkin
penk
parents:
diff changeset
  1839
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1840
    anEvent isKeyPressEvent ifFalse:[^ false].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1841
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1842
    focusView := anEvent targetView.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1843
    (focusView isNil or:[focusView ~~ browser]) ifTrue:[ ^ false].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1844
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1845
    key := anEvent key.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1846
    rawKey := anEvent rawKey.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1847
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1848
   "/ (key ~= #'Alt_L') ifTrue:[self halt.].
16936
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1849
   "/ cg: removed; too dangerous, because it depends on which view has
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1850
   "/ the focus - in the codeView, it is a save; in the list, it is a fileIn.
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1851
   "/ this is confusing to newcomers.
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1852
"/    key == #Accept ifTrue:[
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1853
"/        self withActivityIndicationDo:[
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1854
"/            self fileFileIn.
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1855
"/        ].
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1856
"/        ^ true.
2d11a0d97ad5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16909
diff changeset
  1857
"/    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1858
    key == #Paste ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1859
        self pasteFiles.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1860
        ^ true.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1861
    ].
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1862
"/ strange feeling, because behavior is different depending on
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1863
"/ where the mouse pointer is (treeView vs. contentsView)
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  1864
"/
5404
cc0458a59070 cursor-left
Claus Gittinger <cg@exept.de>
parents: 5383
diff changeset
  1865
    (key == #CursorLeft) ifTrue:[
cc0458a59070 cursor-left
Claus Gittinger <cg@exept.de>
parents: 5383
diff changeset
  1866
        self doGoDirectoryUp.
cc0458a59070 cursor-left
Claus Gittinger <cg@exept.de>
parents: 5383
diff changeset
  1867
        ^ true
cc0458a59070 cursor-left
Claus Gittinger <cg@exept.de>
parents: 5383
diff changeset
  1868
    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1869
"/    (key == #CursorRight) ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1870
"/        self doBack.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1871
"/        ^ true
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1872
"/    ].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1873
    browserItemList size == 0 ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1874
        ^ false
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1875
    ].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1876
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1877
    key == #Cut ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1878
        self doCut.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1879
        ^ true.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1880
    ].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1881
    key == #Copy ifTrue:[
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1882
        self doCopy.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1883
        ^ true.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1884
    ].
12113
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  1885
    ((key == #Delete) or:[key == #BackSpace]) ifTrue:[
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1886
        self doDelete.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1887
        ^ true.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1888
    ].
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1889
    (key == #Return) ifTrue:[
4972
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1890
        self enterAction.
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1891
        ^ true.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1892
    ].
8715
b3cab0b56b9a Cmdr -> F2
Claus Gittinger <cg@exept.de>
parents: 8658
diff changeset
  1893
    key == #Rename ifTrue:[
4828
85483f15dbe2 rename-key
Claus Gittinger <cg@exept.de>
parents: 4786
diff changeset
  1894
        self renameSelection.
85483f15dbe2 rename-key
Claus Gittinger <cg@exept.de>
parents: 4786
diff changeset
  1895
        ^ true.
85483f15dbe2 rename-key
Claus Gittinger <cg@exept.de>
parents: 4786
diff changeset
  1896
    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  1897
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1898
    ^ false
6831
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1899
56061d3bcbf0 wait-cursor -> activity indication
Claus Gittinger <cg@exept.de>
parents: 6826
diff changeset
  1900
    "Modified: / 25-07-2006 / 09:08:16 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1901
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1902
6298
6aae3f1eaa15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6286
diff changeset
  1903
!DirectoryContentsBrowser methodsFor:'initialization'!
6226
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1904
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1905
initialize
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1906
    changeSema := Semaphore new. 
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1907
    updateCycleSemaphore := Semaphore new.
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1908
    accessLock := RecursionLock new.
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1909
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1910
    filterChangeFlag := false.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1911
    sortBlockChangeFlag := false.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1912
    directoryChangeFlag := false.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1913
    directoryContentsChangeFlag := false.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1914
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1915
    enterActionBlock := nil.
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1916
    updateCurrentFileNameHolderWhenSelectionChanges := true.
15283
f054c39953c2 DirectoryContentsBrowser: added hook that's called when an item is "entered" (i.e., double-clicked or return pressed)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14896
diff changeset
  1917
6226
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1918
    super initialize.
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  1919
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  1920
    "Modified: / 07-01-2012 / 16:34:25 / cg"
15284
3546aaf738d5 DirectoryContentsBrowser: added flag whether to update or not currentFileNameHolder when selection changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15283
diff changeset
  1921
    "Modified: / 13-02-2015 / 20:56:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6226
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1922
! !
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  1923
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1924
!DirectoryContentsBrowser methodsFor:'menu accessing'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1925
81925afd23fd initial checkin
penk
parents:
diff changeset
  1926
viewBrowserMenu
81925afd23fd initial checkin
penk
parents:
diff changeset
  1927
81925afd23fd initial checkin
penk
parents:
diff changeset
  1928
    <resource: #programMenu >
81925afd23fd initial checkin
penk
parents:
diff changeset
  1929
81925afd23fd initial checkin
penk
parents:
diff changeset
  1930
    |menu|
81925afd23fd initial checkin
penk
parents:
diff changeset
  1931
3961
cc887842b5ca next stage
penk
parents: 3953
diff changeset
  1932
    viewBrowserMenu isNil ifTrue:[
cc887842b5ca next stage
penk
parents: 3953
diff changeset
  1933
        viewBrowserMenu :=  self class viewBrowserMenu.
cc887842b5ca next stage
penk
parents: 3953
diff changeset
  1934
    ].
7584
3742d4192948 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7572
diff changeset
  1935
    viewBrowserMenu isNil ifTrue:[ ^ nil ].
4080
c32f68f51f47 translation to german
penk
parents: 4073
diff changeset
  1936
    viewBrowserMenu findGuiResourcesIn:self.
c32f68f51f47 translation to german
penk
parents: 4073
diff changeset
  1937
3961
cc887842b5ca next stage
penk
parents: 3953
diff changeset
  1938
    menu := viewBrowserMenu.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1939
    menu receiver:self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  1940
    ^ menu
81925afd23fd initial checkin
penk
parents:
diff changeset
  1941
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1942
81925afd23fd initial checkin
penk
parents:
diff changeset
  1943
!DirectoryContentsBrowser methodsFor:'menu actions'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1944
81925afd23fd initial checkin
penk
parents:
diff changeset
  1945
doShowFileContents
81925afd23fd initial checkin
penk
parents:
diff changeset
  1946
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1947
    | selectedFileItems|
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1948
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1949
    selectedFileItems := self selectedFileItems.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1950
    (selectedFileItems size == 1) ifTrue:[ 
4880
87f511659680 edit file in context menu of DirectoryContentsBroser opens a new tab
penk
parents: 4862
diff changeset
  1951
        self openNewTextEditorOn:(selectedFileItems first).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1952
    ].
4972
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1953
!
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1954
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1955
enterAction
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1956
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1957
    | selectedItems|
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1958
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1959
    selectedItems := self selectedItems.
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1960
    (selectedItems size == 1) ifTrue:[ 
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1961
        self enterActionFor:(selectedItems first).
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  1962
    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1963
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  1964
81925afd23fd initial checkin
penk
parents:
diff changeset
  1965
!DirectoryContentsBrowser methodsFor:'queries'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1966
81925afd23fd initial checkin
penk
parents:
diff changeset
  1967
allItemsOfCurrentDirectory
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
  1968
    self viewDirsInContentsBrowser value ifTrue:[
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1969
        ^ browserItemList copyFrom:2.      "/ remove the '..' item
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1970
    ].
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1971
    ^ browserItemList.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1972
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1973
81925afd23fd initial checkin
penk
parents:
diff changeset
  1974
fileListIsEmpty
81925afd23fd initial checkin
penk
parents:
diff changeset
  1975
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1976
    ^ browserItemList isEmpty
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1977
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  1978
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1979
getAllFilesAsStrings
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1980
    browserItemList isEmpty ifTrue:[
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1981
        ^ #()
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  1982
    ].
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1983
    ^ browserItemList 
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1984
        select:[:anItem | anItem isDirectory not]
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  1985
        thenCollect:[:eachItem | eachItem fileName asString].
4004
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1986
!
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1987
f97168a68093 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3999
diff changeset
  1988
hasFilesFiltered
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1989
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  1990
    ^ self allItems size ~~ browserItemList size
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1991
! !
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1992
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1993
!DirectoryContentsBrowser methodsFor:'selection'!
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1994
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1995
selectAll
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1996
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1997
    | sel|
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1998
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  1999
    sel := browserItemList copy.
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
  2000
    self viewDirsInContentsBrowser value ifTrue:[
4013
049b94940308 *** empty log message ***
penk
parents: 4012
diff changeset
  2001
        sel removeIdentical:(browserItemList first) ifAbsent:[nil]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2002
    ].
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2003
    self selectionInFileList value:sel.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2004
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2005
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2006
selectCurrentFiles
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2007
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2008
    |currentSelection|
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2009
12826
efcb58c3ca55 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12605
diff changeset
  2010
    ((currentSelection := self currentSelectedObjects reject:[:file| file isDirectory]) notEmpty) ifTrue:[
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2011
        self selectFiles:currentSelection.
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2012
    ].
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  2013
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  2014
    "Modified: / 04-12-2006 / 13:15:34 / cg"
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2015
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2016
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2017
selectFiles:aColOfFilenames
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2018
    | curSel newSel|
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2019
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2020
    curSel := self selectedFiles.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2021
    aColOfFilenames size = curSel size ifTrue:[
9105
e848e5001118 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9103
diff changeset
  2022
        "/ anything changed ?
e848e5001118 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9103
diff changeset
  2023
        (curSel contains:[:file| (aColOfFilenames includes:file) not]) ifFalse:[^ self].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2024
    ].
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2025
    newSel := OrderedCollection new.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2026
    browserItemList do:[: item|
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2027
        (aColOfFilenames includes:(item fileName)) ifTrue:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2028
            newSel add:item.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2029
        ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2030
    ].
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2031
    self updateToExternFileHolderLock doLocked:[
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  2032
        self selectionInFileList value:newSel withoutNotifying:self.
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2033
    ].
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2034
!
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2035
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  2036
selectItems:aColOfItems
4768
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2037
    self selectFiles:(aColOfItems collect:[:eachItem | eachItem fileName]).
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2038
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2039
"/    | curSel newSel|
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2040
"/
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2041
"/    curSel := self selectedItems.
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2042
"/    aColOfItems size = curSel size ifTrue:[
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2043
"/        | index |
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2044
"/        index := curSel findFirst:[:item| (aColOfItems includes:item) not].
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2045
"/        index == 0 ifTrue:[ ^ self].
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2046
"/    ].
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2047
"/    newSel := OrderedCollection new.
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2048
"/    browserItemList do:[: item|
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2049
"/        (aColOfItems includes:item) ifTrue:[
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2050
"/            newSel add:item.
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2051
"/        ].
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2052
"/    ].
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2053
"/    self updateToExternFileHolderLock doLocked:[
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2054
"/        self selectionInFileList value:newSel withoutNotifying:self.
36eaed9339da code cleanup
Claus Gittinger <cg@exept.de>
parents: 4757
diff changeset
  2055
"/    ].
4335
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  2056
!
b56935032115 keep selection on update and insert new lines smarter in displayed list
penk
parents: 4298
diff changeset
  2057
14574
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2058
selectNextFile
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2059
    |sel idx nextIdx nextItem|
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2060
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2061
    sel := selectionInFileList value.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2062
    sel isEmpty ifTrue:[
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2063
        idx := 0
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2064
    ] ifFalse:[
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2065
        idx := browserItemList indexOf:(selectionInFileList value last).
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2066
    ].
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2067
    nextIdx := idx == browserItemList size ifTrue:[1] ifFalse:[idx + 1].
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2068
    nextItem := browserItemList at:nextIdx.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2069
    self selectItems:{ nextItem }.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2070
!
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2071
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2072
selectPreviousFile
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2073
    |sel idx prevIdx prevItem|
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2074
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2075
    sel := selectionInFileList value.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2076
    sel isEmpty ifTrue:[
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2077
        idx := browserItemList size + 1
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2078
    ] ifFalse:[
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2079
        idx := browserItemList indexOf:(selectionInFileList value first).
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2080
    ].
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2081
    prevIdx := idx == 1 ifTrue:[browserItemList size] ifFalse:[idx - 1].
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2082
    prevItem := browserItemList at:prevIdx.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2083
    self selectItems:{ prevItem }.
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2084
!
8057b1c7ec88 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14465
diff changeset
  2085
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2086
selectedFileItems
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2087
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2088
    | sel |
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2089
12826
efcb58c3ca55 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12605
diff changeset
  2090
    sel := self selectedItemsWithoutDotDotDirectory reject:[:item | item isDirectory].
3987
f012466a71cd *** empty log message ***
ca
parents: 3985
diff changeset
  2091
    ^ sel
f012466a71cd *** empty log message ***
ca
parents: 3985
diff changeset
  2092
!
f012466a71cd *** empty log message ***
ca
parents: 3985
diff changeset
  2093
f012466a71cd *** empty log message ***
ca
parents: 3985
diff changeset
  2094
selectedFileNames
f012466a71cd *** empty log message ***
ca
parents: 3985
diff changeset
  2095
    ^ self selectedFileItems collect:[:item| item fileName].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2096
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2097
4978
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  2098
selectedFiles
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  2099
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  2100
    ^ self selectedItemsWithoutDotDotDirectory collect:[:item| item fileName].
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  2101
!
9ca1ae265211 selectedFiles for directoryContentsBrowser without the .. dir
penk
parents: 4976
diff changeset
  2102
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2103
selectedItems
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2104
    | selection |
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2105
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2106
    selection := self selectionInFileList value copy.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2107
    selection isNil ifTrue:[ ^ #()].
5870
5ea994015006 *** empty log message ***
penk
parents: 5869
diff changeset
  2108
    selection isSequenceable ifFalse:[
5ea994015006 *** empty log message ***
penk
parents: 5869
diff changeset
  2109
        selection := OrderedCollection with:selection
5ea994015006 *** empty log message ***
penk
parents: 5869
diff changeset
  2110
    ].
4972
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2111
    ^ selection.
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2112
!
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2113
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2114
selectedItemsWithoutDotDotDirectory
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2115
    | selection |
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2116
5676
931b1a2b9ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5654
diff changeset
  2117
    selection := self selectionInFileList value.
4972
900a778786bc directory up on enter in DirectoryContentsBrowser
penk
parents: 4970
diff changeset
  2118
    selection isNil ifTrue:[ ^ #()].
5868
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  2119
    selection isSequenceable ifFalse:[
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  2120
        selection := OrderedCollection with:selection.
ea383a2721e6 *** empty log message ***
penk
parents: 5818
diff changeset
  2121
    ].
12412
5df92e9efb33 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12342
diff changeset
  2122
    selection := selection reject:[:e | e isNil].
5df92e9efb33 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12342
diff changeset
  2123
    selection isEmpty ifTrue:[ ^ #()].
8977
0fd3fcbb8fc7 copy asOrderedCollection -> copyAsOrderedCollection
Claus Gittinger <cg@exept.de>
parents: 8845
diff changeset
  2124
    selection := selection copyAsOrderedCollection.
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
  2125
    (self viewDirsInContentsBrowser value and:[browserItemList notEmpty]) ifTrue:[
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2126
        selection removeIdentical:(browserItemList first) ifAbsent:[nil]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2127
    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2128
    ^ selection.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2129
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  2130
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2131
!DirectoryContentsBrowser methodsFor:'startup & release'!
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2132
81925afd23fd initial checkin
penk
parents:
diff changeset
  2133
makeDependent
81925afd23fd initial checkin
penk
parents:
diff changeset
  2134
4007
8f54ab1dbaa0 checkin from browser
penk
parents: 4004
diff changeset
  2135
    super makeDependent.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2136
    self currentFileNameHolder addDependent:self.
4027
c662c75b6bf9 *** empty log message ***
penk
parents: 4026
diff changeset
  2137
    self currentSortOrder addDependent:self.
4202
1a518bcfa35a checkin from browser
penk
parents: 4176
diff changeset
  2138
    self viewDirsInContentsBrowser addDependent:self.
5869
02800ec824cc *** empty log message ***
penk
parents: 5868
diff changeset
  2139
    self sortDirectoriesBeforeFiles addDependent:self.
4011
73fa35b1963b *** empty log message ***
penk
parents: 4007
diff changeset
  2140
    self filterBlockHolder addDependent:self.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2141
    self sortBlockHolder addDependent:self.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2142
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2143
81925afd23fd initial checkin
penk
parents:
diff changeset
  2144
postBuildBrowser:aWidget
81925afd23fd initial checkin
penk
parents:
diff changeset
  2145
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2146
    browser       := aWidget scrolledView.
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2147
    browser wantsFocusWithPointerEnter.
17029
3e5b4af7b64e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16936
diff changeset
  2148
"/ don't register icons anymore
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2149
"/    FileBrowser icons keysAndValuesDo:[:aKey :anIcon|
81925afd23fd initial checkin
penk
parents:
diff changeset
  2150
"/        browser registerImage:anIcon key:aKey.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2151
"/    ].
4960
c76ffd8375ae startUpdatetask later (after colDescr is fix)
Claus Gittinger <cg@exept.de>
parents: 4957
diff changeset
  2152
"/    self columnDescriptors:(self tableColumns value).
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  2153
!
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  2154
5444
02b2cd0dfd69 open treebrowser with empty window bug
penk
parents: 5443
diff changeset
  2155
postOpenFromMaster:fromMaster
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  2156
4998
b9beb9d20bc7 sort before open
penk
parents: 4988
diff changeset
  2157
    self sortFileListsBy:(self sortBlockProperty value) withReverse:(self currentSortOrder value).
7714
3ac0b3a85397 slight tuning
Claus Gittinger <cg@exept.de>
parents: 7672
diff changeset
  2158
    self matchBlock:(self filterBlockHolder value).
5444
02b2cd0dfd69 open treebrowser with empty window bug
penk
parents: 5443
diff changeset
  2159
    fromMaster ifFalse:[
5442
4e025f6f8ed7 building not complete in open from master
penk
parents: 5432
diff changeset
  2160
        self currentFileNameHolderChangedForCommon.
4e025f6f8ed7 building not complete in open from master
penk
parents: 5432
diff changeset
  2161
    ].
12342
78b5ffcbccc3 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12324
diff changeset
  2162
    self startUpdateTask.
5443
27b5143d23f7 building not complete in open from master
penk
parents: 5442
diff changeset
  2163
    self currentFileNameHolderChanged.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2164
    self viewedColumnsChanged.
4071
f923c8257818 *** empty log message ***
penk
parents: 4057
diff changeset
  2165
    self windowGroup addPreEventHook:self.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2166
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2167
81925afd23fd initial checkin
penk
parents:
diff changeset
  2168
release
81925afd23fd initial checkin
penk
parents:
diff changeset
  2169
    "release my resources
81925afd23fd initial checkin
penk
parents:
diff changeset
  2170
    "                    
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2171
    self stopUpdateTask.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2172
    super release.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2173
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2174
81925afd23fd initial checkin
penk
parents:
diff changeset
  2175
releaseAsSubCanvas
81925afd23fd initial checkin
penk
parents:
diff changeset
  2176
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2177
    self stopUpdateTask.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2178
    ^ super releaseAsSubCanvas.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2179
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  2180
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2181
!DirectoryContentsBrowser methodsFor:'update columns cycle'!
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2182
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2183
findNextItemFor:aConditionBlock
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2184
    |checkRowAndReturnItemIfConditionIsTrue 
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2185
     firstRowShown lastRowShown rLow rHigh numItems|
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2186
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2187
    checkRowAndReturnItemIfConditionIsTrue := 
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2188
        [:row | |item|
7963
224f493a0034 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7908
diff changeset
  2189
            item := browserItemList at:row ifAbsent:nil.
224f493a0034 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7908
diff changeset
  2190
            item notNil ifTrue:[
224f493a0034 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7908
diff changeset
  2191
                (aConditionBlock value:item) ifTrue:[
224f493a0034 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7908
diff changeset
  2192
                    ^ item.
224f493a0034 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7908
diff changeset
  2193
                ]
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2194
            ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2195
        ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2196
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2197
    firstRowShown := browser indexOfFirstRowShown.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2198
    lastRowShown := browser indexOfLastRowShown.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2199
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2200
    firstRowShown to:lastRowShown do:checkRowAndReturnItemIfConditionIsTrue.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2201
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2202
    numItems := browserItemList size.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2203
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2204
    rLow := firstRowShown - 1.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2205
    rHigh := lastRowShown + 1.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2206
    [(rLow >= 1) or:[ rHigh <= numItems]] whileTrue:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2207
        rLow >= 1 ifTrue:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2208
            checkRowAndReturnItemIfConditionIsTrue value:rLow.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2209
            rLow := rLow - 1
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2210
        ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2211
        rHigh <= numItems ifTrue:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2212
            checkRowAndReturnItemIfConditionIsTrue value:rHigh.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2213
            rHigh := rHigh + 1
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2214
        ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2215
    ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2216
    ^ nil.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2217
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2218
"/    ^ self allItems detect:aBlock ifNone:[nil].
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2219
!
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2220
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2221
findNextVisibleItemFor:aConditionBlock
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2222
    |firstRow row item|
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2223
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2224
    firstRow := browser indexOfFirstRowShown.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2225
    firstRow <= 0 ifTrue:[firstRow := 1].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2226
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2227
    row := firstRow.
6826
2b6bf0d725c2 eliminated loop-send
Claus Gittinger <cg@exept.de>
parents: 6809
diff changeset
  2228
    [true] whileTrue:[
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2229
        ((row <= browserItemList size) and:[ (browser isRowVisible:row) ]) ifFalse:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2230
            ^ nil.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  2231
        ].
8658
bf595f0cb6f5 changed #findNextVisibleItemFor:
Stefan Vogel <sv@exept.de>
parents: 8533
diff changeset
  2232
        item := browserItemList at:row ifAbsent:[^ nil "possible race condition - item removed from browserItemList"].
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2233
        (aConditionBlock value:item) ifTrue:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2234
            ^ item.
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2235
        ].
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2236
        row := row + 1.
6826
2b6bf0d725c2 eliminated loop-send
Claus Gittinger <cg@exept.de>
parents: 6809
diff changeset
  2237
    ]
2b6bf0d725c2 eliminated loop-send
Claus Gittinger <cg@exept.de>
parents: 6809
diff changeset
  2238
2b6bf0d725c2 eliminated loop-send
Claus Gittinger <cg@exept.de>
parents: 6809
diff changeset
  2239
    "Modified: / 18-07-2006 / 08:56:47 / cg"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2240
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2241
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2242
getFileInfoFor:anItem
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2243
81925afd23fd initial checkin
penk
parents:
diff changeset
  2244
    | type|
81925afd23fd initial checkin
penk
parents:
diff changeset
  2245
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2246
    type := anItem fileName fileType.
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2247
    anItem fileType:type.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2248
    ^ type
81925afd23fd initial checkin
penk
parents:
diff changeset
  2249
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2250
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2251
getIconFor:anItem
14186
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  2252
    |icon|
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  2253
14190
928d16f1fa55 class: DirectoryContentsBrowser
Stefan Vogel <sv@exept.de>
parents: 14186
diff changeset
  2254
    icon := MIMETypeIconLibrary iconForKeyMatching:anItem iconKey.
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2255
    anItem isRemoteDirectory ifTrue:[
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  2256
        ^ icon "/ do not query attributes
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  2257
    ].
14186
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  2258
    ^ MIMETypeIconLibrary addOnIconsFor:(anItem fileName) to:icon.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2259
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2260
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2261
getIconForMimeType:mime for:anItem
7908
820560688c8a changed #getIconForMimeType:for:
Claus Gittinger <cg@exept.de>
parents: 7901
diff changeset
  2262
    |currentIcon newIcon images|
820560688c8a changed #getIconForMimeType:for:
Claus Gittinger <cg@exept.de>
parents: 7901
diff changeset
  2263
14191
80b1adf0313d class: DirectoryContentsBrowser
Stefan Vogel <sv@exept.de>
parents: 14190
diff changeset
  2264
    newIcon := MIMETypeIconLibrary iconForKeyMatching:mime.
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2265
    currentIcon := anItem iconOrNil.
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2266
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2267
    (currentIcon notNil and:[currentIcon class == MultiImage]) ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2268
        images := currentIcon images.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2269
        images removeFirst.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2270
        images addFirst:newIcon.
7908
820560688c8a changed #getIconForMimeType:for:
Claus Gittinger <cg@exept.de>
parents: 7901
diff changeset
  2271
        ^ currentIcon.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2272
    ].
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2273
    ^ newIcon.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2274
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2275
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2276
getIconForMimeTypeByContents:anItem
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2277
    ^ self getIconForMimeType:(anItem mimeTypeForContents) for:anItem
4404
1165b811a9a9 only ask once for mimeTypeOfContents
Claus Gittinger <cg@exept.de>
parents: 4402
diff changeset
  2278
!
1165b811a9a9 only ask once for mimeTypeOfContents
Claus Gittinger <cg@exept.de>
parents: 4402
diff changeset
  2279
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2280
getPreviewFor:anItem
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2281
9225
f724089858b3 changed: #getPreviewFor:
Claus Gittinger <cg@exept.de>
parents: 9116
diff changeset
  2282
    | column icon|   
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2283
    
15617
8c7ea8299d1a class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15592
diff changeset
  2284
    previewIndex == 0 ifTrue:[^ nil].
8c7ea8299d1a class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15592
diff changeset
  2285
    previewIndex isNil ifTrue:[^ nil].
8c7ea8299d1a class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15592
diff changeset
  2286
9225
f724089858b3 changed: #getPreviewFor:
Claus Gittinger <cg@exept.de>
parents: 9116
diff changeset
  2287
    column := browser columnDescriptorAt:previewIndex.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2288
    column isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2289
        previewIndex := 0.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2290
    ] ifFalse:[
13717
00aa1ccdc596 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12826
diff changeset
  2291
        (anItem hasMimeType and:[anItem mimeType isImageType]) ifTrue:[
5238
e8ff2160c206 only handle errors
Claus Gittinger <cg@exept.de>
parents: 5152
diff changeset
  2292
            Error handle:[:ex|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2293
                icon := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2294
            ] do:[ |scale extent w h |
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2295
                icon := Image fromFile:(anItem fileName pathName).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2296
                icon notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2297
                    extent := icon extent.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2298
                    w := column width - 4.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2299
                    h := column height.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2300
81925afd23fd initial checkin
penk
parents:
diff changeset
  2301
                    (extent x > w or:[extent y > h]) ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2302
                        scale := extent / (w@h).
81925afd23fd initial checkin
penk
parents:
diff changeset
  2303
                        scale := scale x max:(scale y).
81925afd23fd initial checkin
penk
parents:
diff changeset
  2304
                        icon  := icon magnifiedTo:((extent / scale max:8.0) asInteger).
81925afd23fd initial checkin
penk
parents:
diff changeset
  2305
                    ].
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2306
                    icon := icon onDevice:(browser device).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2307
                ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  2308
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  2309
        ] ifFalse:[ icon := nil].
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2310
        anItem preview:(icon ? '').
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2311
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2312
    ^ icon
81925afd23fd initial checkin
penk
parents:
diff changeset
  2313
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  2314
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2315
updateColumnsCycle
6026
0a098f7a9e09 Stop update task when application is closed
Stefan Vogel <sv@exept.de>
parents: 5994
diff changeset
  2316
    "update items in the following order
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2317
        - update item if item properties are changed
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2318
        - update icon for visible items by suffix
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2319
        - update icon for visible items by contents
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2320
        - update file info for visible items if file info column is shown 
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2321
        - update preview for visible items if preview column is shown 
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2322
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2323
        - update icon for invisible items by suffix
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2324
        - update icon for invisible items by contents
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2325
        - update file info for invisible items if file info column is shown 
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2326
        - update preview for invisible items if preview column is shown 
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  2327
        - update file info for invisible items if file info column is not shown
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  2328
     Return true, if more is to be done.
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  2329
    "
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2330
4404
1165b811a9a9 only ask once for mimeTypeOfContents
Claus Gittinger <cg@exept.de>
parents: 4402
diff changeset
  2331
    |desc mime icon type preview|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2332
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2333
    browserItemList notEmpty ifTrue:[
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2334
        "/ update item if item's properties have changed
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2335
"/        desc := self findNextVisibleItemFor:[:n| n accessFirstTime ].
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2336
"/        desc notNil ifTrue:[
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2337
"/            browser invalidateVisibleRow:desc.
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2338
"/            self debugMessage:'item properties are changed ', desc baseName.
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2339
"/            ^ true.
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2340
"/        ].
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2341
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2342
        "/ update icon for visible items by suffix
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2343
        desc := self findNextVisibleItemFor:[:n| n iconOrNil isNil ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  2344
        desc notNil ifTrue:[  
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2345
            icon := self getIconFor:desc.
6438
4430ef82be3f 100% cpu busy loop, if an icon for an item
Claus Gittinger <cg@exept.de>
parents: 6382
diff changeset
  2346
            icon notNil ifTrue:[
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2347
                icon ~= desc icon ifTrue:[
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2348
                    desc icon:icon.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2349
                    (iconIndex ~~ 0) ifTrue:[
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2350
                        browser invalidateVisibleRow:desc colAt:iconIndex
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2351
                    ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2352
                    self debugMessage:'icon for visible items ', desc baseName.
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2353
                    ^ true
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2354
                ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2355
            ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2356
        ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2357
        "/ update icon for visible items by contents
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2358
        desc := self findNextVisibleItemFor:
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2359
                    [:n| 
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2360
                        (n iconKey == #file 
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2361
                        and:[(mime := n mimeTypeForContents asSymbol) ~= #unknown])
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2362
                    ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2363
        desc notNil ifTrue:[
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2364
            icon := self getIconForMimeType:mime for:desc.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2365
"/            icon := self getIconForMimeTypeByContents:desc.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2366
            icon ~= desc icon ifTrue:[
6438
4430ef82be3f 100% cpu busy loop, if an icon for an item
Claus Gittinger <cg@exept.de>
parents: 6382
diff changeset
  2367
                desc icon:icon.
4430ef82be3f 100% cpu busy loop, if an icon for an item
Claus Gittinger <cg@exept.de>
parents: 6382
diff changeset
  2368
                (icon notNil and:[iconIndex ~~ 0]) ifTrue:[
4430ef82be3f 100% cpu busy loop, if an icon for an item
Claus Gittinger <cg@exept.de>
parents: 6382
diff changeset
  2369
                    browser invalidateVisibleRow:desc colAt:iconIndex
4430ef82be3f 100% cpu busy loop, if an icon for an item
Claus Gittinger <cg@exept.de>
parents: 6382
diff changeset
  2370
                ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  2371
            ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  2372
            ^ true
09ec3349210c instable state
penk
parents: 3964
diff changeset
  2373
        ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2374
        "/ update file info for visible items if file info column is shown
81925afd23fd initial checkin
penk
parents:
diff changeset
  2375
        fileDescriptionIndex ~~ 0 ifTrue:[
4345
7094ddfde188 *** empty log message ***
penk
parents: 4342
diff changeset
  2376
            desc := self findNextVisibleItemFor:[:n| n fileType isEmpty ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2377
            desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2378
                type := self getFileInfoFor:desc.
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2379
                type notNil ifTrue:[
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2380
                    browser invalidateVisibleRow:desc colAt:fileDescriptionIndex
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2381
                ].
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2382
                self debugMessage:'file info for visible items if file info column is shown ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2383
                ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2384
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  2385
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2386
        "/ update preview for visible items if preview column is shown
81925afd23fd initial checkin
penk
parents:
diff changeset
  2387
        previewIndex ~~ 0 ifTrue:[
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  2388
            desc := self findNextVisibleItemFor:[:n| n preview isNil ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2389
            desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2390
                preview := self getPreviewFor:desc.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2391
                preview notNil ifTrue:[
4713
37f134e02205 refactored
Claus Gittinger <cg@exept.de>
parents: 4683
diff changeset
  2392
                    browser invalidateVisibleRow:desc colAt:previewIndex
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2393
                ].
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2394
                self debugMessage:'preview for visible items if preview column is shown ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2395
                ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2396
            ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  2397
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2398
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2399
4349
4a6287f26d3b checkin from browser
penk
parents: 4346
diff changeset
  2400
    "/ validate invisible items to make them available after scrolling
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2401
    self allItems notEmpty ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2402
        "/ update icon for invisible items by suffix
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  2403
        desc := self findNextItemFor:[:n| n iconOrNil isNil ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2404
        desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2405
            icon := self getIconFor:desc.
6440
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2406
            icon notNil ifTrue:[
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2407
                desc icon:icon.
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2408
                browser invalidateVisibleRow:desc colAt:iconIndex.
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2409
                self debugMessage:'icon for invisible items by suffix ', desc baseName.
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2410
                ^ true
03c83c00a2b1 cpu busy again
Claus Gittinger <cg@exept.de>
parents: 6438
diff changeset
  2411
            ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2412
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2413
        "/ update icon for invisible items by contents
81925afd23fd initial checkin
penk
parents:
diff changeset
  2414
        desc := self findNextItemFor:[:n| (n iconKey == #file and:[n mimeTypeForContents ~= #unknown])].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2415
        desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2416
            icon := self getIconForMimeTypeByContents:desc.
81925afd23fd initial checkin
penk
parents:
diff changeset
  2417
            desc icon:icon.
6222
8d7dfc929ab3 update visible and near-visible items first.
Claus Gittinger <cg@exept.de>
parents: 6188
diff changeset
  2418
            browser invalidateVisibleRow:desc colAt:iconIndex.
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2419
            self debugMessage:'icon for invisible items by contents ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2420
            ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2421
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2422
        "/ update file info for invisible items if file info column is shown
81925afd23fd initial checkin
penk
parents:
diff changeset
  2423
        fileDescriptionIndex ~~ 0 ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2424
            desc := self findNextItemFor:[:n| n fileType isNil ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2425
            desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2426
                self getFileInfoFor:desc.
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2427
                self debugMessage:'update file info for invisible items if file info column is shown ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2428
                ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2429
            ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2430
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2431
        "/ update preview for invisible items if preview column is shown 
81925afd23fd initial checkin
penk
parents:
diff changeset
  2432
        previewIndex ~~ 0 ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2433
            desc := self findNextItemFor:[:n| n preview isNil ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2434
            desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2435
                self getPreviewFor:desc.
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2436
                self debugMessage:'update preview for invisible items if preview column is shown: ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2437
                ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2438
            ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2439
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2440
        "/ update file info for invisible items if file info column is not shown
81925afd23fd initial checkin
penk
parents:
diff changeset
  2441
        desc := self findNextItemFor:[:n| n fileType isNil ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2442
        desc notNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  2443
            self getFileInfoFor:desc.
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  2444
            self debugMessage:'update file info for invisible items if file info column is not shown: ', desc baseName.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  2445
            ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  2446
        ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2447
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  2448
    ^ false
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2449
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2450
    "Modified: / 20-03-2012 / 13:05:28 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2451
! !
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2452
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2453
!DirectoryContentsBrowser methodsFor:'update task'!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2454
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2455
createItemList
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2456
    "reread the whole list of items"
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2457
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2458
    |rawFilteredItems|
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2459
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2460
    directory notNil ifTrue:[
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2461
        self allItems:self readDirectoryItems.
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2462
        rawFilteredItems := self evaluateFilter:(self allItems).
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2463
        filteredItems := self sortBlockHolder value sortItemList:rawFilteredItems.
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2464
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2465
"/        Transcript showCR:'getAllTime:', getAllTime asString.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2466
"/        Transcript showCR:'filterTime:', filterTime asString.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2467
"/        Transcript showCR:'sortTime:', sortTime asString.
5780
0951e30d7914 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5777
diff changeset
  2468
"/        Transcript showCR:'time after sort', Timestamp now asString.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2469
    ] ifFalse:[
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2470
        self allItems:OrderedCollection new.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2471
        filteredItems := OrderedCollection new.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2472
    ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2473
    self
7539
ea82227fd8ab *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 7079
diff changeset
  2474
        enqueueMessage:#setBrowserItemList: 
ea82227fd8ab *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 7079
diff changeset
  2475
        arguments:(Array with:filteredItems).
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2476
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2477
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2478
debugMessage:aString
5716
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  2479
    Debug == true ifTrue:[
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2480
        Transcript showCR:aString
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2481
    ].
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2482
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2483
    "
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2484
     Debug := true
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2485
     Debug := false
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2486
    "
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2487
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2488
    "Modified (comment): / 07-01-2012 / 16:30:25 / cg"
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2489
!
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2490
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2491
directoryChanged
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2492
    "reread the whole list of items"
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2493
5935
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2494
    |pos|
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2495
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2496
    self setBrowserItemList:#().
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2497
    directoryContentsChangeFlag := true.
12342
78b5ffcbccc3 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12324
diff changeset
  2498
"/ ^ self.
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2499
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2500
    self createItemList.
5935
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2501
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2502
    directory notNil ifTrue:[
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2503
        pos := AbstractFileBrowser directoryHistory getPositionFor:(directory pathName).
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2504
"/ self halt.
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2505
        pos notNil ifTrue:[
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2506
            browser scrollToLine:pos.
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2507
        ]
72f0c8866406 attempt to preserve scroll-position as per directory
Claus Gittinger <cg@exept.de>
parents: 5870
diff changeset
  2508
    ].
11177
4b83b53c4b1b changed: #directoryChanged
Claus Gittinger <cg@exept.de>
parents: 11058
diff changeset
  2509
11446
5804c23cee35 changed:
Claus Gittinger <cg@exept.de>
parents: 11445
diff changeset
  2510
    "Modified: / 20-03-2012 / 13:16:25 / cg"
4346
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2511
!
5300ce5fb7b0 *** empty log message ***
penk
parents: 4345
diff changeset
  2512
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2513
directoryContentsChanged
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2514
    |oldItems itemsToAdd itemsToRemove newItems newAllItems oldAllItems|
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2515
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2516
    directory isNil ifTrue:[^ self].
11446
5804c23cee35 changed:
Claus Gittinger <cg@exept.de>
parents: 11445
diff changeset
  2517
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2518
    "/ updatingColumns := true.
11446
5804c23cee35 changed:
Claus Gittinger <cg@exept.de>
parents: 11445
diff changeset
  2519
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2520
    newAllItems := self readDirectoryItems.
8496
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2521
    
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2522
    oldItems := filteredItems copy ? #().
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2523
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2524
    (oldItems isEmptyOrNil 
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2525
    or:[newAllItems size > 150]) ifTrue:[ 
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2526
        self createItemList.
12113
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  2527
        filterChangeFlag := false.
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2528
        ^ self
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2529
    ].
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2530
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2531
    newItems := self evaluateFilter:newAllItems.
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2532
    itemsToAdd := OrderedCollection new.
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2533
    itemsToRemove := OrderedCollection new.
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2534
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2535
    oldItems notEmptyOrNil ifTrue:[ 
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2536
        "/ MERGE WITH CURRENT CONTENTS
4894
417aa8531997 *** empty log message ***
penk
parents: 4889
diff changeset
  2537
        oldItems copy do:[:anOldItem|
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2538
            "/ remove no longer valid files
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2539
            (newItems includes:anOldItem) ifFalse:[
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2540
                itemsToRemove add:anOldItem.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2541
                oldItems removeIdentical:anOldItem
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2542
            ]
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2543
        ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2544
    ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2545
    "/ add new files
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2546
    newItems do:[:aNewItem|
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2547
        (oldItems includes:aNewItem) ifFalse:[
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2548
            itemsToAdd add:aNewItem.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2549
        ]
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2550
    ].
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2551
    oldAllItems := self allItems.
11448
c5cd80711b48 changed:
Claus Gittinger <cg@exept.de>
parents: 11446
diff changeset
  2552
    oldAllItems notEmpty ifTrue:[
12113
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  2553
        oldAllItems removeAllFoundIn:itemsToRemove        
5716
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  2554
    ].
9880
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2555
    itemsToAdd do:[: aNewItem |
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2556
        (oldAllItems includes:aNewItem) ifFalse:[
06f533cdb0c7 changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 9791
diff changeset
  2557
            oldAllItems add:aNewItem.
5716
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  2558
        ]
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  2559
    ].
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2560
    self
16101
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  2561
        enqueueDelayedAction:[ 
12113
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  2562
            self browserItemListAdd:itemsToAdd remove:itemsToRemove. 
239341521c07 changed: #processEvent:
Claus Gittinger <cg@exept.de>
parents: 12093
diff changeset
  2563
            filterChangeFlag := false.
16101
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  2564
        ].
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2565
    filteredItems := newItems.
7572
94847f701c19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7564
diff changeset
  2566
11460
0669e11fb7fb changed: #directoryContentsChanged
Claus Gittinger <cg@exept.de>
parents: 11448
diff changeset
  2567
    "Modified: / 23-03-2012 / 14:42:32 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2568
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2569
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2570
evaluateFilter:anItemsList
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2571
    "return filtered items from anItemsList"
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2572
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2573
    |showDir showHidden filterBlock newItemList noOfShownFiles noOfFiles showFiles|
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2574
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2575
    noOfFiles := 0.
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2576
    noOfShownFiles := 0.
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2577
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2578
    showHidden := self showHiddenFiles value.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2579
    showDir := self viewDirsInContentsBrowser value.
5870
5ea994015006 *** empty log message ***
penk
parents: 5869
diff changeset
  2580
    showFiles := self viewFilesInContentsBrowser value.
5ea994015006 *** empty log message ***
penk
parents: 5869
diff changeset
  2581
    
11592
d4637b4237ea changed: #evaluateFilter:
Claus Gittinger <cg@exept.de>
parents: 11460
diff changeset
  2582
    filterBlock := self matchBlock ? [:v1 :v2 | true ].
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2583
    newItemList := anItemsList 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2584
                        select:[:eachItem |
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2585
                            |isDir showIt|
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2586
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2587
                            isDir := eachItem isDirectory.
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2588
                            isDir ifFalse:[noOfFiles := noOfFiles + 1].
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2589
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2590
                            showIt := isDir 
9318
1e6b53fdc9af changed: #evaluateFilter:
Claus Gittinger <cg@exept.de>
parents: 9225
diff changeset
  2591
                                        ifTrue:[ showDir and:[ showHidden or:[ eachItem fileName isHidden not ]]]
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2592
                                        ifFalse:[ showFiles and:[filterBlock 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2593
                                                                    value:eachItem fileName 
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2594
                                                                    value:eachItem baseName]].
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2595
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2596
                            showIt ifTrue:[
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2597
                                isDir ifFalse:[noOfShownFiles := noOfShownFiles + 1].
9103
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2598
                            ].
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2599
                            showIt
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2600
                        ].
eba365efe5e6 hidden files (directories) handling
Claus Gittinger <cg@exept.de>
parents: 8998
diff changeset
  2601
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2602
    self noOfShownFiles:noOfShownFiles noOfFiles:noOfFiles.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2603
    ^ newItemList
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2604
12061
8250241997b8 changed:
Claus Gittinger <cg@exept.de>
parents: 11592
diff changeset
  2605
    "Modified: / 20-11-2012 / 14:28:33 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2606
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2607
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2608
filterChanged
5777
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2609
    |newFilteredItems|
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2610
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2611
    newFilteredItems := self evaluateFilter:self allItems copy.
12061
8250241997b8 changed:
Claus Gittinger <cg@exept.de>
parents: 11592
diff changeset
  2612
    filterChangeFlag ifTrue:[^ self].
8250241997b8 changed:
Claus Gittinger <cg@exept.de>
parents: 11592
diff changeset
  2613
5777
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2614
    newFilteredItems ~= filteredItems ifTrue:[
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2615
        filteredItems := newFilteredItems.
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2616
        filteredItems := self sortBlockHolder value sortItemList:filteredItems.
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2617
        self
16101
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  2618
            enqueueDelayedAction:[ self setBrowserItemList:filteredItems ].
5777
d8ca0c8e0af5 dont update list after a filterChange, if the new filter
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  2619
    ].
12061
8250241997b8 changed:
Claus Gittinger <cg@exept.de>
parents: 11592
diff changeset
  2620
8250241997b8 changed:
Claus Gittinger <cg@exept.de>
parents: 11592
diff changeset
  2621
    "Modified: / 20-11-2012 / 14:28:54 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2622
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2623
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2624
modificationCycle
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2625
    | oldModificationTime  desc|
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2626
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2627
    directory isNil ifTrue:[^ self].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2628
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2629
    directory exists ifFalse:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2630
        "/ directory vanished
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2631
        directoryContentsChangeFlag := true.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2632
        ^ self
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2633
    ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2634
    directory isRootDirectory ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2635
        ^ self
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2636
    ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2637
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2638
    oldModificationTime := modificationTime.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2639
    modificationTime := directory modificationTime.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2640
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2641
    oldModificationTime ~= modificationTime ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2642
        directoryContentsChangeFlag := true.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2643
        self wakeUpForDirectoryContentsChanged.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2644
        ^ self
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2645
    ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2646
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2647
    desc := self findNextItemFor:[:n| n hasBeenModified ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2648
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2649
    desc notNil ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2650
        desc resetItem.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2651
        browser invalidateVisibleRow:desc.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2652
        self debugMessage:'item is modified ', desc baseName.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2653
        ^ self.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2654
    ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2655
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2656
    "Modified: / 20-03-2012 / 12:24:38 / cg"
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2657
!
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2658
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2659
readDirectoryItems
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  2660
    |list contents itemClass|
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2661
8496
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2662
    list     := OrderedCollection new.
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2663
    contents := DirectoryContents directoryNamed:directory.
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2664
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2665
    contents notEmptyOrNil ifTrue:[
17204
788f1338503a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17029
diff changeset
  2666
        itemClass := self class itemClass.
8496
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2667
        modificationTime := contents modificationTime.
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  2668
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  2669
        contents itemsDo:[:eachItem|
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  2670
            list add:(itemClass forInfoItem:eachItem).
4298
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  2671
        ].
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2672
    ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2673
    ^ list
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2674
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2675
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2676
sortBlockChanged
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2677
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2678
    filteredItems isNil ifTrue:[ ^ self].
5383
ae8a426ef69e use for sorting files the new FileSorter class
penk
parents: 5377
diff changeset
  2679
    filteredItems := self sortBlockHolder value sortItemList:filteredItems.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2680
    self
16101
58b48772bf62 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15702
diff changeset
  2681
        enqueueDelayedAction:[ self setBrowserItemList:filteredItems ].
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2682
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2683
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2684
startUpdateTask
9538
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2685
    (updateTask isNil or:[updateTask isDead]) ifTrue:[
4370
777181a805ec restart image process after restart from image
penk
parents: 4353
diff changeset
  2686
        updateTask := [ 
6026
0a098f7a9e09 Stop update task when application is closed
Stefan Vogel <sv@exept.de>
parents: 5994
diff changeset
  2687
                        [self isOpen] whileTrue:[
4370
777181a805ec restart image process after restart from image
penk
parents: 4353
diff changeset
  2688
                            self updateStep
777181a805ec restart image process after restart from image
penk
parents: 4353
diff changeset
  2689
                        ] 
777181a805ec restart image process after restart from image
penk
parents: 4353
diff changeset
  2690
                      ] newProcess.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2691
        updateTask name:'DirectoryContentsBrowser updateTask'.
15466
a62dd831dbb8 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15284
diff changeset
  2692
        updateTask priorityRange:(Processor userBackgroundPriority to:Processor activePriority).
4370
777181a805ec restart image process after restart from image
penk
parents: 4353
diff changeset
  2693
        updateTask restartable:true.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2694
        updateTask resume.
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2695
    ].
9538
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2696
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2697
    "Modified: / 10-08-2010 / 14:03:57 / sr"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2698
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2699
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2700
stopUpdateTask
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2701
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2702
    updateTask notNil ifTrue:[
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2703
        updateTask terminate.
6026
0a098f7a9e09 Stop update task when application is closed
Stefan Vogel <sv@exept.de>
parents: 5994
diff changeset
  2704
        updateTask := nil.
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2705
    ].
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2706
!
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2707
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2708
updateAfterTimeout:hereDueToTimeOut
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2709
    |mustCheckForModifiedDir|
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2710
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2711
    mustCheckForModifiedDir := hereDueToTimeOut.
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2712
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  2713
"/    Transcript showCR:'START'.
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2714
    self isBusy:true.
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2715
    self debugMessage:'update cycle'.
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2716
    [
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2717
        [
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2718
            mustCheckForModifiedDir ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2719
                self debugMessage:'evaluate modification'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2720
                mustCheckForModifiedDir := false.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2721
                self modificationCycle
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2722
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2723
            directoryChangeFlag ifTrue:[ 
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2724
                directoryChangeFlag := false.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2725
                self debugMessage:'directoryChanged'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2726
                self directoryChanged.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2727
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2728
            directoryContentsChangeFlag ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2729
                directoryContentsChangeFlag := false.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2730
                self debugMessage:'directoryContentsChanged'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2731
                self directoryContentsChanged.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2732
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2733
            filterChangeFlag ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2734
                filterChangeFlag := false.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2735
                self debugMessage:'filterChanged'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2736
                self filterChanged.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2737
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2738
            sortBlockChangeFlag ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2739
                sortBlockChangeFlag := false.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2740
                self debugMessage:'sortBlockChanged'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2741
                self sortBlockChanged.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2742
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2743
            (updatingColumns := self updateColumnsCycle) ifTrue:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2744
                self debugMessage:'next time another columns update'.
14896
fb43a213acc4 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14707
diff changeset
  2745
                changeSema signal.
fb43a213acc4 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 14707
diff changeset
  2746
                browser repairDamage.
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2747
            ] ifFalse:[
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2748
                self debugMessage:'next time no column update'.
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2749
            ].
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2750
        ] doWhile:[updatingColumns]
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2751
    ] ensure:[
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2752
        self isBusy:false.
12324
315b83bfcf3d class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12113
diff changeset
  2753
        updateCycleSemaphore signalIf.
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2754
    ].
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2755
"/        Transcript showCR:'STOP'.
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2756
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2757
    "Created: / 07-01-2012 / 16:27:50 / cg"
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2758
!
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2759
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2760
updateStep
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2761
    |timedOut sensor|
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2762
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2763
    "/ Processor yield.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2764
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2765
    sensor := self windowGroup sensor.
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2766
    (sensor anyButtonPressed or:[sensor shiftDown]) ifTrue:[
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2767
        Processor yield.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2768
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2769
        "/ no update while scrolling
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2770
        timedOut := ( changeSema waitWithTimeoutMs:(self class updateTaskCyleTime milliseconds) ) isNil.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2771
        timedOut ifFalse:[changeSema signal].
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2772
        ^ self 
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2773
    ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2774
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2775
    AbortOperationRequest handle:[
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2776
        "/ to get out of a debugger loop...
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2777
        self debugMessage:'got an abort signal'.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2778
        self directoryContentsChangeFlag:false.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2779
        self filterChangeFlag:false.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2780
        self sortBlockChangeFlag:false.
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2781
    ] do:[
13797
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2782
        (updatingColumns == true) ifTrue:[
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2783
            timedOut := false
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2784
        ] ifFalse:[
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2785
            self debugMessage:'sema wait'.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2786
            timedOut := (changeSema waitWithTimeoutMs:(self class updateTaskCyleTime asMilliseconds)) isNil.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2787
            self debugMessage:'timedOut:', timedOut asString.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2788
        ].
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2789
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2790
        (filterChangeFlag 
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2791
        or:[ sortBlockChangeFlag
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2792
        or:[ directoryChangeFlag
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2793
        or:[ directoryContentsChangeFlag 
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2794
        or:[ updatingColumns == true 
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2795
        or:[ timedOut ]]]]]) ifTrue:[
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2796
            accessLock critical:[
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2797
                self updateAfterTimeout:timedOut.
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2798
            ].
21182b668964 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13717
diff changeset
  2799
        ].
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2800
    ].
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2801
11445
7c94d9cad8b4 update fixed
Claus Gittinger <cg@exept.de>
parents: 11431
diff changeset
  2802
    "Modified: / 20-03-2012 / 13:07:22 / cg"
4342
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2803
! !
0eba48d22da3 only one update task is left
penk
parents: 4335
diff changeset
  2804
4862
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2805
!DirectoryContentsBrowser methodsFor:'update task trigger'!
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2806
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2807
wakeUp
9538
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2808
    self isOpen ifTrue:[
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2809
        "/ the updateTask might be nil or dead....
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2810
        self startUpdateTask
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2811
    ].
6226
c88567331045 *** empty log message ***
penk
parents: 6225
diff changeset
  2812
    changeSema signal.
9538
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2813
1c979c56c36b changed:
sr
parents: 9534
diff changeset
  2814
    "Modified: / 10-08-2010 / 14:07:40 / sr"
4862
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2815
!
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2816
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2817
wakeUpForDirectoryChanged
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2818
    self isBusy ifTrue:[
5474
c1f778c85ec1 update bug-fix
ca
parents: 5444
diff changeset
  2819
        self isBusy:false.
4862
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2820
        updateTask interruptWith:[AbortSignal raise].
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2821
    ].
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2822
    directoryChangeFlag := true.
4862
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2823
    self wakeUp.
11058
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2824
ab216c9278c6 added: #updateAfterTimeout:
Claus Gittinger <cg@exept.de>
parents: 10559
diff changeset
  2825
    "Modified: / 07-01-2012 / 16:43:12 / cg"
4862
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2826
!
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2827
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2828
wakeUpForDirectoryContentsChanged
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2829
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2830
    self directoryContentsChangeFlag:true.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2831
    self wakeUp.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2832
!
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2833
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2834
wakeUpForFilterChanged
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2835
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2836
    self filterChangeFlag:true.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2837
    self wakeUp.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2838
!
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2839
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2840
wakeUpForSortBlockChanged
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2841
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2842
    self sortBlockChangeFlag:true.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2843
    self wakeUp.
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2844
! !
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2845
1838e1e01c92 method category rename
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  2846
!DirectoryContentsBrowser methodsFor:'update task-disk usage'!
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2847
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2848
diskUsageInKiloBytesFor:aDirectory
6770
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2849
    |line sum kb|
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2850
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2851
    OperatingSystem isUNIXlike ifTrue:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2852
        line := OperatingSystem getCommandOutputFrom:('du -s -k ' , aDirectory pathName).
4559
6f586dd4661b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4556
diff changeset
  2853
        line notNil ifTrue:[
6f586dd4661b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4556
diff changeset
  2854
            kb := Number readFrom:line readStream.
6f586dd4661b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4556
diff changeset
  2855
        ].
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2856
        ^ kb
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2857
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2858
6770
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2859
    sum := 0.
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2860
    aDirectory recursiveDirectoryContentsDo:[:fnString |
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2861
        |fn|
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2862
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2863
        fn := aDirectory construct:fnString.
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2864
        fn isDirectory ifFalse:[
6809
feff4e2a1c4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6770
diff changeset
  2865
            fn exists ifTrue:[     "/ cares for missing links in WinNT
feff4e2a1c4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6770
diff changeset
  2866
                sum := sum + fn fileSize
feff4e2a1c4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6770
diff changeset
  2867
            ].
6770
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2868
        ].
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2869
    ].
26206f425ad8 du for windows
Claus Gittinger <cg@exept.de>
parents: 6726
diff changeset
  2870
    ^ sum / 1024
6809
feff4e2a1c4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6770
diff changeset
  2871
feff4e2a1c4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6770
diff changeset
  2872
    "Modified: / 04-07-2006 / 11:27:38 / cg"
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2873
!
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2874
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2875
flushRememberedDiskUsageInfo
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2876
    diskUsageInfo := nil.
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2877
!
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2878
4782
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2879
flushRememberedDiskUsageInfoFor:aDirectory
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2880
    |dirPath keysToRemove|
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2881
4783
c5a1859e3f2b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4782
diff changeset
  2882
    diskUsageInfo isNil ifTrue:[ ^ self ].
c5a1859e3f2b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4782
diff changeset
  2883
4782
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2884
    dirPath := aDirectory pathName.
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2885
    keysToRemove := diskUsageInfo keys 
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2886
                        select:[:key |
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2887
                            key startsWith:dirPath
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2888
                        ].
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2889
    diskUsageInfo removeAllKeys:keysToRemove.
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2890
!
491c8090264c update fixed
Claus Gittinger <cg@exept.de>
parents: 4781
diff changeset
  2891
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2892
isDiskUsageInfoStillValid:infoForDirectory for:aDirectoryPath
4556
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2893
    |diskUsageRememberTime infoTimestamp infoKiloBytes infoMegaBytes|
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2894
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2895
    diskUsageRememberTime := 30.
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2896
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2897
    infoTimestamp := infoForDirectory key.
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2898
    infoKiloBytes := infoForDirectory value.
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2899
    infoMegaBytes := infoKiloBytes // 1024.
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2900
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2901
    "/ only update info every 30 seconds
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2902
    "/ plus another second for every 5 megabytes
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2903
    "/ (i.e. for 100 mb, keep info for 50seconds)
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2904
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2905
    diskUsageRememberTime := diskUsageRememberTime + (infoMegaBytes / 5). "/ another second for every megabyte
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2906
5780
0951e30d7914 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5777
diff changeset
  2907
    (Timestamp now getSeconds - infoTimestamp getSeconds) > diskUsageRememberTime ifTrue:[
4556
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2908
        ^ false
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2909
    ].
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2910
"/    (aDirectoryPath asFilename modificationTime > infoTimestamp) ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2911
"/        ^ false
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2912
"/    ].
4556
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2913
    ^ true
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2914
!
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2915
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2916
showDiskUsageInfoFor:aDirectory as:kiloBytes
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2917
    |kbString|
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2918
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2919
    kbString := UnitConverter fileSizeStringFor:(kiloBytes * 1024).
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2920
    self notify:('%2 in %1' 
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2921
                    bindWith:(aDirectory baseName "pathName" allBold) 
16109
Claus Gittinger <cg@exept.de>
parents: 16101
diff changeset
  2922
                    with:kbString "allBold").
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2923
!
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2924
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2925
startDiskUsageInfoProcess
5973
0baf6c6b685f #linkInfo now returns the info also for files that are not a symlink
Stefan Vogel <sv@exept.de>
parents: 5959
diff changeset
  2926
    |aColOfFiles selectedFile info|
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2927
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  2928
    aColOfFiles := self currentSelectedObjects.
8252
17b35ca1a9ab changed #startDiskUsageInfoProcess
Claus Gittinger <cg@exept.de>
parents: 8227
diff changeset
  2929
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2930
    (aColOfFiles isEmpty or:[self currentFilesAreInSameDirectory not]) ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2931
        ^ self
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2932
    ].
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2933
    aColOfFiles size == 1 ifTrue:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2934
        selectedFile := aColOfFiles first.
5973
0baf6c6b685f #linkInfo now returns the info also for files that are not a symlink
Stefan Vogel <sv@exept.de>
parents: 5959
diff changeset
  2935
        info := selectedFile linkInfo.
5974
509256511c65 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 5973
diff changeset
  2936
        (info notNil and:[info isSymbolicLink]) ifTrue:[
8372
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  2937
"/            self notify:'Symbolic link to: ' , (info path ? '') allBold
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2938
        ] ifFalse:[
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2939
            self startDiskUsageInfoProcessFor:selectedFile.
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2940
        ].
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2941
    ].
7563
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  2942
51f1c11ce183 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7554
diff changeset
  2943
    "Modified: / 04-12-2006 / 13:15:40 / cg"
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2944
!
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2945
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2946
startDiskUsageInfoProcessFor:selectedFile
4556
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2947
    |directory dirPath infoForDirectory infoValue|
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2948
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2949
    self showDiskUsageHolder value ifFalse:[^ self].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2950
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2951
    selectedFile isDirectory ifTrue:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2952
        directory := selectedFile
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2953
    ] ifFalse:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2954
        directory := selectedFile directory
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2955
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2956
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2957
    dirPath := directory pathName.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2958
    diskUsageInfo isNil ifTrue:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2959
        diskUsageInfo := Dictionary new.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2960
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2961
    infoForDirectory := diskUsageInfo at:dirPath ifAbsent:nil.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2962
    infoForDirectory notNil ifTrue:[
4781
08aacafe88ab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4778
diff changeset
  2963
        (self isDiskUsageInfoStillValid:infoForDirectory for:dirPath) ifTrue:[
4556
f58fa5209587 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4555
diff changeset
  2964
            infoValue := infoForDirectory value.
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2965
        ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2966
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2967
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2968
    infoValue notNil ifTrue:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2969
        self showDiskUsageInfoFor:directory as:infoValue.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2970
        ^ self.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2971
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2972
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2973
    diskUsageUpdateProcess notNil ifTrue:[
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2974
        diskUsageUpdateProcess terminate
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2975
    ].
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2976
    diskUsageUpdateProcess :=
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2977
        [
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2978
            |kiloBytes|
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2979
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2980
            self notify:('collecting disk usage of %1...' bindWith:directory baseName).
16110
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2981
            OpenError 
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2982
                handle:[:ex |
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2983
                    self notify:('cannot open %1 (%2)' 
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2984
                        bindWith:ex pathName asString 
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2985
                        with:ex description).
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2986
                ] 
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2987
                do:[
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2988
                    kiloBytes := self diskUsageInKiloBytesFor:directory.
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2989
                    kiloBytes notNil ifTrue:[
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2990
                        diskUsageInfo notNil ifTrue:[
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2991
                            diskUsageInfo at:dirPath put:(Timestamp now -> kiloBytes).
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2992
                            self showDiskUsageInfoFor:directory as:kiloBytes.
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2993
                        ].
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2994
                    ]
9116
469bd38ba4c6 changed: #startDiskUsageInfoProcessFor:
Claus Gittinger <cg@exept.de>
parents: 9105
diff changeset
  2995
                ].
16110
4347775e9885 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16109
diff changeset
  2996
4555
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2997
        ] fork.
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2998
! !
21b055fba619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4536
diff changeset
  2999
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3000
!DirectoryContentsBrowser::DirectoryContentsItem class methodsFor:'instance creation'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3001
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3002
fileName:aFilename 
3999
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3003
    | instance fileItem|
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  3004
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3005
    aFilename asString = '..' ifTrue:[
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  3006
        instance := self new.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3007
        instance fileName:aFilename.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3008
        ^ instance.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3009
    ].
3999
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3010
    fileItem := DirectoryContents contentsItemForFileName:aFilename.
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  3011
    fileItem isNil ifTrue:[^ nil].
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  3012
    ^ self forInfoItem:fileItem.
3999
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3013
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3014
    "
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3015
     DirectoryContentsItem fileName:'..'
10b79980664c get an item from dirContents
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
  3016
    "
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3017
!
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3018
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3019
forInfoItem:anItem
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3020
    | instance |
7601
3958b3fb0caa update of icons got corrupted
Claus Gittinger <cg@exept.de>
parents: 7584
diff changeset
  3021
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3022
    instance := self new.
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3023
    instance fileName:anItem fileName.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3024
    anItem isRemoteDirectory ifTrue:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3025
        instance beRemoteDirectory.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3026
    ] ifFalse:[
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3027
        instance fileInfo:anItem info.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3028
    ].
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3029
    ^ instance
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3030
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3031
81925afd23fd initial checkin
penk
parents:
diff changeset
  3032
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'accessing'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3033
3983
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3034
fileInfo:something
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3035
    fileInfo := something.
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3036
!
dd593a7482fa *** empty log message ***
penk
parents: 3980
diff changeset
  3037
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3038
fileName
81925afd23fd initial checkin
penk
parents:
diff changeset
  3039
    ^ fileName
81925afd23fd initial checkin
penk
parents:
diff changeset
  3040
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3041
81925afd23fd initial checkin
penk
parents:
diff changeset
  3042
fileName:aFilename
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3043
    "set fileName"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3044
4101
cc9cdc23b789 select & doubleClick
Claus Gittinger <cg@exept.de>
parents: 4091
diff changeset
  3045
    fileName := aFilename asFilename.
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3046
    self assert:(fileName notNil).
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3047
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3048
81925afd23fd initial checkin
penk
parents:
diff changeset
  3049
fileType
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3050
    "returns the type of the file"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3051
4345
7094ddfde188 *** empty log message ***
penk
parents: 4342
diff changeset
  3052
    fileType isNil ifTrue:[
7094ddfde188 *** empty log message ***
penk
parents: 4342
diff changeset
  3053
        fileType := ''.
7094ddfde188 *** empty log message ***
penk
parents: 4342
diff changeset
  3054
    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3055
    ^ fileType 
81925afd23fd initial checkin
penk
parents:
diff changeset
  3056
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3057
81925afd23fd initial checkin
penk
parents:
diff changeset
  3058
fileType:aType
81925afd23fd initial checkin
penk
parents:
diff changeset
  3059
    fileType := aType.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3060
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3061
81925afd23fd initial checkin
penk
parents:
diff changeset
  3062
icon
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3063
    "answer the icon displayed in the table widget; if the icon is unspecified,
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3064
     and the fileInfo is set a default icon is returned otherwise nil"
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3065
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3066
    |key|
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3067
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3068
    icon notNil ifTrue:[^ icon ].
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3069
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3070
    key := #file.   "/ default
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3071
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3072
    self isRemoteDirectory ifTrue:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3073
        key := #directory.
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3074
    ] ifFalse:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3075
        "do not fetch the fileInfo..."
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3076
        fileInfo isNil ifTrue:[ ^ nil ].
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3077
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3078
        self isDirectory ifTrue:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3079
            key := #directory.
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3080
        ] ifFalse:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3081
            self isSymbolicLink ifTrue:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3082
                key := #fileLink
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3083
            ] ifFalse:[
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3084
                key := #file
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3085
            ].
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3086
        ].
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3087
    ].
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3088
    ^ MIMETypeIconLibrary iconForKey:key.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3089
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3090
81925afd23fd initial checkin
penk
parents:
diff changeset
  3091
icon:anIcon
81925afd23fd initial checkin
penk
parents:
diff changeset
  3092
81925afd23fd initial checkin
penk
parents:
diff changeset
  3093
    icon := anIcon.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3094
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3095
81925afd23fd initial checkin
penk
parents:
diff changeset
  3096
iconKey
81925afd23fd initial checkin
penk
parents:
diff changeset
  3097
    iconKey isNil ifTrue:[
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3098
        self isRemoteDirectory ifTrue:[
14186
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  3099
            iconKey := MIMETypeIconLibrary iconKeyForRemoteDirectory:fileName.
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3100
        ] ifFalse:[
14186
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  3101
            iconKey := MIMETypeIconLibrary iconKeyForFile:fileName.
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3102
        ]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3103
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3104
    ^ iconKey
81925afd23fd initial checkin
penk
parents:
diff changeset
  3105
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3106
9323
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3107
iconOrNil
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3108
    "answer the icon or nil if unspecifed"
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3109
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3110
    ^ icon
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3111
!
3c5386d9456a changed:
ca
parents: 9318
diff changeset
  3112
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3113
isDirectory
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3114
    self isRemoteDirectory ifTrue:[^ true].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3115
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3116
    self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3117
    fileInfo isNil ifTrue:[^ false].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3118
    ^ fileInfo isDirectory
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3119
!
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3120
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3121
isSymbolicLink
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3122
    self isRemoteDirectory ifTrue:[^ false].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3123
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3124
    self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3125
    fileInfo isNil ifTrue:[^ false].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3126
    ^ fileInfo isSymbolicLink
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3127
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3128
81925afd23fd initial checkin
penk
parents:
diff changeset
  3129
lastButOneSuffix
81925afd23fd initial checkin
penk
parents:
diff changeset
  3130
    "returns the suffix of the file
81925afd23fd initial checkin
penk
parents:
diff changeset
  3131
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
  3132
81925afd23fd initial checkin
penk
parents:
diff changeset
  3133
    ^ self suffixes at:2
81925afd23fd initial checkin
penk
parents:
diff changeset
  3134
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3135
81925afd23fd initial checkin
penk
parents:
diff changeset
  3136
lastSuffix
81925afd23fd initial checkin
penk
parents:
diff changeset
  3137
    "returns the suffix of the file
81925afd23fd initial checkin
penk
parents:
diff changeset
  3138
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
  3139
81925afd23fd initial checkin
penk
parents:
diff changeset
  3140
    ^ self suffixes at:1
81925afd23fd initial checkin
penk
parents:
diff changeset
  3141
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3142
4988
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3143
linkTargetIsDirectory
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3144
    self isSymbolicLink ifFalse:[^ false].
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3145
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3146
    ^ fileName info isDirectory
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3147
!
34de57749932 correctly handle symlinks
Claus Gittinger <cg@exept.de>
parents: 4978
diff changeset
  3148
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3149
mimeType
81925afd23fd initial checkin
penk
parents:
diff changeset
  3150
    mimeType isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3151
        mimeType := MIMETypes mimeTypeForFilename:(self fileName).
81925afd23fd initial checkin
penk
parents:
diff changeset
  3152
        mimeType isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3153
            mimeType := #unknown
81925afd23fd initial checkin
penk
parents:
diff changeset
  3154
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  3155
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3156
    ^ mimeType
81925afd23fd initial checkin
penk
parents:
diff changeset
  3157
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3158
81925afd23fd initial checkin
penk
parents:
diff changeset
  3159
preview
81925afd23fd initial checkin
penk
parents:
diff changeset
  3160
81925afd23fd initial checkin
penk
parents:
diff changeset
  3161
    ^ preview
81925afd23fd initial checkin
penk
parents:
diff changeset
  3162
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3163
81925afd23fd initial checkin
penk
parents:
diff changeset
  3164
preview:aLabel
81925afd23fd initial checkin
penk
parents:
diff changeset
  3165
81925afd23fd initial checkin
penk
parents:
diff changeset
  3166
    preview := aLabel.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3167
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3168
81925afd23fd initial checkin
penk
parents:
diff changeset
  3169
suffix
81925afd23fd initial checkin
penk
parents:
diff changeset
  3170
    "returns the suffix of the file
81925afd23fd initial checkin
penk
parents:
diff changeset
  3171
    "
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  3172
    self isDirectory ifTrue:[^''].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3173
    suffix isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3174
        (OperatingSystem isUNIXlike and:[(self baseName at:1) == $.]) ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3175
            suffix := ''.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3176
        ] ifFalse:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3177
            suffix := fileName suffix.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3178
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  3179
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3180
    ^ suffix
81925afd23fd initial checkin
penk
parents:
diff changeset
  3181
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3182
81925afd23fd initial checkin
penk
parents:
diff changeset
  3183
suffixes
81925afd23fd initial checkin
penk
parents:
diff changeset
  3184
81925afd23fd initial checkin
penk
parents:
diff changeset
  3185
    | lastSuff lastButOneSuff|
81925afd23fd initial checkin
penk
parents:
diff changeset
  3186
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3187
    (fileName name occurrencesOf:$.) <= 1 ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3188
        ^ Array with:(self suffix) with:nil.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3189
    ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3190
    (fileName baseName occurrencesOf:$.) <= 1 ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3191
        ^ Array with:(self suffix) with:nil.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3192
    ].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3193
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3194
    ((lastSuff := self suffix) isEmpty) ifTrue:[  
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3195
        lastSuff := nil.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3196
    ] ifFalse:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3197
        lastSuff := lastSuff asLowercase. 
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3198
    ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3199
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3200
    ((lastButOneSuff := fileName withoutSuffix suffix) isEmpty) ifTrue:[  
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3201
        lastButOneSuff := nil.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3202
    ] ifFalse:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3203
        lastButOneSuff := lastButOneSuff asLowercase. 
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3204
    ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3205
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3206
    (lastSuff notNil and:[lastButOneSuff notNil]) ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3207
        (lastSuff = 'bak' or:[lastSuff = 'sav']) ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3208
            lastSuff := lastButOneSuff.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3209
            lastButOneSuff := nil.
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3210
        ]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3211
    ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3212
    ^ Array with:lastSuff with:lastButOneSuff
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3213
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3214
81925afd23fd initial checkin
penk
parents:
diff changeset
  3215
type
81925afd23fd initial checkin
penk
parents:
diff changeset
  3216
    "returns the type of the file
81925afd23fd initial checkin
penk
parents:
diff changeset
  3217
    "
81925afd23fd initial checkin
penk
parents:
diff changeset
  3218
    ^ self valueAt:#type
81925afd23fd initial checkin
penk
parents:
diff changeset
  3219
81925afd23fd initial checkin
penk
parents:
diff changeset
  3220
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3221
81925afd23fd initial checkin
penk
parents:
diff changeset
  3222
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'actions'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3223
81925afd23fd initial checkin
penk
parents:
diff changeset
  3224
resetImageFile
81925afd23fd initial checkin
penk
parents:
diff changeset
  3225
    " if the image preview extent is changed the icon will set to nil to force the update task to reload the image "
81925afd23fd initial checkin
penk
parents:
diff changeset
  3226
13717
00aa1ccdc596 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12826
diff changeset
  3227
    (mimeType notNil and:[ mimeType isImageType]) ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3228
        preview := nil
81925afd23fd initial checkin
penk
parents:
diff changeset
  3229
    ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  3230
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3231
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3232
resetItem
16856
838e11dd3ff8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16559
diff changeset
  3233
    " don't know what someone else is doing with the file - read all item properties new "
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3234
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3235
    fileInfo := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3236
    icon := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3237
    fileType := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3238
    preview := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3239
    owner := nil.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3240
    group := nil.
4073
ed730823f751 *** empty log message ***
penk
parents: 4072
diff changeset
  3241
    iconKey := nil.
ed730823f751 *** empty log message ***
penk
parents: 4072
diff changeset
  3242
    mimeTypeForContents := nil.
ed730823f751 *** empty log message ***
penk
parents: 4072
diff changeset
  3243
    mimeType := nil.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3244
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3245
81925afd23fd initial checkin
penk
parents:
diff changeset
  3246
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'change queries'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3247
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3248
hasBeenModified
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3249
    "check if item modification time has changed"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3250
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3251
    |info|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3252
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3253
    self isRemoteDirectory ifTrue:[^ false].
8496
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  3254
    "/ root directories are not verified
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  3255
    fileName isRootDirectory ifTrue:[ ^ false ].
de7a956ce23c test for isRootDirectory
ca
parents: 8407
diff changeset
  3256
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3257
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3258
    fileInfo isNil ifTrue:[
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3259
        "first time of invokation "
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3260
        info := self getFileInfo.
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3261
        info isNil ifTrue:[ ^ false].
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3262
        ^ true
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3263
    ].
8372
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  3264
    fileInfo isSymbolicLink ifTrue:[
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  3265
        "/ symbolic links are not verified
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  3266
        ^ false
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  3267
    ].
c83a3ec5e7e3 handling of symbolic links
ca
parents: 8255
diff changeset
  3268
5475
b14874ad8460 modification time only in modificationCycle
penk
parents: 5474
diff changeset
  3269
    self modificationTime  ~= fileName modificationTime ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3270
        ^ true
81925afd23fd initial checkin
penk
parents:
diff changeset
  3271
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3272
    ^ false
81925afd23fd initial checkin
penk
parents:
diff changeset
  3273
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3274
6188
c4def7335c1a category change
Claus Gittinger <cg@exept.de>
parents: 6141
diff changeset
  3275
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'comparing'!
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3276
5010
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3277
= anItem
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3278
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3279
"/    Transcript showCR:(anItem species == self species).
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3280
    anItem species == self species ifFalse:[  ^ false].
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3281
    anItem isNil ifTrue:[ ^ false].
27aa6fa93dcd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4998
diff changeset
  3282
    ^ (self fileName = anItem fileName)
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3283
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3284
81925afd23fd initial checkin
penk
parents:
diff changeset
  3285
hash
81925afd23fd initial checkin
penk
parents:
diff changeset
  3286
    ^ fileName hash
81925afd23fd initial checkin
penk
parents:
diff changeset
  3287
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3288
81925afd23fd initial checkin
penk
parents:
diff changeset
  3289
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'presentation'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3290
81925afd23fd initial checkin
penk
parents:
diff changeset
  3291
baseName
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3292
    "returns the baseName of the file"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3293
10559
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3294
    baseName isNil ifTrue:[
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3295
        baseName := fileName baseName.
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3296
        fileName isDirectory ifTrue:[
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3297
            baseName := baseName allBold.
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3298
        ].
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3299
    ].
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3300
    ^ baseName
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3301
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3302
    "Modified: / 09-08-2011 / 14:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3303
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3304
81925afd23fd initial checkin
penk
parents:
diff changeset
  3305
baseNameWithOutSuffix
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3306
    "returns the baseName of the file"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3307
10559
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3308
    | baseNameWithOutSuffix |
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3309
4017
30a98e72a9a0 *** empty log message ***
penk
parents: 4014
diff changeset
  3310
    self isDirectory ifTrue:[^ self baseName].
10559
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3311
    baseNameWithOutSuffix := self baseName asFilename withoutSuffix asString.
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3312
    (baseNameWithOutSuffix isEmpty or:[baseNameWithOutSuffix = '.']) ifTrue:[
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3313
        ^ self baseName
81925afd23fd initial checkin
penk
parents:
diff changeset
  3314
    ].
10559
e36369957676 Directories are displayed in bold font for easier navigation
vrany
parents: 10300
diff changeset
  3315
    ^ baseNameWithOutSuffix.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3316
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3317
81925afd23fd initial checkin
penk
parents:
diff changeset
  3318
date
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3319
    "returns the modTimeString"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3320
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3321
    | modTime |
81925afd23fd initial checkin
penk
parents:
diff changeset
  3322
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3323
    modTime := self modificationTime.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3324
    modTime isNil ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3325
        ^ '???'
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3326
    ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3327
    ^ modTime asDate printString.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3328
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3329
81925afd23fd initial checkin
penk
parents:
diff changeset
  3330
fileInfoString
81925afd23fd initial checkin
penk
parents:
diff changeset
  3331
    "get stat info on selected file - return a string which can be
81925afd23fd initial checkin
penk
parents:
diff changeset
  3332
     shown in a box"
81925afd23fd initial checkin
penk
parents:
diff changeset
  3333
81925afd23fd initial checkin
penk
parents:
diff changeset
  3334
    | afileType |
81925afd23fd initial checkin
penk
parents:
diff changeset
  3335
81925afd23fd initial checkin
penk
parents:
diff changeset
  3336
    fileName isNil ifTrue:[^ nil].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3337
    afileType := self fileType.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3338
    afileType isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3339
        ^ ''.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3340
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3341
    ^ afileType
81925afd23fd initial checkin
penk
parents:
diff changeset
  3342
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3343
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3344
fileSize
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3345
    "returns the fileSize"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3346
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3347
    self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3348
    fileInfo isNil ifTrue:[^ nil].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3349
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3350
    ^ fileInfo fileSize
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3351
!
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3352
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3353
group
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3354
    "returns the printable group"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3355
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3356
    |gid|
81925afd23fd initial checkin
penk
parents:
diff changeset
  3357
81925afd23fd initial checkin
penk
parents:
diff changeset
  3358
    group isNil ifTrue:[
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3359
        self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3360
        fileInfo isNil ifTrue:[^ '???'].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3361
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3362
        gid := fileInfo gid.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3363
        (LastGIDToGroupNameMapping notNil and:[gid == LastGIDToGroupNameMapping key]) ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3364
            group := LastGIDToGroupNameMapping value
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3365
        ] ifFalse:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3366
            group := OperatingSystem getGroupNameFromID:gid.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3367
            LastGIDToGroupNameMapping := gid -> group.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3368
        ]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3369
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3370
    ^ group
81925afd23fd initial checkin
penk
parents:
diff changeset
  3371
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3372
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3373
inodeNumber
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3374
    "returns the inode number"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3375
4976
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3376
    self getFileInfo.
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3377
    fileInfo isNil ifTrue:[^ nil].
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3378
    ^ fileInfo id
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3379
!
86594f3f8a9b refactoring column visibility holder of DirectoryContentsBrowser
penk
parents: 4972
diff changeset
  3380
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3381
modificationTime
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3382
    "returns the absolute time of modification"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3383
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3384
    self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3385
    fileInfo isNil ifTrue:[^ nil].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3386
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3387
    ^ fileInfo modificationTime
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3388
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3389
81925afd23fd initial checkin
penk
parents:
diff changeset
  3390
owner
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3391
    "returns the printable owner"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3392
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3393
    |uid|
81925afd23fd initial checkin
penk
parents:
diff changeset
  3394
81925afd23fd initial checkin
penk
parents:
diff changeset
  3395
    owner isNil ifTrue:[
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3396
        self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3397
        fileInfo isNil ifTrue:[^ '???'].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3398
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3399
        uid := fileInfo uid.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3400
        (LastUIDToUserNameMapping notNil and:[uid == LastUIDToUserNameMapping key]) ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3401
            owner := LastUIDToUserNameMapping value
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3402
        ] ifFalse:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3403
            owner := OperatingSystem getUserNameFromID:uid.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3404
            LastUIDToUserNameMapping := uid -> owner.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3405
        ]
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3406
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3407
    ^ owner
81925afd23fd initial checkin
penk
parents:
diff changeset
  3408
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3409
81925afd23fd initial checkin
penk
parents:
diff changeset
  3410
permissions
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3411
    "returns the permissions as printable string"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3412
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3413
    |mode permissionString|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3414
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3415
    self getFileInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3416
    fileInfo isNil ifTrue:[^ '???'.].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3417
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3418
    mode := fileInfo mode.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3419
    permissionString := String new:9 withAll:$-.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3420
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3421
    1 to:9 by:3 do:[:i|
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3422
        (mode bitAt:i    ) == 1 ifTrue:[permissionString at:10 - i put:$x].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3423
        (mode bitAt:i + 1) == 1 ifTrue:[permissionString at:9  - i put:$w].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3424
        (mode bitAt:i + 2) == 1 ifTrue:[permissionString at:8  - i put:$r].
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3425
    ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3426
    ^ permissionString
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3427
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3428
4970
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3429
sizeInBytesString
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3430
    |locSize|
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3431
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3432
    locSize := self fileSize.
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3433
    locSize isNil ifTrue:[^ '???'].
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3434
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3435
    ^ locSize printString "/ leftPaddedTo:8.
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3436
!
726e48d5a9bc comment
Claus Gittinger <cg@exept.de>
parents: 4960
diff changeset
  3437
5312
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3438
sizeInKiloBytesString
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3439
    |locSize|
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3440
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3441
    locSize := self fileSize.
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3442
    locSize isNil ifTrue:[^ '???'].
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3443
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3444
    (locSize \\ 1024) == 0 ifTrue:[
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3445
        ^ (locSize // 1024) printString , '  '
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3446
    ].
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3447
    ^ ((locSize / 1024) asFixedPoint:1) printString
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3448
!
63b275aa2c69 size in Kb
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  3449
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3450
sizeString
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3451
    "returns the size of the file"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3452
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3453
    | unitString locSize|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3454
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3455
    locSize := self fileSize.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3456
    locSize isNil ifTrue:[^ '???'].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3457
4402
c13678e65aa8 sizeCol is aligned on the decimalPoint
Claus Gittinger <cg@exept.de>
parents: 4376
diff changeset
  3458
    unitString := UnitConverter fileSizeStringFor:locSize.
c13678e65aa8 sizeCol is aligned on the decimalPoint
Claus Gittinger <cg@exept.de>
parents: 4376
diff changeset
  3459
    ^ unitString withoutSeparators "/ leftPaddedTo:8.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3460
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3461
81925afd23fd initial checkin
penk
parents:
diff changeset
  3462
timeAndDate
5994
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3463
    "returns the time- and date string"
7ba2a06e65f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5974
diff changeset
  3464
5338
393edc0a849a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5334
diff changeset
  3465
    |resources format modTime date|
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3466
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3467
    modTime := self modificationTime.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3468
    modTime isNil ifTrue:[
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3469
        ^  '???'
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3470
    ].
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3471
14186
2ed966dc0816 Do not refer to FileBrowser methods
Stefan Vogel <sv@exept.de>
parents: 13797
diff changeset
  3472
    resources := AbstractFileBrowser classResources.
5338
393edc0a849a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5334
diff changeset
  3473
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3474
"/    format := '%(year)-%(mon)-%(day) %h:%m:%s'.
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3475
    date := modTime asDate.
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3476
    date = Date today ifTrue:[
5338
393edc0a849a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5334
diff changeset
  3477
        format := (resources string:'Today') , ' %(yearOrTime)'
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3478
    ] ifFalse:[
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3479
        false "date = Date yesterday" ifTrue:[
5338
393edc0a849a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5334
diff changeset
  3480
            format := (resources string:'Yesterday') , ' %(yearOrTime)'
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3481
        ] ifFalse:[
8845
471945efed1c Smalltalk language -> UserPreferences current language
Claus Gittinger <cg@exept.de>
parents: 8715
diff changeset
  3482
            UserPreferences current languageTerritory == #us ifTrue:[
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3483
                format := '%(ShortMonthName), %(dayPadded) %(yearOrTime)'.
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3484
            ] ifFalse:[
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3485
                format :='%(day)-%(ShortMonthName) %(yearOrTime)'.
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3486
            ].
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3487
        ].
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3488
    ].
4938
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3489
c6d812095119 printFormat
Claus Gittinger <cg@exept.de>
parents: 4931
diff changeset
  3490
    ^ modTime printStringFormat:format.
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3491
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3492
5716
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3493
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'printing'!
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3494
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3495
printOn:aStream
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3496
    super printOn:aStream.
8003
7af5b26e1723 Define #printOn: for each method defining #printString
Stefan Vogel <sv@exept.de>
parents: 7963
diff changeset
  3497
    aStream 
7af5b26e1723 Define #printOn: for each method defining #printString
Stefan Vogel <sv@exept.de>
parents: 7963
diff changeset
  3498
        nextPut:$[;
7af5b26e1723 Define #printOn: for each method defining #printString
Stefan Vogel <sv@exept.de>
parents: 7963
diff changeset
  3499
        nextPutAll:fileName asString;
7af5b26e1723 Define #printOn: for each method defining #printString
Stefan Vogel <sv@exept.de>
parents: 7963
diff changeset
  3500
        nextPut:$]. 
5716
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3501
! !
66d5e36a16d8 update if fileItem is modified
penk
parents: 5676
diff changeset
  3502
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3503
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'private'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3504
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3505
getFileInfo
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3506
    fileInfo isNil ifTrue:[
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3507
        self isRemoteDirectory ifTrue:[
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3508
            "/ do not access, to avoid automount
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3509
        ] ifFalse:[
3967
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3510
            fileInfo := fileName linkInfo.
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3511
        ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3512
    ].
09ec3349210c instable state
penk
parents: 3964
diff changeset
  3513
    ^ fileInfo
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3514
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3515
81925afd23fd initial checkin
penk
parents:
diff changeset
  3516
!DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'queries'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3517
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3518
beRemoteDirectory
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3519
    fileType := #remoteDirectory.
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3520
!
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3521
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3522
exists
81925afd23fd initial checkin
penk
parents:
diff changeset
  3523
    ^ fileName exists 
81925afd23fd initial checkin
penk
parents:
diff changeset
  3524
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3525
81925afd23fd initial checkin
penk
parents:
diff changeset
  3526
hasMimeType
81925afd23fd initial checkin
penk
parents:
diff changeset
  3527
81925afd23fd initial checkin
penk
parents:
diff changeset
  3528
    ^ (self mimeType ~= #unknown)
81925afd23fd initial checkin
penk
parents:
diff changeset
  3529
!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3530
3906
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3531
isRemoteDirectory
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3532
    ^ fileType == #remoteDirectory
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3533
!
8a76cb4f5884 next stage
penk
parents: 3888
diff changeset
  3534
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3535
mimeTypeForContents
81925afd23fd initial checkin
penk
parents:
diff changeset
  3536
81925afd23fd initial checkin
penk
parents:
diff changeset
  3537
    mimeTypeForContents isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3538
        mimeTypeForContents := MIMETypes mimeTypeOfContents:(self fileName).
81925afd23fd initial checkin
penk
parents:
diff changeset
  3539
        mimeTypeForContents isNil ifTrue:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3540
            mimeTypeForContents := #unknown
81925afd23fd initial checkin
penk
parents:
diff changeset
  3541
        ] ifFalse:[
81925afd23fd initial checkin
penk
parents:
diff changeset
  3542
            " set mimeType to mimeType of contents if a better mimeType is found "
81925afd23fd initial checkin
penk
parents:
diff changeset
  3543
            mimeType := mimeTypeForContents.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3544
            iconKey := mimeTypeForContents.
81925afd23fd initial checkin
penk
parents:
diff changeset
  3545
        ]
81925afd23fd initial checkin
penk
parents:
diff changeset
  3546
    ].
81925afd23fd initial checkin
penk
parents:
diff changeset
  3547
    ^ mimeTypeForContents
81925afd23fd initial checkin
penk
parents:
diff changeset
  3548
! !
81925afd23fd initial checkin
penk
parents:
diff changeset
  3549
81925afd23fd initial checkin
penk
parents:
diff changeset
  3550
!DirectoryContentsBrowser class methodsFor:'documentation'!
81925afd23fd initial checkin
penk
parents:
diff changeset
  3551
81925afd23fd initial checkin
penk
parents:
diff changeset
  3552
version
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
  3553
    ^ '$Header$'
8845
471945efed1c Smalltalk language -> UserPreferences current language
Claus Gittinger <cg@exept.de>
parents: 8715
diff changeset
  3554
!
471945efed1c Smalltalk language -> UserPreferences current language
Claus Gittinger <cg@exept.de>
parents: 8715
diff changeset
  3555
471945efed1c Smalltalk language -> UserPreferences current language
Claus Gittinger <cg@exept.de>
parents: 8715
diff changeset
  3556
version_CVS
15701
feadfb7a9468 class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 15617
diff changeset
  3557
    ^ '$Header$'
3887
81925afd23fd initial checkin
penk
parents:
diff changeset
  3558
! !
12093
900b133ef74c class: DirectoryContentsBrowser
Claus Gittinger <cg@exept.de>
parents: 12061
diff changeset
  3559