fixes (thanx to bretts info)
authorClaus Gittinger <cg@exept.de>
Wed, 12 Nov 2008 13:43:45 +0100
changeset 3590 c3c778e11564
parent 3589 1ae6aa4bafbe
child 3591 49dcfd92398a
fixes (thanx to bretts info)
FilenameWidgetWithHistory.st
--- 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 $'
 ! !