FileBrowserV2.st
changeset 8188 d26ad67c7493
parent 8109 8dff7544b8a2
child 8229 08a30f2c99f2
--- a/FileBrowserV2.st	Mon Jun 09 11:43:15 2008 +0200
+++ b/FileBrowserV2.st	Mon Jun 09 12:53:54 2008 +0200
@@ -86,14 +86,10 @@
 on:aDirectoryPath
     "return a new FileBrowserV2 in a pathname"
 
-    |instance files|
-    instance := self new createBuilder.
-    aDirectoryPath isCollection ifTrue:[
-        files := aDirectoryPath
-    ] ifFalse:[
-        files := Array with:aDirectoryPath.
-    ].
-    instance currentFileNameHolder value:files.
+    |instance|
+
+    instance := self new.
+    instance onDirectory:aDirectoryPath.
     ^ instance
 !
 
@@ -154,21 +150,11 @@
      If editing is true, the browser opens the document as text to be edited;
      if false, it looks for an appropriate viewer and uses that if one is found."
 
-    |f browser|
-
-    f := aFilename asFilename asAbsoluteFilename.
-    f isDirectory ifTrue:[
-        ^ self openOn:aFilename
-    ].
+    |browser|
 
-    browser := self on:(f directory).
-    browser currentFileNameHolder setValue:(Array with:f).
-    browser open.
-    editing ifTrue:[
-        browser openTextEditorForFile:f.
-    ] ifFalse:[
-        browser openApplForFile:f.
-    ].
+    browser := self new.
+    browser openOnFileNamed:aFilename editing:editing.
+    ^ browser
 
     "
      FileBrowserV2 openOnFileNamed:'Makefile'
@@ -182,6 +168,7 @@
 
     dir := someAspects at:#currentFileNameHolder ifAbsent:nil.
     clone := self openOn:(dir value) withExtent:extent.
+    ^ clone
 ! !
 
 !FileBrowserV2 class methodsFor:'class initialization'!
@@ -1867,6 +1854,51 @@
     self previewVisibleHolder addDependent:self.
 !
 
+onDirectory:aDirectoryPath
+    |files|
+
+    self createBuilder.
+    aDirectoryPath isCollection ifTrue:[
+        files := aDirectoryPath
+    ] ifFalse:[
+        files := Array with:aDirectoryPath.
+    ].
+    self currentFileNameHolder value:files.
+!
+
+openOnDirectory:aDirectoryPath
+    self onDirectory:aDirectoryPath.
+    self open
+!
+
+openOnFileNamed:aFilename editing:editing
+    "start a new FileBrowserV2 on a aFilename;
+     If editing is true, the browser opens the document as text to be edited;
+     if false, it looks for an appropriate viewer and uses that if one is found."
+
+    |f|
+
+    f := aFilename asFilename asAbsoluteFilename.
+    f isDirectory ifTrue:[
+        self onDirectory:aFilename.
+        self open.
+        ^ self.
+    ].
+
+    self onDirectory:(f directory).
+    self currentFileNameHolder setValue:(Array with:f).
+    self open.
+    editing ifTrue:[
+        self openTextEditorForFile:f.
+    ] ifFalse:[
+        self openApplForFile:f.
+    ].
+
+    "
+     FileBrowserV2 openOnFileNamed:'Makefile'
+    "
+!
+
 postBuildDirectoryTree:aWidget
     aWidget application multipleSelect:true.
 !
@@ -1923,7 +1955,7 @@
 !FileBrowserV2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.175 2008-05-07 09:15:28 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.176 2008-06-09 10:53:54 cg Exp $'
 ! !
 
 FileBrowserV2 initialize!