FileSelectionList.st
author claus
Thu, 13 Jan 1994 01:18:51 +0100
changeset 24 966098a893f8
parent 21 9ef599238fea
child 38 4b9b70b2cc87
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     1
"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     4
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c47dbae39a71 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    11
"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    12
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    13
SelectionInListView subclass:#FileSelectionList
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'pattern directory timeStamp directoryId
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    15
                              directoryContents directoryFileTypes
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    16
                              realAction fileTypes'
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    17
       classVariableNames:''
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    18
       poolDictionaries:''
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    19
       category:'Views-Text'
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    20
!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    21
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    22
FileSelectionList comment:'
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    23
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    24
COPYRIGHT (c) 1993 by Claus Gittinger
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    25
              All Rights Reserved
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    26
24
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
    27
$Header: /cvs/stx/stx/libwidg/FileSelectionList.st,v 1.3 1994-01-13 00:15:25 claus Exp $
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    28
written Dec 93 by claus
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    29
'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    30
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    31
!FileSelectionList class methodsFor:'documentation'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    32
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    33
documentation
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    34
"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    35
this class implements file selection lists - its basically a
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    36
selection in list, but remembers the previous position when
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    37
changing directories.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    38
Only files matching a pattern (plus directories) are shown.
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    39
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    40
Instance variables:
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    41
        directoryContents       contents of current directory
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    42
        directoryFileTypes      file types (symbols) of current directory
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    43
        fileTypes               file types as shown in list 
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
    44
                                (i.e only matching ones)
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    45
"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    46
! !
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    47
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    48
!FileSelectionList methodsFor:'initialization'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    49
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    50
initialize
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    51
    directory := FileDirectory currentDirectory.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    52
    super initialize.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    53
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    54
    pattern := '*'.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    55
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    56
    "selections in list get forwarded to enterfield if not a directory;
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    57
     otherwise directory is changed"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    58
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    59
    actionBlock := [:lineNr |
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    60
        |entry|
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    61
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    62
        (self selection isKindOf:Collection) ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    63
            entry := self selectionValue.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    64
            (entry endsWith:' ...') ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    65
                entry := entry copyTo:(entry size - 4).
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    66
            ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    67
            ((directory typeOf:entry) == #directory) ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    68
                (directory isReadable:entry) ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    69
                    self warn:(resources string:'not allowed to read directory %1' with:entry)
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    70
                ] ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    71
                    (directory isExecutable:entry) ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    72
                        self warn:(resources string:'not allowed to change to directory %1' with:entry)
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    73
                    ] ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    74
                        self directory:(directory pathName , Filename separator asString , entry)
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    75
                    ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    76
                ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    77
            ] ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    78
                realAction notNil ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    79
                    realAction value:lineNr
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    80
                ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    81
            ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    82
        ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    83
    ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    84
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    85
    "FileSelectionList new realize"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    86
!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    87
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    88
reinitialize
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    89
    directory := FileDirectory currentDirectory.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    90
    super reinitialize
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    91
! !
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    92
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    93
!FileSelectionList methodsFor:'accessing'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    94
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    95
action:aBlock
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    96
    "set the action to be performed on a selection"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    97
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    98
    realAction := aBlock
c47dbae39a71 Initial revision
claus
parents:
diff changeset
    99
!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   100
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   101
directory
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   102
    "return the shown directory"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   103
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   104
    ^ directory
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   105
!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   106
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   107
directory:nameOrDirectory
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   108
    "set the lists contents to the filenames in the directory"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   109
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   110
    |oldPath name|
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   111
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   112
    (nameOrDirectory isKindOf:String) ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   113
        name := nameOrDirectory
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   114
    ] ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   115
        name := nameOrDirectory pathName
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   116
    ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   117
    oldPath := directory pathName.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   118
    directory pathName:name.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   119
    (directory pathName = oldPath) ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   120
        self updateList
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   121
    ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   122
!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   123
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   124
pattern:aPattern
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   125
    "set the pattern - if it changes, update the list."
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   126
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   127
    pattern ~= aPattern ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   128
        pattern := aPattern.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   129
        realized ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   130
            self updateList
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   131
        ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   132
    ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   133
! !
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   134
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   135
!FileSelectionList methodsFor:'drawing'!
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   136
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   137
redrawFromVisibleLine:startVisLineNr to:endVisLineNr
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   138
    "redefined to look for directory in every line"
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   139
24
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   140
    |l|
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   141
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   142
    "first, draw chunk of lines"
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   143
    super redrawFromVisibleLine:startVisLineNr to:endVisLineNr.
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   144
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   145
    "then draw marks"
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   146
    startVisLineNr to:endVisLineNr do:[:visLineNr |
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   147
        l := self visibleLineToListLine:visLineNr.
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   148
        l notNil ifTrue:[
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   149
            (fileTypes at:l) == #directory ifTrue:[
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   150
                self drawRightArrowInVisibleLine:visLineNr
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   151
            ]
966098a893f8 *** empty log message ***
claus
parents: 21
diff changeset
   152
        ]
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   153
    ]
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   154
!
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   155
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   156
redrawVisibleLine:visLineNr
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   157
    "if the line is one for a directory, draw a right arrow"
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   158
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   159
    |l|
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   160
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   161
    super redrawVisibleLine:visLineNr.
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   162
    l := self visibleLineToListLine:visLineNr.
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   163
    l notNil ifTrue:[
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   164
        (fileTypes at:l) == #directory ifTrue:[
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   165
            self drawRightArrowInVisibleLine:visLineNr
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   166
        ]
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   167
    ]
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   168
! !
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   169
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   170
!FileSelectionList methodsFor:'private'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   171
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   172
visibleLineNeedsSpecialCare:visLineNr
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   173
    |l|
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   174
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   175
    l := self visibleLineToListLine:visLineNr.
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   176
    l notNil ifTrue:[
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   177
        (fileTypes at:l) == #directory ifTrue:[^ true].
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   178
        ^ super visibleLineNeedsSpecialCare:visLineNr
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   179
    ].
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   180
    ^ false
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   181
!
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   182
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   183
widthForScrollBetween:firstLine and:lastLine
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   184
    "return the width in pixels for a scroll between firstLine and lastLine
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   185
     - return full width here since there might be directory marks"
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   186
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   187
    ^ (width - margin - margin)
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   188
!
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   189
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   190
updateList
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   191
    "set the lists contents to the filenames in the directory"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   192
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   193
    |oldCursor files newList index|
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   194
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   195
    oldCursor := cursor.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   196
    self cursor:(Cursor read).
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   197
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   198
    directoryId == directory id ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   199
        timeStamp := directory timeOfLastChange.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   200
        directoryId := directory id.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   201
        directoryContents := directory asText sort.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   202
        directoryFileTypes := OrderedCollection new.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   203
        directoryContents do:[:name | directoryFileTypes add:(directory typeOf:name)].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   204
    ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   205
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   206
    files := directoryContents.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   207
    newList := OrderedCollection new.
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   208
    fileTypes := OrderedCollection new.
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   209
    index := 1.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   210
    files do:[:name |
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   211
        (directoryFileTypes at:index) == #directory ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   212
            name = '..' ifTrue:[
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   213
                newList add:name.
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   214
                fileTypes add:(directoryFileTypes at:index)
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   215
            ] ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   216
                name = '.' ifTrue:[
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   217
                    "ignore"
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   218
                ] ifFalse:[
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   219
                    newList add:(name ", ' ...'").
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   220
                    fileTypes add:(directoryFileTypes at:index)
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   221
                ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   222
            ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   223
        ] ifFalse:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   224
            (pattern isEmpty or:[pattern = '*' or:[pattern match:name]]) ifTrue:[
21
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   225
                newList add:name.
9ef599238fea *** empty log message ***
claus
parents: 11
diff changeset
   226
                fileTypes add:(directoryFileTypes at:index)
11
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   227
            ]
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   228
        ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   229
        index := index + 1
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   230
    ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   231
    super list:newList.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   232
    self cursor:oldCursor.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   233
! !
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   234
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   235
!FileSelectionList methodsFor:'realization'!
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   236
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   237
realize
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   238
    "make the view visible; redefined to check if directory is still 
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   239
     valid (using timestamp and inode numbers) - reread if not"
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   240
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   241
    (timeStamp isNil 
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   242
     or:[(directory timeOfLastChange > timeStamp) 
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   243
     or:[(directoryId isNil)
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   244
     or:[directoryId ~~ directory id]]]) ifTrue:[
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   245
        directoryId := nil.
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   246
        self updateList
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   247
    ].
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   248
    super realize
c47dbae39a71 Initial revision
claus
parents:
diff changeset
   249
! !