--- a/FileSelectionBrowser.st Mon Dec 08 18:55:19 1997 +0100
+++ b/FileSelectionBrowser.st Mon Dec 08 22:35:24 1997 +0100
@@ -6,7 +6,7 @@
!
Object subclass:#Row
- instanceVariableNames:'fileName size iconKey group owner permissions baseName'
+ instanceVariableNames:'fileName size modified iconKey group owner permissions baseName'
classVariableNames:''
poolDictionaries:''
privateIn:FileSelectionBrowser
@@ -27,12 +27,26 @@
fileName: aFileName;
listOfFileFilters: fileFilters;
open
+!
+
+title: aTitle requestFileName: aFileName fileFilters: fileFilters
+
+ ^self new
+ title: aTitle;
+ fileName: aFileName;
+ listOfFileFilters: fileFilters;
+ open
! !
!FileSelectionBrowser class methodsFor:'accessing'!
-lastFileSelectionDirectory
- "^ LastFileSelectionDirectory"
+loadImageFileNameFilters
+ ^self saveImageFileNameFilters addAll: #('*.jpeg' '*.jpg'); yourself
+
+!
+
+saveImageFileNameFilters
+ ^Array withAll: #('*.xpm' '*.xbm' '*.gif' '*.tif' '*.tiff')
! !
@@ -58,11 +72,11 @@
#'window:'
#(#WindowSpec
#'name:' 'File Selection Browser'
- #'layout:' #(#LayoutFrame 410 0 282 0 809 0 581 0)
+ #'layout:' #(#LayoutFrame 301 0 222 0 700 0 521 0)
#'label:' 'File Selection Browser'
#'min:' #(#Point 10 10)
#'max:' #(#Point 1152 900)
- #'bounds:' #(#Rectangle 410 282 810 582)
+ #'bounds:' #(#Rectangle 301 222 701 522)
#'usePreferredExtent:' false
)
#'component:'
@@ -145,6 +159,10 @@
#'canSelect:' false
)
#(#DataSetColumnSpec
+ #'label:' 'modified'
+ #'model:' #modified
+ )
+ #(#DataSetColumnSpec
#'label:' 'permissions'
#'width:' 85
#'model:' #permissions
@@ -199,13 +217,13 @@
#(
#(#ActionButtonSpec
#'name:' 'cancelButton'
- #'label:' 'cancel'
+ #'label:' 'Cancel'
#'model:' #cancel
#'extent:' #(#Point 100 22)
)
#(#ActionButtonSpec
#'name:' 'okButton'
- #'label:' 'ok'
+ #'label:' 'OK'
#'model:' #accept
#'extent:' #(#Point 100 22)
)
@@ -301,14 +319,14 @@
list addAll:lst beforeIndex:1].
self selectionOfFile value: (self listOfFiles detect: [:r| r fileName = fileName] ifNone: [nil]).
self setLabel.
- ] forkAt: 4
+ ] forkAt: Processor userBackgroundPriority
! !
!FileSelectionBrowser methodsFor:'aspects'!
listOfFileFilters
+
|holder|
-
(holder := builder bindingAt:#listOfFileFilters) isNil ifTrue:[
builder aspectAt:#listOfFileFilters put:(holder := List with: '*.*').
].
@@ -332,7 +350,6 @@
rootOfDirectory
|holder|
-
(holder := builder bindingAt:#rootOfDirectory) isNil ifTrue:[
builder aspectAt:#rootOfDirectory put: (holder := ValueHolder with: Filename rootDirectory name).
].
@@ -361,8 +378,8 @@
!
selectionOfFileFilter
+
|holder|
-
(holder := builder bindingAt:#selectionOfFileFilter) isNil ifTrue:[
builder aspectAt:#selectionOfFileFilter put:
(holder := AspectAdaptor new subject:self; forAspect:#selectedFileFilter).
@@ -401,7 +418,7 @@
(fileName notNil and: [fileName asFilename exists])
ifTrue:
[
- self class lastSelection: fileName asFilename directoryName.
+ self class lastSelection: fileName asFilename asAbsoluteFilename directoryName.
self valueOfFileName value: fileName asFilename baseName
].
(builder componentAt: #directoryTreeView) selectPathname: self class lastSelection.
@@ -421,8 +438,13 @@
selectedFileFilter: aString
selectedFileFilter := aString.
+ self valueOfFileName value: (fileName :=
+ ((self valueOfFileName value ? 'unknown') readStream upTo: $.), '.',
+ (selectedFileFilter reversed readStream upTo: $.) reversed).
- self readDirectory
+ self readDirectory.
+
+
! !
!FileSelectionBrowser::Row methodsFor:'accessing'!
@@ -480,6 +502,11 @@
!
+modified
+ ^ modified
+
+!
+
owner
owner isNil ifTrue:[
self validateAttributes
@@ -540,9 +567,10 @@
iconKey := #fileLocked.
size := owner := group := '?'.
^ self
- ].
+ ].
size := info size.
- owner := OperatingSystem getUserNameFromID:(info uid).
+ modified := info modified printString.
+ owner := OperatingSystem getUserNameFromID:(info uid).
group := OperatingSystem getGroupNameFromID:(info gid).
mode := info mode.