FileDialog.st
changeset 8191 1779a8c3730d
parent 8183 ff8c8d68267e
child 8250 60e3fd1433b3
--- a/FileDialog.st	Mon Jun 09 14:11:03 2008 +0200
+++ b/FileDialog.st	Mon Jun 09 14:11:55 2008 +0200
@@ -9,8 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-"{ Package: 'stx:libtool' }"
-
 SimpleDialog subclass:#FileDialog
 	instanceVariableNames:'aspects treeBrowser directory pattern filterHolder initialText
 		multipleSelect doubleClickAction cancelLabelHolder okLabelHolder
@@ -18,7 +16,7 @@
 		filenameLabelHolder isLoadDialog newDirectoryVisibilityHolder
 		appendButtonVisibleHolder appendWasPressed
 		buttonPanelVisibleHolder appendLabelHolder browseVisibleHolder
-		selectedDeviceDrive listOfDeviceDrives'
+		selectedDeviceDrive listOfDeviceDrives rootDirectoryHolder'
 	classVariableNames:'LastExtent'
 	poolDictionaries:''
 	category:'Interface-Tools-File'
@@ -735,6 +733,18 @@
                     hasHorizontalScrollBar: false
                     hasVerticalScrollBar: false
                     majorKey: DirectoryTreeBrowser
+                    subAspectHolders: 
+                   (Array
+                      
+                     (SubChannelInfoSpec
+                        subAspect: filterModel
+                        aspect: filterHolder
+                      ) 
+                     (SubChannelInfoSpec
+                        subAspect: rootHolder
+                        aspect: rootDirectoryHolder
+                      )
+                    )
                     createNewApplication: true
                     createNewBuilder: true
                     postBuildCallback: postBuildTreeBrowser:
@@ -999,6 +1009,7 @@
     ^ #(
         #filenameHolder
         #filterHolder
+        #rootDirectoryHolder
       ).
 
 ! !
@@ -1298,10 +1309,7 @@
     "Return a value holder for filter"
 
     filterHolder isNil ifTrue:[
-        filterHolder := treeBrowser filterModel.
-        self pattern notNil ifTrue:[
-            filterHolder value:pattern.
-        ]
+        filterHolder := (self pattern ? '*') asValue.
     ].
     ^ filterHolder
 !
@@ -1309,11 +1317,7 @@
 filterHolder:aHolder
     "needed when used as subcanvas"
 
-    filterHolder notNil ifTrue:[
-        filterHolder removeDependent:self
-    ].
     filterHolder := aHolder.
-    aHolder addDependent:self
 !
 
 gotoBookmarksMenuSpec
@@ -1364,6 +1368,21 @@
     ^ okLabelHolder.
 !
 
+rootDirectoryHolder
+    "Return a value holder for filter"
+
+    rootDirectoryHolder isNil ifTrue:[
+        rootDirectoryHolder := self initialRootDirectory asValue.
+    ].
+    ^ rootDirectoryHolder
+!
+
+rootDirectoryHolder:aHolder
+    "Return a value holder for filter"
+
+    rootDirectoryHolder := aHolder.
+!
+
 selectedDeviceDrive
 
     selectedDeviceDrive isNil ifTrue:[
@@ -1572,9 +1591,10 @@
     super postOpenAsSubcanvasWith:aBuilder.
 
     "No ok and cancel buttons, when dialog is part of a larger dialog"
-    self hideButtonPanel
+    self hideButtonPanel.
 
     "filenameHolder contains the initial file name"
+    self startFilename:self filenameHolder value.
     treeBrowser currentFileNameHolder value:(Array with:self filenameHolder value).
 !
 
@@ -1724,5 +1744,5 @@
 !FileDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.98 2008-06-05 14:31:41 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.99 2008-06-09 12:11:55 stefan Exp $'
 ! !