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