"{ Package: 'stx:libtool' }"
AbstractSettingsApplication subclass:#FileBrowserV2SettingsAppl
instanceVariableNames:'sortDirectoriesBeforeFiles showDirectoryTree sortCaseless
showHiddenFiles openMultipleApplicationsForType
toolBarVisibleHolder viewDirectoryDescription
openAlwaysInTextEditor viewFilesInDirectoryTree viewDescription
viewPreview viewTime viewSize viewSizeInBytes viewType
viewDetails viewPermissions viewGroup viewDirsInContentsBrowser
viewOwner filenameEntryFieldVisibleHolder'
classVariableNames:''
poolDictionaries:''
category:'Interface-Tools-File'
!
!FileBrowserV2SettingsAppl class methodsFor:'icon'!
defaultIcon
^ FileBrowserV2 applicationIcon
! !
!FileBrowserV2SettingsAppl class methodsFor:'interface specs'!
windowSpec
"This resource specification was automatically generated
by the UIPainter of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIPainter may not be able to read the specification."
"
UIPainter new openOnClass:FileBrowserV2SettingsAppl andSelector:#windowSpec
FileBrowserV2SettingsAppl new openInterface:#windowSpec
FileBrowserV2SettingsAppl open
"
<resource: #canvas>
^
#(#FullSpec
#name: #windowSpec
#window:
#(#WindowSpec
#label: 'Settings'
#name: 'Settings'
#min: #(#Point 10 10)
#max: #(#Point 1024 768)
#bounds: #(#Rectangle 16 46 450 587)
)
#component:
#(#SpecCollection
#collection: #(
#(#VerticalPanelViewSpec
#name: 'VerticalPanel1'
#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
#horizontalLayout: #fit
#verticalLayout: #top
#horizontalSpace: 3
#verticalSpace: 3
#component:
#(#SpecCollection
#collection: #(
#(#VerticalPanelViewSpec
#name: 'VerticalPanel2'
#horizontalLayout: #fit
#verticalLayout: #center
#horizontalSpace: 3
#verticalSpace: 3
#component:
#(#SpecCollection
#collection: #(
#(#FramedBoxSpec
#label: 'Show'
#name: 'FramedBox1'
#labelPosition: #topLeft
#translateLabel: true
#component:
#(#SpecCollection
#collection: #(
#(#CheckBoxSpec
#label: 'Hidden Files'
#name: 'CheckBox1'
#layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
#model: #showHiddenFiles
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Directory Tree'
#name: 'CheckBox2'
#layout: #(#LayoutFrame 0 0.0 25 0 0 1.0 45 0)
#model: #showDirectoryTree
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Regular Files in TreeView (Left)'
#name: 'CheckBox3'
#layout: #(#LayoutFrame 20 0 50 0 0 1.0 70 0)
#model: #viewFilesInDirectoryTree
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Directories in ContentsView (Right)'
#name: 'CheckBox4'
#layout: #(#LayoutFrame 0 0.0 75 0 0 1.0 95 0)
#model: #viewDirsInContentsBrowser
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Toolbar'
#name: 'CheckBox11'
#layout: #(#LayoutFrame 0 0.0 100 0 0 1.0 120 0)
#model: #toolBarVisibleHolder
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Path Entry && Filter'
#name: 'CheckBox12'
#layout: #(#LayoutFrame 0 0.0 125 0 0 1.0 145 0)
#model: #filenameEntryFieldVisibleHolder
#translateLabel: true
)
)
)
#extent: #(#Point 434 175)
)
#(#FramedBoxSpec
#label: 'Sort'
#name: 'FramedBox2'
#labelPosition: #topLeft
#translateLabel: true
#component:
#(#SpecCollection
#collection: #(
#(#CheckBoxSpec
#label: 'Ignore Case'
#name: 'CheckBox6'
#layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
#model: #sortCaseless
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Directories before Files'
#name: 'CheckBox7'
#layout: #(#LayoutFrame 0 0.0 25 0 0 1.0 45 0)
#model: #sortDirectoriesBeforeFiles
#translateLabel: true
)
)
)
#extent: #(#Point 434 75)
)
#(#FramedBoxSpec
#label: 'Application Notebook'
#name: 'FramedBox3'
#labelPosition: #topLeft
#translateLabel: true
#component:
#(#SpecCollection
#collection: #(
#(#CheckBoxSpec
#label: 'Text Editor for all Types'
#name: 'CheckBox8'
#layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
#model: #openAlwaysInTextEditor
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Open Multiple Applications'
#name: 'CheckBox9'
#layout: #(#LayoutFrame 0 0.0 25 0 0 1.0 45 0)
#model: #openMultipleApplicationsForType
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Auto Open Directory Description'
#name: 'CheckBox10'
#layout: #(#LayoutFrame 0 0.0 50 0 0 1.0 70 0)
#model: #viewDirectoryDescription
#translateLabel: true
)
)
)
#extent: #(#Point 434 100)
)
#(#FramedBoxSpec
#label: 'Columns in Contents Browser'
#name: 'FramedBox4'
#labelPosition: #topLeft
#translateLabel: true
#component:
#(#SpecCollection
#collection: #(
#(#CheckBoxSpec
#label: 'Details'
#name: 'CheckBox22'
#layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
#model: #viewDetails
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Suffix'
#name: 'CheckBox13'
#layout: #(#LayoutFrame 20 0.0 25 0 170 0 45 0)
#enableChannel: #viewDetails
#model: #viewType
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Permissions'
#name: 'CheckBox21'
#layout: #(#LayoutFrame 170 0.0 25 0 -5 1 45 0)
#enableChannel: #viewDetails
#model: #viewPermissions
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Owner'
#name: 'CheckBox14'
#layout: #(#LayoutFrame 20 0.0 50 0 170 0 70 0)
#enableChannel: #viewDetails
#model: #viewOwner
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Group'
#name: 'CheckBox18'
#layout: #(#LayoutFrame 170 0.0 50 0 -5 1 70 0)
#enableChannel: #viewDetails
#model: #viewGroup
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Size'
#name: 'CheckBox15'
#layout: #(#LayoutFrame 20 0.0 75 0 170 0 95 0)
#enableChannel: #viewDetails
#model: #viewSize
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Date && Time'
#name: 'CheckBox19'
#layout: #(#LayoutFrame 170 0.0 75 0 -5 1 95 0)
#enableChannel: #viewDetails
#model: #viewTime
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Size in Bytes'
#name: 'CheckBox16'
#layout: #(#LayoutFrame 20 0.0 100 0 170 0 120 0)
#enableChannel: #viewDetails
#model: #viewSizeInBytes
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'Preview'
#name: 'CheckBox20'
#layout: #(#LayoutFrame 170 0.0 100 0 -5 1 120 0)
#enableChannel: #viewDetails
#model: #viewPreview
#translateLabel: true
)
#(#CheckBoxSpec
#label: 'File Info'
#name: 'CheckBox23'
#layout: #(#LayoutFrame 20 0.0 125 0 170 0 145 0)
#enableChannel: #viewDetails
#model: #viewDescription
#translateLabel: true
)
)
)
#extent: #(#Point 434 171)
)
)
)
#extent: #(#Point 434 530)
)
)
)
)
)
)
)
! !
!FileBrowserV2SettingsAppl methodsFor:'accessing'!
requestor
"return the value of the instance variable 'requestor' (automatically generated)"
| masterApplication |
masterApplication := self masterApplication.
masterApplication notNil ifTrue:[
^ masterApplication requestor.
].
^ nil
! !
!FileBrowserV2SettingsAppl methodsFor:'actions'!
basicSaveSettings
|aspectList req writeToCurrentFileBrowser|
aspectList := AbstractFileBrowser userPreferencesAspectList.
req := self requestor.
writeToCurrentFileBrowser := (req notNil and:[req isKindOf:AbstractFileBrowser]).
aspectList do:[ :aAspect | |value|
value := (self perform:aAspect) value.
(currentUserPrefs perform:((aAspect asString, ':') asSymbol) with:value).
writeToCurrentFileBrowser ifTrue:[
(req perform:aAspect) value:value.
].
].
!
evaluateModified
self modifiedChannel value:(self hasUnsavedChanges).
!
help
self warn:'no help available here'.
"/ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
!
readSettings
|req receiver aspectList|
req := self requestor.
receiver := (req notNil and:[req isKindOf:AbstractFileBrowser]) ifTrue:[
req
] ifFalse:[
currentUserPrefs
].
aspectList := AbstractFileBrowser userPreferencesAspectList.
aspectList do:[:aAspect | |value|
value := (receiver perform:aAspect) value.
(self perform:aAspect) value:value
].
self modifiedChannel value:false
! !
!FileBrowserV2SettingsAppl methodsFor:'aspects'!
filenameEntryFieldVisibleHolder
filenameEntryFieldVisibleHolder isNil ifTrue:[
filenameEntryFieldVisibleHolder := true asValue.
filenameEntryFieldVisibleHolder onChangeSend:#evaluateModified to:self.
].
^ filenameEntryFieldVisibleHolder.
!
openAlwaysInTextEditor
openAlwaysInTextEditor isNil ifTrue:[
openAlwaysInTextEditor := true asValue.
openAlwaysInTextEditor onChangeSend:#evaluateModified to:self.
].
^ openAlwaysInTextEditor.
!
openMultipleApplicationsForType
openMultipleApplicationsForType isNil ifTrue:[
openMultipleApplicationsForType := true asValue.
openMultipleApplicationsForType onChangeSend:#evaluateModified to:self.
].
^ openMultipleApplicationsForType.
!
showDirectoryTree
showDirectoryTree isNil ifTrue:[
showDirectoryTree := true asValue.
showDirectoryTree onChangeSend:#evaluateModified to:self.
].
^ showDirectoryTree.
!
showHiddenFiles
showHiddenFiles isNil ifTrue:[
showHiddenFiles := true asValue.
showHiddenFiles onChangeSend:#evaluateModified to:self.
].
^ showHiddenFiles.
!
sortCaseless
sortCaseless isNil ifTrue:[
sortCaseless := true asValue.
sortCaseless onChangeSend:#evaluateModified to:self.
].
^ sortCaseless.
!
sortDirectoriesBeforeFiles
sortDirectoriesBeforeFiles isNil ifTrue:[
sortDirectoriesBeforeFiles := true asValue.
sortDirectoriesBeforeFiles onChangeSend:#evaluateModified to:self.
].
^ sortDirectoriesBeforeFiles.
!
toolBarVisibleHolder
toolBarVisibleHolder isNil ifTrue:[
toolBarVisibleHolder := true asValue.
toolBarVisibleHolder onChangeSend:#evaluateModified to:self.
].
^ toolBarVisibleHolder.
!
viewDescription
viewDescription isNil ifTrue:[
viewDescription := true asValue.
viewDescription onChangeSend:#evaluateModified to:self.
].
^ viewDescription.
!
viewDetails
viewDetails isNil ifTrue:[
viewDetails := true asValue.
viewDetails onChangeSend:#evaluateModified to:self.
].
^ viewDetails.
!
viewDirectoryDescription
viewDirectoryDescription isNil ifTrue:[
viewDirectoryDescription := true asValue.
viewDirectoryDescription onChangeSend:#evaluateModified to:self.
].
^ viewDirectoryDescription.
!
viewDirsInContentsBrowser
viewDirsInContentsBrowser isNil ifTrue:[
viewDirsInContentsBrowser := true asValue.
viewDirsInContentsBrowser onChangeSend:#evaluateModified to:self.
].
^ viewDirsInContentsBrowser.
!
viewFilesInDirectoryTree
viewFilesInDirectoryTree isNil ifTrue:[
viewFilesInDirectoryTree := true asValue.
viewFilesInDirectoryTree onChangeSend:#evaluateModified to:self.
].
^ viewFilesInDirectoryTree.
!
viewGroup
viewGroup isNil ifTrue:[
viewGroup := true asValue.
viewGroup onChangeSend:#evaluateModified to:self.
].
^ viewGroup.
!
viewOwner
viewOwner isNil ifTrue:[
viewOwner := true asValue.
viewOwner onChangeSend:#evaluateModified to:self.
].
^ viewOwner.
!
viewPermissions
viewPermissions isNil ifTrue:[
viewPermissions := true asValue.
viewPermissions onChangeSend:#evaluateModified to:self.
].
^ viewPermissions.
!
viewPreview
viewPreview isNil ifTrue:[
viewPreview := true asValue.
viewPreview onChangeSend:#evaluateModified to:self.
].
^ viewPreview.
!
viewSize
viewSize isNil ifTrue:[
viewSize := true asValue.
viewSize onChangeSend:#evaluateModified to:self.
].
^ viewSize.
!
viewSizeInBytes
viewSizeInBytes isNil ifTrue:[
viewSizeInBytes := false asValue.
viewSizeInBytes onChangeSend:#evaluateModified to:self.
].
^ viewSizeInBytes.
!
viewTime
viewTime isNil ifTrue:[
viewTime := true asValue.
viewTime onChangeSend:#evaluateModified to:self.
].
^ viewTime.
!
viewType
viewType isNil ifTrue:[
viewType := true asValue.
viewType onChangeSend:#evaluateModified to:self.
].
^ viewType.
! !
!FileBrowserV2SettingsAppl methodsFor:'queries'!
hasUnsavedChanges
|aspectList req receiver|
req := self requestor.
receiver := (req notNil and:[req isKindOf:AbstractFileBrowser]) ifTrue:[
req
] ifFalse:[
currentUserPrefs
].
aspectList := AbstractFileBrowser userPreferencesAspectList.
aspectList do:[ : aAspect |
(self perform:aAspect) value ~= (receiver perform:aAspect) value ifTrue:[
^ true
]
].
^ false
! !
!FileBrowserV2SettingsAppl class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsAppl.st,v 1.9 2003-06-12 12:17:44 cg Exp $'
! !