FileSelectionItem.st
author Claus Gittinger <cg@exept.de>
Wed, 24 Sep 1997 06:10:11 +0200
changeset 535 9a237ca905d2
parent 531 e96d35bccd61
child 569 2a1014d6697c
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
486
d981d312947d intitial checkin
ca
parents:
diff changeset
     1
"
489
45b03c9e0277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 486
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
486
d981d312947d intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
d981d312947d intitial checkin
ca
parents:
diff changeset
     4
d981d312947d intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
d981d312947d intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
d981d312947d intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
d981d312947d intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
d981d312947d intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
d981d312947d intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
d981d312947d intitial checkin
ca
parents:
diff changeset
    11
"
d981d312947d intitial checkin
ca
parents:
diff changeset
    12
d981d312947d intitial checkin
ca
parents:
diff changeset
    13
d981d312947d intitial checkin
ca
parents:
diff changeset
    14
d981d312947d intitial checkin
ca
parents:
diff changeset
    15
TreeItem subclass:#FileSelectionItem
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
    16
	instanceVariableNames:'matchAction isDirectory imageType invalidate'
486
d981d312947d intitial checkin
ca
parents:
diff changeset
    17
	classVariableNames:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    18
	poolDictionaries:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    19
	category:'Interface-Support'
d981d312947d intitial checkin
ca
parents:
diff changeset
    20
!
d981d312947d intitial checkin
ca
parents:
diff changeset
    21
d981d312947d intitial checkin
ca
parents:
diff changeset
    22
FileSelectionItem subclass:#Directory
d981d312947d intitial checkin
ca
parents:
diff changeset
    23
	instanceVariableNames:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    24
	classVariableNames:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    25
	poolDictionaries:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    26
	privateIn:FileSelectionItem
d981d312947d intitial checkin
ca
parents:
diff changeset
    27
!
d981d312947d intitial checkin
ca
parents:
diff changeset
    28
d981d312947d intitial checkin
ca
parents:
diff changeset
    29
FileSelectionItem subclass:#File
d981d312947d intitial checkin
ca
parents:
diff changeset
    30
	instanceVariableNames:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    31
	classVariableNames:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    32
	poolDictionaries:''
d981d312947d intitial checkin
ca
parents:
diff changeset
    33
	privateIn:FileSelectionItem
d981d312947d intitial checkin
ca
parents:
diff changeset
    34
!
d981d312947d intitial checkin
ca
parents:
diff changeset
    35
d981d312947d intitial checkin
ca
parents:
diff changeset
    36
!FileSelectionItem class methodsFor:'documentation'!
d981d312947d intitial checkin
ca
parents:
diff changeset
    37
d981d312947d intitial checkin
ca
parents:
diff changeset
    38
copyright
d981d312947d intitial checkin
ca
parents:
diff changeset
    39
"
489
45b03c9e0277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 486
diff changeset
    40
 COPYRIGHT (c) 1997 by eXept Software AG
486
d981d312947d intitial checkin
ca
parents:
diff changeset
    41
              All Rights Reserved
d981d312947d intitial checkin
ca
parents:
diff changeset
    42
d981d312947d intitial checkin
ca
parents:
diff changeset
    43
 This software is furnished under a license and may be used
d981d312947d intitial checkin
ca
parents:
diff changeset
    44
 only in accordance with the terms of that license and with the
d981d312947d intitial checkin
ca
parents:
diff changeset
    45
 inclusion of the above copyright notice.   This software may not
d981d312947d intitial checkin
ca
parents:
diff changeset
    46
 be provided or otherwise made available to, or used by, any
d981d312947d intitial checkin
ca
parents:
diff changeset
    47
 other person.  No title to or ownership of the software is
d981d312947d intitial checkin
ca
parents:
diff changeset
    48
 hereby transferred.
d981d312947d intitial checkin
ca
parents:
diff changeset
    49
"
d981d312947d intitial checkin
ca
parents:
diff changeset
    50
d981d312947d intitial checkin
ca
parents:
diff changeset
    51
d981d312947d intitial checkin
ca
parents:
diff changeset
    52
!
d981d312947d intitial checkin
ca
parents:
diff changeset
    53
d981d312947d intitial checkin
ca
parents:
diff changeset
    54
documentation
d981d312947d intitial checkin
ca
parents:
diff changeset
    55
"
d981d312947d intitial checkin
ca
parents:
diff changeset
    56
    class to build up file trees like structures. You can define your own
d981d312947d intitial checkin
ca
parents:
diff changeset
    57
    icons and filter. Redefinging the icons you have to look especially for
d981d312947d intitial checkin
ca
parents:
diff changeset
    58
    this methods:
d981d312947d intitial checkin
ca
parents:
diff changeset
    59
d981d312947d intitial checkin
ca
parents:
diff changeset
    60
        class method:           iconsOn:        : returns a list of icons used
d981d312947d intitial checkin
ca
parents:
diff changeset
    61
d981d312947d intitial checkin
ca
parents:
diff changeset
    62
        instance method:        updateImageType : set default key into icon list
d981d312947d intitial checkin
ca
parents:
diff changeset
    63
                                                  for the image associated with node
d981d312947d intitial checkin
ca
parents:
diff changeset
    64
d981d312947d intitial checkin
ca
parents:
diff changeset
    65
                                imageUnselected : image or key into icon list
d981d312947d intitial checkin
ca
parents:
diff changeset
    66
                                                  used for unselected mode
d981d312947d intitial checkin
ca
parents:
diff changeset
    67
d981d312947d intitial checkin
ca
parents:
diff changeset
    68
                                imageSelected   : image or key into icon directory
d981d312947d intitial checkin
ca
parents:
diff changeset
    69
                                                  used for selected mode
d981d312947d intitial checkin
ca
parents:
diff changeset
    70
d981d312947d intitial checkin
ca
parents:
diff changeset
    71
    Especially suited for use with FileSelectionTree.
d981d312947d intitial checkin
ca
parents:
diff changeset
    72
d981d312947d intitial checkin
ca
parents:
diff changeset
    73
    [Author:]
d981d312947d intitial checkin
ca
parents:
diff changeset
    74
        Claus Atzkern
d981d312947d intitial checkin
ca
parents:
diff changeset
    75
d981d312947d intitial checkin
ca
parents:
diff changeset
    76
    [See also:]
d981d312947d intitial checkin
ca
parents:
diff changeset
    77
        TreeItem
d981d312947d intitial checkin
ca
parents:
diff changeset
    78
        FileSelectionTree
d981d312947d intitial checkin
ca
parents:
diff changeset
    79
"
d981d312947d intitial checkin
ca
parents:
diff changeset
    80
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
    81
d981d312947d intitial checkin
ca
parents:
diff changeset
    82
!FileSelectionItem class methodsFor:'instance creation'!
d981d312947d intitial checkin
ca
parents:
diff changeset
    83
d981d312947d intitial checkin
ca
parents:
diff changeset
    84
pathName:aPath
d981d312947d intitial checkin
ca
parents:
diff changeset
    85
    "create a new node entry associated with the full pathname, aPath
d981d312947d intitial checkin
ca
parents:
diff changeset
    86
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
    87
    |node|
d981d312947d intitial checkin
ca
parents:
diff changeset
    88
d981d312947d intitial checkin
ca
parents:
diff changeset
    89
    node := self new.
d981d312947d intitial checkin
ca
parents:
diff changeset
    90
    node pathName:aPath.
d981d312947d intitial checkin
ca
parents:
diff changeset
    91
  ^ node
d981d312947d intitial checkin
ca
parents:
diff changeset
    92
d981d312947d intitial checkin
ca
parents:
diff changeset
    93
d981d312947d intitial checkin
ca
parents:
diff changeset
    94
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
    95
d981d312947d intitial checkin
ca
parents:
diff changeset
    96
!FileSelectionItem class methodsFor:'accessing class'!
d981d312947d intitial checkin
ca
parents:
diff changeset
    97
d981d312947d intitial checkin
ca
parents:
diff changeset
    98
directoriesOnly
d981d312947d intitial checkin
ca
parents:
diff changeset
    99
    ^ Directory
d981d312947d intitial checkin
ca
parents:
diff changeset
   100
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   101
d981d312947d intitial checkin
ca
parents:
diff changeset
   102
filesOnly
d981d312947d intitial checkin
ca
parents:
diff changeset
   103
    ^ File
d981d312947d intitial checkin
ca
parents:
diff changeset
   104
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   105
d981d312947d intitial checkin
ca
parents:
diff changeset
   106
!FileSelectionItem class methodsFor:'converting'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   107
d981d312947d intitial checkin
ca
parents:
diff changeset
   108
asFilename:aPathname
d981d312947d intitial checkin
ca
parents:
diff changeset
   109
    "convert pathname to an absolute path
d981d312947d intitial checkin
ca
parents:
diff changeset
   110
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   111
    |path|
d981d312947d intitial checkin
ca
parents:
diff changeset
   112
d981d312947d intitial checkin
ca
parents:
diff changeset
   113
    path := aPathname asString.
d981d312947d intitial checkin
ca
parents:
diff changeset
   114
d981d312947d intitial checkin
ca
parents:
diff changeset
   115
    (path size > 1 and:[path endsWith:(Filename separator)]) ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   116
        ^ (path copyWithout:1) asFilename.
d981d312947d intitial checkin
ca
parents:
diff changeset
   117
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   118
  ^ aPathname asFilename
d981d312947d intitial checkin
ca
parents:
diff changeset
   119
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   120
d981d312947d intitial checkin
ca
parents:
diff changeset
   121
!FileSelectionItem class methodsFor:'defaults'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   122
d981d312947d intitial checkin
ca
parents:
diff changeset
   123
iconsOn:aDevice
d981d312947d intitial checkin
ca
parents:
diff changeset
   124
    "returns an IdentityDictionary containing a list of images and keys used
d981d312947d intitial checkin
ca
parents:
diff changeset
   125
     by any file entry.
d981d312947d intitial checkin
ca
parents:
diff changeset
   126
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   127
    |icons image|
d981d312947d intitial checkin
ca
parents:
diff changeset
   128
d981d312947d intitial checkin
ca
parents:
diff changeset
   129
    icons := IdentityDictionary new.
d981d312947d intitial checkin
ca
parents:
diff changeset
   130
d981d312947d intitial checkin
ca
parents:
diff changeset
   131
    #(
d981d312947d intitial checkin
ca
parents:
diff changeset
   132
        (#directory       'tiny_yellow_dir.xpm')
d981d312947d intitial checkin
ca
parents:
diff changeset
   133
        (#directoryOpened 'tiny_yellow_dir_open.xpm')
d981d312947d intitial checkin
ca
parents:
diff changeset
   134
        (#directoryLocked 'tiny_yellow_dir_locked.xpm')
d981d312947d intitial checkin
ca
parents:
diff changeset
   135
        (#directoryLink   'tiny_yellow_dir_link.xpm'  )
d981d312947d intitial checkin
ca
parents:
diff changeset
   136
d981d312947d intitial checkin
ca
parents:
diff changeset
   137
        (#file            'tiny_file_plain.xpm'       )
d981d312947d intitial checkin
ca
parents:
diff changeset
   138
        (#fileLink        'tiny_file_link.xpm'        )
d981d312947d intitial checkin
ca
parents:
diff changeset
   139
        (#fileLocked      'tiny_file_lock.xpm'        )
d981d312947d intitial checkin
ca
parents:
diff changeset
   140
        (#imageFile       'tiny_file_pix.xpm'         )
d981d312947d intitial checkin
ca
parents:
diff changeset
   141
d981d312947d intitial checkin
ca
parents:
diff changeset
   142
     ) do:[:el |
d981d312947d intitial checkin
ca
parents:
diff changeset
   143
        image := Image fromFile:('xpmBitmaps/document_images/', el last ).
531
e96d35bccd61 care for non-existent image files
Claus Gittinger <cg@exept.de>
parents: 493
diff changeset
   144
	image notNil ifTrue:[
e96d35bccd61 care for non-existent image files
Claus Gittinger <cg@exept.de>
parents: 493
diff changeset
   145
            icons at:(el first) put:(image onDevice:aDevice).
e96d35bccd61 care for non-existent image files
Claus Gittinger <cg@exept.de>
parents: 493
diff changeset
   146
	]
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   147
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   148
  ^ icons
d981d312947d intitial checkin
ca
parents:
diff changeset
   149
d981d312947d intitial checkin
ca
parents:
diff changeset
   150
d981d312947d intitial checkin
ca
parents:
diff changeset
   151
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   152
d981d312947d intitial checkin
ca
parents:
diff changeset
   153
!FileSelectionItem methodsFor:'accessing'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   154
d981d312947d intitial checkin
ca
parents:
diff changeset
   155
children
d981d312947d intitial checkin
ca
parents:
diff changeset
   156
    "get's list of children
d981d312947d intitial checkin
ca
parents:
diff changeset
   157
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   158
    invalidate ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   159
        isDirectory ifTrue:[self updateChildren].
d981d312947d intitial checkin
ca
parents:
diff changeset
   160
        invalidate := false
d981d312947d intitial checkin
ca
parents:
diff changeset
   161
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   162
  ^ children
d981d312947d intitial checkin
ca
parents:
diff changeset
   163
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   164
d981d312947d intitial checkin
ca
parents:
diff changeset
   165
pathName
d981d312947d intitial checkin
ca
parents:
diff changeset
   166
    "returns full pathname of node
d981d312947d intitial checkin
ca
parents:
diff changeset
   167
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   168
  ^ contents asString
d981d312947d intitial checkin
ca
parents:
diff changeset
   169
d981d312947d intitial checkin
ca
parents:
diff changeset
   170
d981d312947d intitial checkin
ca
parents:
diff changeset
   171
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   172
d981d312947d intitial checkin
ca
parents:
diff changeset
   173
pathName:aPathname
d981d312947d intitial checkin
ca
parents:
diff changeset
   174
    "initialze attributes associated with the full pathname, aPathname
d981d312947d intitial checkin
ca
parents:
diff changeset
   175
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   176
    contents := self class asFilename:aPathname.
d981d312947d intitial checkin
ca
parents:
diff changeset
   177
    name     := contents baseName.
d981d312947d intitial checkin
ca
parents:
diff changeset
   178
    isDirectory := contents isDirectory.
d981d312947d intitial checkin
ca
parents:
diff changeset
   179
    self updateImageType.
d981d312947d intitial checkin
ca
parents:
diff changeset
   180
d981d312947d intitial checkin
ca
parents:
diff changeset
   181
    isDirectory ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   182
        invalidate := imageType ~~ #directoryLocked
d981d312947d intitial checkin
ca
parents:
diff changeset
   183
    ] ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   184
        invalidate := false
d981d312947d intitial checkin
ca
parents:
diff changeset
   185
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   186
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   187
d981d312947d intitial checkin
ca
parents:
diff changeset
   188
!FileSelectionItem methodsFor:'images'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   189
d981d312947d intitial checkin
ca
parents:
diff changeset
   190
imageSelected
d981d312947d intitial checkin
ca
parents:
diff changeset
   191
    "returns type or an image set for node in selected mode
d981d312947d intitial checkin
ca
parents:
diff changeset
   192
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   193
    "returns type or an image set for node in selected mode
d981d312947d intitial checkin
ca
parents:
diff changeset
   194
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   195
    (isDirectory and:[imageType ~~ #directoryLocked]) ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   196
        ^ #directoryOpened
d981d312947d intitial checkin
ca
parents:
diff changeset
   197
     ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   198
   ^ imageType
d981d312947d intitial checkin
ca
parents:
diff changeset
   199
d981d312947d intitial checkin
ca
parents:
diff changeset
   200
d981d312947d intitial checkin
ca
parents:
diff changeset
   201
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   202
d981d312947d intitial checkin
ca
parents:
diff changeset
   203
imageUnselected
d981d312947d intitial checkin
ca
parents:
diff changeset
   204
    "returns type or an image set for node in selected mode
d981d312947d intitial checkin
ca
parents:
diff changeset
   205
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   206
   ^ imageType
d981d312947d intitial checkin
ca
parents:
diff changeset
   207
d981d312947d intitial checkin
ca
parents:
diff changeset
   208
d981d312947d intitial checkin
ca
parents:
diff changeset
   209
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   210
d981d312947d intitial checkin
ca
parents:
diff changeset
   211
!FileSelectionItem methodsFor:'initialization'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   212
d981d312947d intitial checkin
ca
parents:
diff changeset
   213
initialize
d981d312947d intitial checkin
ca
parents:
diff changeset
   214
    "set default values
d981d312947d intitial checkin
ca
parents:
diff changeset
   215
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   216
    super initialize.
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   217
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   218
    matchAction := nil.
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   219
    invalidate := false.
d981d312947d intitial checkin
ca
parents:
diff changeset
   220
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   221
d981d312947d intitial checkin
ca
parents:
diff changeset
   222
!FileSelectionItem methodsFor:'queries'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   223
d981d312947d intitial checkin
ca
parents:
diff changeset
   224
hasChildren
d981d312947d intitial checkin
ca
parents:
diff changeset
   225
    "returns true if the pathname assigned to this node is a directory
d981d312947d intitial checkin
ca
parents:
diff changeset
   226
     otherwise false
d981d312947d intitial checkin
ca
parents:
diff changeset
   227
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   228
  ^ isDirectory
d981d312947d intitial checkin
ca
parents:
diff changeset
   229
d981d312947d intitial checkin
ca
parents:
diff changeset
   230
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   231
d981d312947d intitial checkin
ca
parents:
diff changeset
   232
isDirectory
d981d312947d intitial checkin
ca
parents:
diff changeset
   233
    ^ isDirectory
d981d312947d intitial checkin
ca
parents:
diff changeset
   234
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   235
d981d312947d intitial checkin
ca
parents:
diff changeset
   236
match:aFilename
d981d312947d intitial checkin
ca
parents:
diff changeset
   237
    "returns true if file matched otherwise false
d981d312947d intitial checkin
ca
parents:
diff changeset
   238
    "
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   239
    matchAction notNil ifTrue:[
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   240
        ^ matchAction value:aFilename
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   241
    ].
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   242
  ^ true
d981d312947d intitial checkin
ca
parents:
diff changeset
   243
d981d312947d intitial checkin
ca
parents:
diff changeset
   244
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   245
d981d312947d intitial checkin
ca
parents:
diff changeset
   246
!FileSelectionItem methodsFor:'update'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   247
d981d312947d intitial checkin
ca
parents:
diff changeset
   248
updateChildren
d981d312947d intitial checkin
ca
parents:
diff changeset
   249
    "read children from directory
d981d312947d intitial checkin
ca
parents:
diff changeset
   250
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   251
    |pathName directory item aFilename|
d981d312947d intitial checkin
ca
parents:
diff changeset
   252
d981d312947d intitial checkin
ca
parents:
diff changeset
   253
    children  := OrderedCollection new.
d981d312947d intitial checkin
ca
parents:
diff changeset
   254
    pathName  := self pathName.
535
9a237ca905d2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   255
    directory := pathName asFilename directoryContents.
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   256
    directory do:[:aName|
d981d312947d intitial checkin
ca
parents:
diff changeset
   257
        ((aName first == $.) and:[aName last == $.]) ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   258
            aFilename := contents construct:aName.
d981d312947d intitial checkin
ca
parents:
diff changeset
   259
            (self match:aFilename) ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   260
                item := self class pathName:aFilename.
d981d312947d intitial checkin
ca
parents:
diff changeset
   261
                item parent:self.
d981d312947d intitial checkin
ca
parents:
diff changeset
   262
                children add:item
d981d312947d intitial checkin
ca
parents:
diff changeset
   263
            ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   264
        ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   265
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   266
    children sort:[:a :b | a name < b name].
d981d312947d intitial checkin
ca
parents:
diff changeset
   267
    invalidate := false.
d981d312947d intitial checkin
ca
parents:
diff changeset
   268
d981d312947d intitial checkin
ca
parents:
diff changeset
   269
!
d981d312947d intitial checkin
ca
parents:
diff changeset
   270
d981d312947d intitial checkin
ca
parents:
diff changeset
   271
updateImageType
d981d312947d intitial checkin
ca
parents:
diff changeset
   272
    "update image type
d981d312947d intitial checkin
ca
parents:
diff changeset
   273
    "
d981d312947d intitial checkin
ca
parents:
diff changeset
   274
    isDirectory ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   275
        contents isSymbolicLink ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   276
            imageType := #directoryLink
d981d312947d intitial checkin
ca
parents:
diff changeset
   277
        ] ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   278
            (contents isExecutable and:[contents isReadable]) ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   279
                imageType := #directory
d981d312947d intitial checkin
ca
parents:
diff changeset
   280
            ] ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   281
                imageType := #directoryLocked
d981d312947d intitial checkin
ca
parents:
diff changeset
   282
            ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   283
        ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   284
      ^ self
d981d312947d intitial checkin
ca
parents:
diff changeset
   285
    ].
d981d312947d intitial checkin
ca
parents:
diff changeset
   286
d981d312947d intitial checkin
ca
parents:
diff changeset
   287
    contents isSymbolicLink ifTrue:[  
d981d312947d intitial checkin
ca
parents:
diff changeset
   288
        imageType := #fileLink
d981d312947d intitial checkin
ca
parents:
diff changeset
   289
    ] ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   290
        contents isReadable ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   291
            (Image isImageFileSuffix:(contents suffix)) ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   292
                imageType := #file
d981d312947d intitial checkin
ca
parents:
diff changeset
   293
            ] ifTrue:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   294
                imageType := #imageFile
d981d312947d intitial checkin
ca
parents:
diff changeset
   295
            ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   296
        ] ifFalse:[
d981d312947d intitial checkin
ca
parents:
diff changeset
   297
            imageType := #fileLocked
d981d312947d intitial checkin
ca
parents:
diff changeset
   298
        ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   299
    ]
d981d312947d intitial checkin
ca
parents:
diff changeset
   300
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   301
d981d312947d intitial checkin
ca
parents:
diff changeset
   302
!FileSelectionItem::Directory class methodsFor:'documentation'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   303
d981d312947d intitial checkin
ca
parents:
diff changeset
   304
documentation
d981d312947d intitial checkin
ca
parents:
diff changeset
   305
"
d981d312947d intitial checkin
ca
parents:
diff changeset
   306
    subtype of FileSelectionItem only showing directories; more an example to show
d981d312947d intitial checkin
ca
parents:
diff changeset
   307
    how to implement filters
d981d312947d intitial checkin
ca
parents:
diff changeset
   308
d981d312947d intitial checkin
ca
parents:
diff changeset
   309
    [Author:]
d981d312947d intitial checkin
ca
parents:
diff changeset
   310
        Claus Atzkern
d981d312947d intitial checkin
ca
parents:
diff changeset
   311
d981d312947d intitial checkin
ca
parents:
diff changeset
   312
    [See also:]
d981d312947d intitial checkin
ca
parents:
diff changeset
   313
        FileSelectionItem
d981d312947d intitial checkin
ca
parents:
diff changeset
   314
"
d981d312947d intitial checkin
ca
parents:
diff changeset
   315
d981d312947d intitial checkin
ca
parents:
diff changeset
   316
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   317
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   318
!FileSelectionItem::Directory methodsFor:'initialization'!
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   319
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   320
initialize
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   321
    super initialize.
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   322
    matchAction := [:aFilename| aFilename isDirectory ]
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   323
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   324
d981d312947d intitial checkin
ca
parents:
diff changeset
   325
!FileSelectionItem::File class methodsFor:'documentation'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   326
d981d312947d intitial checkin
ca
parents:
diff changeset
   327
documentation
d981d312947d intitial checkin
ca
parents:
diff changeset
   328
"
d981d312947d intitial checkin
ca
parents:
diff changeset
   329
    subtype of FileSelectionItem only showing files; more an example to show
d981d312947d intitial checkin
ca
parents:
diff changeset
   330
    how to implement filters
d981d312947d intitial checkin
ca
parents:
diff changeset
   331
d981d312947d intitial checkin
ca
parents:
diff changeset
   332
    [Author:]
d981d312947d intitial checkin
ca
parents:
diff changeset
   333
        Claus Atzkern
d981d312947d intitial checkin
ca
parents:
diff changeset
   334
d981d312947d intitial checkin
ca
parents:
diff changeset
   335
    [See also:]
d981d312947d intitial checkin
ca
parents:
diff changeset
   336
        FileSelectionItem
d981d312947d intitial checkin
ca
parents:
diff changeset
   337
"
d981d312947d intitial checkin
ca
parents:
diff changeset
   338
d981d312947d intitial checkin
ca
parents:
diff changeset
   339
d981d312947d intitial checkin
ca
parents:
diff changeset
   340
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   341
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   342
!FileSelectionItem::File methodsFor:'initialization'!
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   343
493
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   344
initialize
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   345
    super initialize.
babd683808e3 prepare for toggle filter
ca
parents: 489
diff changeset
   346
    matchAction := [:aFilename| aFilename isDirectory not ]
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   347
d981d312947d intitial checkin
ca
parents:
diff changeset
   348
d981d312947d intitial checkin
ca
parents:
diff changeset
   349
! !
d981d312947d intitial checkin
ca
parents:
diff changeset
   350
d981d312947d intitial checkin
ca
parents:
diff changeset
   351
!FileSelectionItem class methodsFor:'documentation'!
d981d312947d intitial checkin
ca
parents:
diff changeset
   352
d981d312947d intitial checkin
ca
parents:
diff changeset
   353
version
535
9a237ca905d2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   354
    ^ '$Header: /cvs/stx/stx/libwidg2/FileSelectionItem.st,v 1.5 1997-09-24 04:10:11 cg Exp $'
486
d981d312947d intitial checkin
ca
parents:
diff changeset
   355
! !