--- a/FileDialog.st Tue Apr 08 18:32:06 2003 +0200
+++ b/FileDialog.st Tue Apr 08 18:35:46 2003 +0200
@@ -1,14 +1,13 @@
"{ Package: 'stx:libtool' }"
SimpleDialog subclass:#FileDialog
- instanceVariableNames:'aspects treeBrowser enableBack enableDirectoryUp enableForward
- enableHome directory pattern filterHolder initialText
- doubleClickAction cancelLabelHolder okLabelHolder startFilename
- result filterField filenameField viewFiles filenameLabelHolder
- asLoadDialog newDirectoryVisibilityHolder
- appendButtonVisibleHolder multipleSelect appendWasPressed
+ instanceVariableNames:'aspects treeBrowser directory pattern filterHolder initialText
+ multipleSelect doubleClickAction cancelLabelHolder okLabelHolder
+ startFilename result filterField filenameField viewFiles
+ filenameLabelHolder isLoadDialog newDirectoryVisibilityHolder
+ appendButtonVisibleHolder appendWasPressed
buttonPanelVisibleHolder'
- classVariableNames:'LastFileSelectionDirectory'
+ classVariableNames:''
poolDictionaries:''
category:'Interface-Tools-File'
!
@@ -36,19 +35,26 @@
Starting the application:
[exBegin]
FileDialog open
-
[exEnd]
- more examples to be added:
[exBegin]
- ... add code fragment for
- ... executable example here ...
+ FileDialog
+ requestFileName:'enter a fileName:'
+ default:''
+ version:nil
+ ifFail:['none']
+ pattern:'*.conf'
+ fromDirectory:'/etc'
+ whenBoxCreatedEvaluate:nil.
+ [exEnd]
+ [exBegin]
+ |fd|
+
+ fd := FileDialog new.
+ fd multipleSelect:true.
+ fd open
[exEnd]
"
-!
-
-history
- "Created: / 19.9.2002 / 13:05:28 / martin"
! !
!FileDialog class methodsFor:'instance creation'!
@@ -464,7 +470,7 @@
instance initialText:titleString.
instance okLabelHolder value:okText.
instance cancelLabelHolder value:abortText.
- instance asLoadDialog:asLoadDialog ? false.
+ instance beLoadDialog:asLoadDialog ? false.
instance viewFiles:(forDirectory isNil ifTrue:[true] ifFalse:[forDirectory not]).
self setDoubleClickActionFor:instance.
instance allButOpenInterface:#windowSpec.
@@ -477,30 +483,6 @@
!FileDialog class methodsFor:'accessing'!
-lastFileSelectionDirectory
- "return the name of the directory used in the previous
- fileSelection dialog. This will be used as default for the next dialog,
- if no explicit path is specified (see requestFileName:* methods)"
-
- |f|
-
- LastFileSelectionDirectory notNil ifTrue:[
- ((f := LastFileSelectionDirectory asFilename) exists
- and:[f isDirectory]) ifFalse:[
- LastFileSelectionDirectory := nil.
- ]
- ].
- ^ LastFileSelectionDirectory
-!
-
-lastFileSelectionDirectory:aDirectoryString
- "set the name of the directory used in the previous
- fileSelection dialog. This will be used as default for the next dialog,
- if no explicit path is specified (see requestFileName:* methods)"
-
- LastFileSelectionDirectory := aDirectoryString
-!
-
setDoubleClickActionFor:instance
instance doubleClickAction:[:anIndex|
@@ -588,7 +570,7 @@
#name: 'FileDialog'
#min: #(#Point 10 10)
#max: #(#Point 1024 768)
- #bounds: #(#Rectangle 14 46 414 446)
+ #bounds: #(#Rectangle 16 46 416 446)
)
#component:
#(#SpecCollection
@@ -608,7 +590,7 @@
)
#(#SubCanvasSpec
#name: 'DirectoryTreeBrowser'
- #layout: #(#LayoutFrame 0 0.0 30 0 0 1.0 -60 1)
+ #layout: #(#LayoutFrame 0 0.0 55 0 0 1.0 -60 1)
#tabable: true
#hasHorizontalScrollBar: false
#hasVerticalScrollBar: false
@@ -627,30 +609,56 @@
)
#(#FilenameInputFieldSpec
#name: 'FilenameEntryField'
- #layout: #(#LayoutFrame 70 0 -50 1 -10 1 -30 1)
+ #layout: #(#LayoutFrame 70 0 -50 1 -2 1 -30 1)
#tabable: true
#model: #filenameHolder
#immediateAccept: false
#acceptOnPointerLeave: false
#postBuildCallback: #postBuildFileNameField:
)
- #(#LabelSpec
- #label: 'Filter:'
- #name: 'FilterLabel'
- #layout: #(#LayoutFrame 3 0 -25 1 67 0 -5 1)
- #translateLabel: true
- #adjust: #left
- )
- #(#InputFieldSpec
- #name: 'FilterEntryField'
- #layout: #(#LayoutFrame 70 0 -25 1 -10 1 -5 1)
- #model: #filterHolder
- #immediateAccept: false
- #acceptOnReturn: true
- #acceptOnTab: true
- #acceptOnLostFocus: true
- #acceptOnPointerLeave: false
- #postBuildCallback: #postBuildFilterField:
+ #(#VariableHorizontalPanelSpec
+ #name: 'VariableHorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0 30 0 0 1 55 0)
+ #level: 1
+ #showHandle: false
+ #barLevel: 0
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ViewSpec
+ #name: 'Box1'
+ )
+ #(#ViewSpec
+ #name: 'Box2'
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Filter:'
+ #name: 'FilterLabel'
+ #layout: #(#LayoutFrame 8 0 2 0 59 0 -2 1)
+ #translateLabel: true
+ #adjust: #right
+ )
+ #(#InputFieldSpec
+ #name: 'FilterEntryField'
+ #layout: #(#LayoutFrame 60 0 -22 1 -2 1 -2 1)
+ #model: #filterHolder
+ #immediateAccept: true
+ #acceptOnReturn: true
+ #acceptOnTab: true
+ #acceptOnLostFocus: true
+ #acceptOnPointerLeave: false
+ #postBuildCallback: #postBuildFilterField:
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ #handles: #(#Any 0.5 1.0)
)
)
@@ -874,13 +882,18 @@
!FileDialog methodsFor:'accessing-behavior'!
asLoadDialog
-
- ^ asLoadDialog
+ self halt.
+ ^ self isLoadDialog
!
asLoadDialog:aBoolean
+ self halt.
+ self beLoadDialog:aBoolean
+!
- asLoadDialog := aBoolean
+beLoadDialog:aBoolean
+
+ isLoadDialog := aBoolean
!
doubleClickAction
@@ -895,19 +908,20 @@
doubleClickAction := something.
!
-multipleSelect
- "return the value of the instance variable 'pattern' (automatically generated)"
+isLoadDialog
- multipleSelect isNil ifTrue:[
- multipleSelect := true.
- ].
- ^ multipleSelect
+ ^ isLoadDialog ? true
+!
+
+multipleSelect
+ ^ multipleSelect ? false
!
multipleSelect:aBoolean
- "set the value of the instance variable 'multipleSelect' (automatically generated)"
-
- multipleSelect := aBoolean
+ multipleSelect := aBoolean.
+ treeBrowser notNil ifTrue:[
+ treeBrowser multipleSelect:aBoolean.
+ ].
! !
!FileDialog methodsFor:'accessing-components'!
@@ -937,8 +951,6 @@
!
newDirectoryVisibilityHolder
- "return the value of the instance variable 'newDirectoryVisibilityHolder' (automatically generated)"
-
newDirectoryVisibilityHolder isNil ifTrue:[
newDirectoryVisibilityHolder := true asValue.
].
@@ -970,6 +982,17 @@
^ appendButtonVisibleHolder
!
+aspectOrNil:aKey forSubApplication:aSubApp
+ "this hook provides an aspect for a subApp"
+
+ aKey == #currentFileNameHolder ifTrue:[
+ directory notNil ifTrue:[
+ ^ (OrderedCollection with:directory) asValue
+ ]
+ ].
+ ^ nil
+!
+
buttonPanelVisibleHolder
buttonPanelVisibleHolder isNil ifTrue:[
buttonPanelVisibleHolder := true asValue.
@@ -993,38 +1016,19 @@
!
enableBack
- "Return a value holder for the input string.
- "
- enableBack isNil ifTrue:[
- enableBack := treeBrowser enableBack.
- ].
- ^ enableBack
+ ^ treeBrowser enableBack.
!
enableDirectoryUp
-
- enableDirectoryUp isNil ifTrue:[
- enableDirectoryUp := treeBrowser enableDirectoryUp.
- ].
- ^ enableDirectoryUp
+ ^ treeBrowser enableDirectoryUp.
!
enableForward
- "Return a value holder for the input string.
- "
- enableForward isNil ifTrue:[
- enableForward := treeBrowser enableForward.
- ].
- ^ enableForward
+ ^ treeBrowser enableForward.
!
enableHome
- "Return a value holder for the input string.
- "
- enableHome isNil ifTrue:[
- enableHome := treeBrowser enableHome.
- ].
- ^ enableHome
+ ^ treeBrowser enableHome.
!
filenameHolder
@@ -1098,50 +1102,35 @@
!
update:something with:aParameter from:changedObject
- "Invoked when an object that I depend upon sends a change notification."
-
- "stub code automatically generated - please change as required"
+ |files newFile newLabel fn|
changedObject == treeBrowser currentFileNameHolder ifTrue:[
- | files newDir|
- files := treeBrowser currentFileNameHolder value.
+ files := changedObject value.
(files isEmpty) ifTrue:[
- self filenameHolder value:nil withoutNotifying:self.
+ newFile := nil.
] ifFalse:[
files size == 1 ifTrue:[
- self filenameHolder value:(files first) withoutNotifying:self.
+ newFile := files first.
] ifFalse:[
- self filenameHolder value:'' withoutNotifying:self.
+ newFile := ''.
].
].
+ self filenameHolder value:newFile withoutNotifying:self.
].
+
changedObject == treeBrowser viewFilesInDirectoryTree ifTrue:[
changedObject value ifTrue:[
- self filenameLabelHolder value:(resources string:'Filename:').
+ newLabel := 'Filename:'.
] ifFalse:[
- self filenameLabelHolder value:(resources string:'Directory:').
- ]
+ newLabel := 'Directory:'.
+ ].
+ self filenameLabelHolder value:(resources string:newLabel)
].
changedObject == self filenameHolder ifTrue:[
- (changedObject value asFilename exists not) ifTrue:[^ self].
- treeBrowser currentFileNameHolder value:(OrderedCollection with:(changedObject value asFilename)) withoutNotifying:self.
- ].
- changedObject == treeBrowser enableBack ifTrue:[
- self enableBack value:changedObject value.
- ^ self.
- ].
- changedObject == treeBrowser enableForward ifTrue:[
- self enableForward value:changedObject value.
- ^ self.
- ].
- changedObject == treeBrowser enableHome ifTrue:[
- self enableHome value:changedObject value.
- ^ self.
- ].
- changedObject == treeBrowser enableDirectoryUp ifTrue:[
- self enableDirectoryUp value:changedObject value.
- ^ self.
+ fn := changedObject value asFilename.
+ (fn exists) ifFalse:[^ self].
+ treeBrowser currentFileNameHolder value:(OrderedCollection with:fn) withoutNotifying:self.
].
^ super update:something with:aParameter from:changedObject
! !
@@ -1194,8 +1183,7 @@
!
postBuildWith:aBuilder
-
- treeBrowser multipleSelect:self multipleSelect.
+ treeBrowser multipleSelect:multipleSelect.
appendWasPressed := false.
^ super postBuildWith:aBuilder
!
@@ -1210,17 +1198,14 @@
treeBrowser currentFileNameHolder addDependent:self.
treeBrowser doubleClickAction:(self doubleClickAction).
- treeBrowser enableBack addDependent:self.
- treeBrowser enableForward addDependent:self.
- treeBrowser enableHome addDependent:self.
- treeBrowser enableDirectoryUp addDependent:self.
treeBrowser viewFilesInDirectoryTree addDependent:self.
treeBrowser rootHolder value:((self directory) ? (Filename currentDirectory asAbsoluteFilename)).
- treeBrowser viewFilesInDirectoryTree value:(self viewFiles ? true).
+
+ treeBrowser viewFilesInDirectoryTree setValue:(self viewFiles ? true).
treeBrowser viewFilesInDirectoryTree changed.
treeBrowser currentFileNameHolder value:(OrderedCollection with:(self startFilename)).
- treeBrowser expandSelectedItems.
- self asLoadDialog ifTrue:[
+
+ self isLoadDialog ifTrue:[
treeBrowser newVisibilityHolder value:false.
treeBrowser allowFileOperations value:false.
self newDirectoryVisibilityHolder value:false.
@@ -1347,5 +1332,5 @@
!FileDialog class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.33 2003-04-08 14:04:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.34 2003-04-08 16:35:46 cg Exp $'
! !