eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'AbstractSettingsApplication':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: AbstractSettingsApplication


Inheritance:

   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

Description:


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.

copyright

COPYRIGHT (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.

Class protocol:

defaults
o  classResources
(comment from inherited method)
if not already loaded, get the classes resourcePack and return it

o  resourcePackName
return the name which is used as the fileNameBase of my resource file.
Here, use the same resources as the Launcher

o  subEntryRawSettingsList
redefine if I have sub-settings entries

interface specs
o  windowSpec

** This method must be redefined in concrete classes (subclassResponsibility) **

o  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
o  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.

o  isShown

o  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


Instance protocol:

accessing
o  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

o  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

o  requestor: anotherApplication

o  settingsDialog

o  settingsDialog: aSettingsDialog

o  settingsString

actions
o  accept

o  discardChangesAndReadSettings

o  evaluateModified

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  readSettings

o  reopenToolsAfterChangedViewStyleSetting

o  saveRequest

o  saveRequestAsking: askForChangeOnRelease
debugging

o  saveSettings

o  saveSettingsIfUnsavedChangesArePresent

o  updateModifiedChannel

aspects
o  acceptChannel

o  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.

o  modifiedChannel

helpers
o  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.

o  myAspectFor: aspectSymbol
used to be (self perform:aspectSymbol),

o  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.

o  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).

o  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.

o  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)

o  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
o  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
o  initialize
must be called if redefined

o  initializeCurrentUserPreferences

menu
o  settingsDialogPopUpMenu

opening
o  open
open a standard interface.
Sorry, but for visualworks compatibility, the builder is returned

protocol
o  askForChangeOnRelease
shall we ask if changed settings should be saved, when closing?

o  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) **

o  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) **

o  editorHelpRelativeWikiURL
the relative URL of the dialog-description in the Wiki.
Can have a #section at the end

o  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) **

o  help

o  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) **

o  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) **

o  widgetsWithChangedSettingsDo: aBlock
to be redefined in subclasses...

queries
o  hasValuesDifferentFromDefault
Modified (format): / 12-02-2019 / 20:47:41 / Stefan Vogel

o  isEnabledInSettingsDialog: aSettingsDialog

o  isWindowsDisplay

o  itemPathName

o  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


Private classes:

    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


ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Mon, 18 Nov 2024 06:56:16 GMT