# HG changeset patch # User penk # Date 1045758477 -3600 # Node ID 629ceb2e68d52a7737574cf9c1445b001f4be2b9 # Parent e37649ade3485169e42bb630f2a59ab4a5b48c9e initial checkin diff -r e37649ade348 -r 629ceb2e68d5 FileBrowserV2SettingsDialog.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FileBrowserV2SettingsDialog.st Thu Feb 20 17:27:57 2003 +0100 @@ -0,0 +1,280 @@ +"{ Package: 'stx:libtool' }" + +ApplicationModel subclass:#FileBrowserV2SettingsDialog + instanceVariableNames:'appList requestor selectionInApplList subCanvasApplicationHolder + help applList appIsCategory enableButtons doReload doSave + settingsAppl' + classVariableNames:'ApplicationList' + poolDictionaries:'' + category:'Interface-Tools-File' +! + + +!FileBrowserV2SettingsDialog class methodsFor:'interface specs'! + +mainMenu + "This resource specification was automatically generated + by the MenuEditor of ST/X." + + "Do not manually edit this!! If it is corrupted, + the MenuEditor may not be able to read the specification." + + " + MenuEditor new openOnClass:FileBrowserV2SettingsFrame andSelector:#mainMenu + (Menu new fromLiteralArrayEncoding:(FileBrowserV2SettingsFrame mainMenu)) startUp + " + + + + ^ + #(#Menu + #( + #(#MenuItem + #label: 'File' + #translateLabel: true + #submenu: + #(#Menu + #( + #(#MenuItem + #label: 'Load Settings from...' + #itemValue: #loadSettingsFromFile + #translateLabel: true + ) + #(#MenuItem + #label: 'Save Settings to...' + #itemValue: #saveSettingsIntoFile + #translateLabel: true + ) + #(#MenuItem + #label: 'Exit' + #itemValue: #closeRequest + #translateLabel: true + ) + ) + nil + nil + ) + ) + ) + nil + nil + ) +! + +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:FileBrowserV2SettingsFrame andSelector:#windowSpec + FileBrowserV2SettingsFrame new openInterface:#windowSpec + FileBrowserV2SettingsFrame open + " + + + + ^ + #(#FullSpec + #name: #windowSpec + #window: + #(#WindowSpec + #label: 'Settings Dialog' + #name: 'Settings Dialog' + #min: #(#Point 10 10) + #max: #(#Point 1024 768) + #bounds: #(#Rectangle 12 22 365 596) + #menu: #mainMenu + ) + #component: + #(#SpecCollection + #collection: #( + #(#ViewSpec + #name: 'Box2' + #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) + #component: + #(#SpecCollection + #collection: #( + #(#SubCanvasSpec + #name: 'FileBrowserV2SettingsAppl' + #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -34 1) + #level: 0 + #hasHorizontalScrollBar: false + #hasVerticalScrollBar: false + #majorKey: #FileBrowserV2SettingsAppl + #createNewApplication: true + #createNewBuilder: true + #postBuildCallback: #postBuildSubCanvas: + ) + #(#HorizontalPanelViewSpec + #name: 'HorizontalPanel1' + #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1) + #horizontalLayout: #fitSpace + #verticalLayout: #center + #horizontalSpace: 3 + #verticalSpace: 3 + #component: + #(#SpecCollection + #collection: #( + #(#ActionButtonSpec + #label: 'OK' + #name: 'OK' + #translateLabel: true + #model: #doSave + #enableChannel: #enableButtons + #extent: #(#Point 84 22) + ) + #(#ActionButtonSpec + #label: 'Reload' + #name: 'Reload' + #translateLabel: true + #model: #doReload + #enableChannel: #enableButtons + #extent: #(#Point 85 22) + ) + #(#ActionButtonSpec + #label: 'Cancel' + #name: 'Cancel' + #translateLabel: true + #model: #closeRequest + #extent: #(#Point 84 22) + ) + #(#ActionButtonSpec + #label: 'Help' + #name: 'Help' + #translateLabel: true + #model: #help + #enableChannel: #enableButtons + #extent: #(#Point 85 22) + ) + ) + + ) + ) + ) + + ) + ) + ) + + ) + ) +! ! + +!FileBrowserV2SettingsDialog methodsFor:'accessing'! + +requestor + "return the value of the instance variable 'requestor' (automatically generated)" + + ^ requestor +! + +requestor:something + "set the value of the instance variable 'requestor' (automatically generated)" + + requestor := something. +! ! + +!FileBrowserV2SettingsDialog methodsFor:'actions'! + +doReload + + settingsAppl loadRequest. +! + +doSave + + settingsAppl saveRequest. + self closeRequest. +! + +help + + settingsAppl help +! ! + +!FileBrowserV2SettingsDialog methodsFor:'initialization & release'! + +closeRequest + "This is a hook method generated by the Browser. + It will be invoked when your app/dialog-window is about to be + closed (this method has a chance to suppress the close). + See also #closeDownViews, which is invoked when the close is really done." + + settingsAppl saveRequest ifFalse:[ + ^ self + ]. + ^ super closeRequest +! + +initialize + + super initialize. +! + +postBuildSubCanvas:aWidget + + settingsAppl := aWidget client. + aWidget keepClientView:true. +! ! + +!FileBrowserV2SettingsDialog methodsFor:'menu actions'! + +loadSettingsFromFile + + "restore settings from a settings-file." + + "a temporary kludge - we need a central systemSettings object for this, + which can be saved/restored with a single store/read." + + |fileName| + + fileName := Dialog + requestFileName:(resources string:'Load Settings From:') + default:'settings.stx' + ok:(resources string:'Load') + abort:(resources string:'Cancel') + pattern:'*.stx' + fromDirectory:nil. + + (fileName size == 0) ifTrue:[ + "/ canceled + ^ self + ]. + + self withWaitCursorDo:[ + Smalltalk fileIn:fileName. + Transcript current topView model reOpen. + self doReload. + ]. +! + +saveSettingsIntoFile + + |fileName resources| + + resources := self class owningClass classResources. + + self doReload. + + fileName := Dialog + requestFileName:(resources string:'Save settings in:') + default:'settings.stx' + ok:(resources string:'Save') + abort:(resources string:'Cancel') + pattern:'*.stx' + fromDirectory:'.'. + + fileName size ~~ 0 ifTrue:[ + "not canceled" + FileDialog saveSettingsIn:fileName. + ] +! ! + +!FileBrowserV2SettingsDialog class methodsFor:'documentation'! + +version + ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsDialog.st,v 1.1 2003-02-20 16:27:57 penk Exp $' +! !