--- a/FilenameWidgetWithHistory.st Wed Nov 12 13:38:26 2008 +0100
+++ b/FilenameWidgetWithHistory.st Wed Nov 12 13:43:45 2008 +0100
@@ -12,7 +12,8 @@
"{ Package: 'stx:libwidg2' }"
SimpleView subclass:#FilenameWidgetWithHistory
- instanceVariableNames:'fileNameEntryField browseButton history'
+ instanceVariableNames:'fileNameEntryField browseButton history directoriesOnly filesOnly
+ dialogTitle'
classVariableNames:''
poolDictionaries:''
category:'Views-Interactors'
@@ -67,6 +68,40 @@
!FilenameWidgetWithHistory methodsFor:'accessing'!
+dialogTitle:something
+ "set the dialogs title"
+
+ dialogTitle := something.
+!
+
+directoriesOnly:aBoolean
+ "if true, directories are selectable only.
+ If both filesOnly and directoriesOnly are false, which is the default,
+ anything is selectable."
+
+ directoriesOnly := aBoolean.
+ directoriesOnly ifTrue:[
+ filesOnly := false.
+ ].
+ fileNameEntryField notNil ifTrue:[
+ fileNameEntryField directoriesOnly:aBoolean
+ ].
+!
+
+filesOnly:aBoolean
+ "if true, files are selectable only.
+ If both filesOnly and directoriesOnly are false, which is the default,
+ anything is selectable."
+
+ filesOnly := aBoolean.
+ filesOnly ifTrue:[
+ directoriesOnly := false.
+ ].
+ fileNameEntryField notNil ifTrue:[
+ fileNameEntryField filesOnly:aBoolean
+ ].
+!
+
historyList
history isNil ifTrue:[
history := nil asValue
@@ -136,6 +171,8 @@
initialize
super initialize.
+ directoriesOnly := filesOnly := false.
+
fileNameEntryField := FilenameComboBoxView in:self.
fileNameEntryField layout:(LayoutFrame
leftFraction:0 offset:0
@@ -146,7 +183,7 @@
browseButton := Button in:self.
browseButton label:'...'.
- browseButton action:[self browseForDestinationDirectory].
+ browseButton action:[ self browseForFileOrDirectory ].
browseButton layout:(LayoutFrame
leftFraction:1 offset:-22
rightFraction:1 offset:-2
@@ -176,6 +213,12 @@
!FilenameWidgetWithHistory methodsFor:'user actions'!
browseForDestinationDirectory
+ <resource: #obsolete>
+ self obsoleteMethodWarning.
+ self browseForFileOrDirectory
+!
+
+browseForFileOrDirectory
|dir|
Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
@@ -185,8 +228,20 @@
dialog perform:#browseVisibleHolder with:true ifNotUnderstood:[].
ex proceed.
] do:[
+ |title|
+
+ title := dialogTitle notNil
+ ifTrue:[ dialogTitle ]
+ ifFalse:[
+ directoriesOnly
+ ifTrue:[ resources string:'Select Directory' ]
+ ifFalse:[
+ filesOnly
+ ifTrue:[ resources string:'Select File' ]
+ ifFalse:[ resources string:'Select Path' ]]].
+
dir := Dialog
- requestDirectoryName:'Destination Directory'
+ requestFileName:title
default:(self model value ? '.' asFilename pathName).
].
dir isEmptyOrNil ifTrue:[ ^ self ].
@@ -199,5 +254,5 @@
!FilenameWidgetWithHistory class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/FilenameWidgetWithHistory.st,v 1.9 2008-10-26 20:09:25 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/FilenameWidgetWithHistory.st,v 1.10 2008-11-12 12:43:45 cg Exp $'
! !