|
Class: AbstractSettingsApplication
Object
|
+--Model
|
+--ApplicationModel
|
+--AbstractSettingsApplication
|
+--AbstractServerSettingsApplication
|
+--AbstractSettingsApplication::AllSettingsAppl
|
+--AbstractSettingsApplication::AutoloadedPackagesSettingsAppl
|
+--AbstractSettingsApplication::BuildSettingsAppl
|
+--AbstractSettingsApplication::ByteCodeCompilerSettingsAppl
|
+--AbstractSettingsApplication::ChangeFileSettingsAppl
|
+--AbstractSettingsApplication::CodeGeneratorSettingsAppl
|
+--AbstractSettingsApplication::CommunicationLoggingSettingsAppl
|
+--AbstractSettingsApplication::DebuggerSettingsAppl
|
+--AbstractSettingsApplication::DisplaySettingsAppl
|
+--AbstractSettingsApplication::EditSettingsAppl
|
+--AbstractSettingsApplication::GeneralCompilerSettingsAppl
|
+--AbstractSettingsApplication::HTTPStartServerSettingsApplication
|
+--AbstractSettingsApplication::KbdMappingSettingsAppl
|
+--AbstractSettingsApplication::LanguageSettingsAppl
|
+--AbstractSettingsApplication::MemorySettingsAppl
|
+--AbstractSettingsApplication::MiscBridgeCommunicationSettingsAppl
|
+--AbstractSettingsApplication::MiscCommunicationSettingsAppl
|
+--AbstractSettingsApplication::MiscDisplay2SettingsAppl
|
+--AbstractSettingsApplication::MiscDisplaySettingsAppl
|
+--AbstractSettingsApplication::MiscSmalltalkCommunicationSettingsAppl
|
+--AbstractSettingsApplication::OsiSettingsAppl
|
+--AbstractSettingsApplication::PackagePathSettingsAppl
|
+--AbstractSettingsApplication::PrinterSettingsAppl
|
+--AbstractSettingsApplication::ProcessorSchedulerSettingsAppl
|
+--AbstractSettingsApplication::RDoItServerSettingsAppl
|
+--AbstractSettingsApplication::SQLServerSettingsAppl
|
+--AbstractSettingsApplication::STCCompilerSettingsAppl
|
+--AbstractSettingsApplication::SourceCodeFormatSettingsAppl
|
+--AbstractSettingsApplication::SourceCodeManagementSettingsAppl
|
+--AbstractSettingsApplication::StyleSettingsAppl
|
+--AbstractSettingsApplication::SyntaxColorSettingsAppl
|
+--AbstractSettingsApplication::SystemBrowserSettingsAppl
|
+--AbstractSettingsApplication::SystemMessageSettingsAppl
|
+--AbstractSettingsApplication::TerminalViewSettingsAppl
|
+--AbstractSettingsApplication::ToolboxSettingsAppl
|
+--AbstractSettingsApplication::ToolsSettingsAppl
|
+--AbstractSettingsApplication::WorkspaceSettingsAppl
|
+--AbstractSourceCodeManagementSettingsAppl
|
+--FileBrowserV2SettingsAppl
|
+--SettingsDialog::SettingsFilenameAppl
|
+--Tools::CodeView2SettingsAppl
|
+--Tools::FontSettingsApplication
|
+--Tools::LintRuleSettingsApplication
- Package:
- stx:libtool
- Category:
- Interface-Smalltalk
- Version:
- rev:
1.914
date: 2024/04/28 08:40:41
- user: cg
- file: AbstractSettingsApplication.st directory: libtool
- module: stx stc-classLibrary: libtool
This is an abstract framework for settings applications.
For a real settings dialog, you need a concrete settings dialog class to hold the pages
(as an example, see SettingsDialog)
and someone who specifies the hierarchy of settings-pages in a spec.
(as an example, see SettingsDialog class>>defaultSettingsApplicationList)
typical use:
|settingsList settingsApp|
settingsList := NewLauncher settingsList.
settingsApp := SettingsDialog new.
'settingsApp requestor:requestingApplication'.
settingsApp installSettingsEntries:settingsList.
settingsApp allButOpen.
settingsApp window label:('ST/X Settings').
settingsApp openWindow.
copyrightCOPYRIGHT (c) 2002 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
defaults
-
classResources
-
(comment from inherited method)
if not already loaded, get the classes resourcePack and return it
-
resourcePackName
-
return the name which is used as the fileNameBase of my resource file.
Here, use the same resources as the Launcher
-
subEntryRawSettingsList
-
redefine if I have sub-settings entries
interface specs
-
windowSpec
-
** This method must be redefined in concrete classes (subclassResponsibility) **
-
windowSpecForDialog
-
This resource specification was automatically generated
by the UIPainter of ST/X.
Usage example(s):
UIPainter new openOnClass:AbstractSettingsApplication andSelector:#windowSpecForDialog
AbstractSettingsApplication new openInterface:#windowSpecForDialog
|
queries
-
isAbstract
-
Return if this class is an abstract class.
True is returned here for myself only; false for subclasses.
Abstract subclasses must redefine this again.
-
isShown
-
-
quickSearchStrings
-
returns a set of words to match in the quickSearch.
Here, as a fallback, the keys from the help spec,
the widget names and label aspects are returned
Notice that both all words and its current language translation are included
in the set and will be matched against the word in the quick search field
Usage example(s):
AbstractSettingsApplication::BuildSettingsAppl quickSearchStrings
Expecco::HotkeysSettingsApp quickSearchStrings
|
accessing
-
clearDidModifySettings
-
clear the flag that any settings was changed.
Not to confuse with the modified flag, which means that a settings app's
changes must be stored into the UserPreferences.
This one tells if any UserPreferences has been changed, and the userPrefs
should be saved back to the settings.rc file
-
didModifySettings
-
true, if any settings was changed.
Not to confuse with the modified flag, which means that a settings app's
changes must be stored into the UserPreferences.
This one tells if any UserPreferences has been changed, and the userPrefs
should be saved back to the settings.rc file
-
requestor: anotherApplication
-
-
settingsDialog
-
-
settingsDialog: aSettingsDialog
-
-
settingsString
-
actions
-
accept
-
-
discardChangesAndReadSettings
-
-
evaluateModified
-
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
readSettings
-
-
reopenToolsAfterChangedViewStyleSetting
-
-
saveRequest
-
-
saveRequestAsking: askForChangeOnRelease
-
debugging
-
saveSettings
-
-
saveSettingsIfUnsavedChangesArePresent
-
-
updateModifiedChannel
-
aspects
-
acceptChannel
-
-
aspects
-
if redefined to return a non-nil list of preference-key aspects,
you can then use the basicSaveSettings/basicReadSettings/hasUnsavedChanges
as inherited from here.
Otherwise, if you do not want the aspect-list-keys to be read/saved in the settings,
you MUST redefine all of the 3 above mentioned methods.
-
modifiedChannel
-
helpers
-
hasChangedAspectIn: aListOfAspects asComparedTo: anAspectProvider
-
this code-sharing helper compares a bunch of aspect value against some object.
The object is typically the current userPreferences object, or a flag-holder, such
as ParserFlags.
Using this, and a list of aspect selectors replaces code like:
someone aspect1 ~= (self aspect1 value) ifTrue:[^ true].
someone aspect2 ~= (self aspect2 value) ifTrue:[^ true].
...
someone aspectN ~= (self aspectN value) ifTrue:[^ true].
^ false
Prerequisite:
local aspects must be named like corresponding aspect methods in the flag-provider.
-
myAspectFor: aspectSymbol
-
used to be (self perform:aspectSymbol),
-
readAspects: aListOfAspects from: anAspectProvider
-
this code-sharing helper reads a bunch of aspect values from some object.
The object is typically the current userPreferences object, or a flag-holder, such
as ParserFlags.
Using this, and a list of aspect selectors replaces code like:
self aspect1 value:(someone aspect1).
self aspect2 value:(someone aspect2).
...
self aspectN value:(someone aspectN).
Prerequisite:
local aspects must be named like corresponding aspect methods in the flag-provider.
-
valueHolderWithUpdateWith: initialValue
-
return a value holder which sends #updateModifiedChannel to:self
when modified
(this setup is needed so often in subclasses,
that it makes sense for this helper).
-
whichChangedAspectIn: aListOfAspects asComparedTo: anAspectProvider
-
this code-sharing helper compares a bunch of aspect value against some object,
and returns a list of changed aspect names (for info only, in a confirmer).
The object is typically the current userPreferences object, or a flag-holder, such
as ParserFlags.
Using this, and a list of aspect selectors replaces code like:
someone aspect1 ~= (self aspect1 value) ifTrue:[^ true].
someone aspect2 ~= (self aspect2 value) ifTrue:[^ true].
...
someone aspectN ~= (self aspectN value) ifTrue:[^ true].
^ false
Prerequisite:
local aspects must be named like corresponding aspect methods in the flag-provider.
-
whichChangedAspectIn: aListOfAspects asComparedTo: anAspectProvider into: aBlock
-
this code-sharing helper compares a bunch of aspect value against some object,
and returns a list of changed aspect names through aBlock(for info only, in a confirmer)
-
writeAspects: aListOfAspects to: anAspectProvider
-
this code-sharing helper writes a bunch of aspect values into some object.
The object is typically the current userPreferences object, or a flag-holder, such
as ParserFlags.
Using this, and a list of aspect selectors replaces code like:
someone aspect1:(self aspect1 value).
someone aspect2:(self aspect2 value).
...
someone aspectN:(self aspectN value).
Prerequisite:
local aspects must be named like corresponding aspect methods in the flag-provider.
hooks
-
preOpenWith: anUIBuilder
-
(comment from inherited method)
this is sent before the applications main window is opened.
Can be redefined in subclasses for actions right before opening the view.
initialization
-
initialize
-
must be called if redefined
-
initializeCurrentUserPreferences
-
menu
-
settingsDialogPopUpMenu
-
opening
-
open
-
open a standard interface.
Sorry, but for visualworks compatibility, the builder is returned
protocol
-
askForChangeOnRelease
-
shall we ask if changed settings should be saved, when closing?
-
basicReadSettings
-
utility to read aspects as listed in the aspects method.
If that has not been redefined, an error will be reported,
as you should then redefine this method in a subclass
** This method must be redefined in concrete classes (subclassResponsibility) **
-
basicSaveSettings
-
utility to save aspects as listed in the aspects method.
If that has not been redefined, an error will be reported,
as you should then redefine this method in a subclass
** This method must be redefined in concrete classes (subclassResponsibility) **
-
editorHelpRelativeWikiURL
-
the relative URL of the dialog-description in the Wiki.
Can have a #section at the end
-
hasUnsavedChanges
-
utility to check for changed aspects as listed in the aspects method.
If that has not been redefined, an error will be reported,
as you should then redefine this method in a subclass
** This method must be redefined in concrete classes (subclassResponsibility) **
-
help
-
-
helpFilename
-
subclasses must return either the relative path of a helpFile
in the doc/online/<language>/help directory,
or an absolute path (typically in its packageDirectory).
If an absolute filename is returned, the %(lang) sequence is replaced
by the current user's language.
Or nil, if no help is available.
** This method must be redefined in concrete classes (subclassResponsibility) **
-
whichUnsavedChangesInto: aBlock
-
utility to return a list of changed aspects through aBlock.
(for info only, in a confirmer)
** This method must be redefined in concrete classes (subclassResponsibility) **
-
widgetsWithChangedSettingsDo: aBlock
-
to be redefined in subclasses...
queries
-
hasValuesDifferentFromDefault
-
Modified (format): / 12-02-2019 / 20:47:41 / Stefan Vogel
-
isEnabledInSettingsDialog: aSettingsDialog
-
-
isWindowsDisplay
-
-
itemPathName
-
-
quickSearchStrings
-
returns a set of keywords to match in the quickSearch.
Notice that both the word and its current language translation is matched against
the text in the quick search field
AllSettingsAppl
AutoloadedPackagesSettingsAppl
BuildSettingsAppl
ByteCodeCompilerSettingsAppl
ChangeFileSettingsAppl
CodeGeneratorSettingsAppl
CommunicationLoggingSettingsAppl
DebuggerSettingsAppl
DisplaySettingsAppl
EditSettingsAppl
GeneralCompilerSettingsAppl
HTTPStartServerSettingsApplication
KbdMappingSettingsAppl
LanguageSettingsAppl
MemorySettingsAppl
MiscBridgeCommunicationSettingsAppl
MiscCommunicationSettingsAppl
MiscDisplay2SettingsAppl
MiscDisplaySettingsAppl
MiscSmalltalkCommunicationSettingsAppl
OsiSettingsAppl
PackagePathSettingsAppl
PrinterSettingsAppl
ProcessorSchedulerSettingsAppl
RDoItServerSettingsAppl
SQLServerSettingsAppl
STCCompilerSettingsAppl
SourceCodeFormatSettingsAppl
SourceCodeManagementSettingsAppl
StyleSettingsAppl
SyntaxColorSettingsAppl
SystemBrowserSettingsAppl
SystemMessageSettingsAppl
TerminalViewSettingsAppl
ToolboxSettingsAppl
ToolsSettingsAppl
WorkspaceSettingsAppl
|