eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'AbstractLauncherApplication':

Home

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

Class: AbstractLauncherApplication


Inheritance:

   Object
   |
   +--Model
      |
      +--ApplicationModel
         |
         +--ToolApplicationModel
            |
            +--AbstractLauncherApplication
               |
               +--NewLauncher

Package:
stx:libtool
Category:
Interface-Smalltalk
Version:
rev: 1.545 date: 2019/07/26 08:12:43
user: cg
file: AbstractLauncherApplication.st directory: libtool
module: stx stc-classLibrary: libtool
Author:
Claus Gittinger, eXept Software AG

Description:


This is an abstract class, providing mechanisms and common functionality
for launcher-type applications. Subclasses may implement their GUI either
with or without the UIPainter framework, and still use the common functions
provided here.


Class protocol:

accessing
o  closeAllLaunchers
close all opened launchers

usage example(s):

     self closeAllLaunchers.
     NewLauncher open

o  current
return the launcher running on the current screen.
(for access via addMenu/ removeMenu)

usage example(s):

     NewLauncher current

o  openLaunchers
return all opened launchers

defaults
o  notifyingEmergencyHandler
return a block (used as an emergency handler
for exceptions), which does errorNotification before going
into the debugger.

image specs
o  communicationIcon
This resource specification was automatically generated
by the ImageEditor of ST/X.

usage example(s):

     self communicationIcon inspect
     ImageEditor openOnClass:self andSelector:#communicationIcon
     Icon flushCachedIcons

o  cross2Icon
This resource specification was automatically generated
by the ImageEditor of ST/X.

usage example(s):

     self cross2Icon inspect
     ImageEditor openOnClass:self andSelector:#cross2Icon
     Icon flushCachedIcons

o  httpServerIcon

o  systemBrowser24x24Icon

queries
o  isAbstract

settings application list
o  addSettingsApplicationByClass: aClass withName: aName icon: anIcon
Ignore existing entries found in SettingsList for that name

o  allSettingsList

o  defaultSettingsApplicationList
cg: moved it to SettingsDialog - everyone is expecting it there and had to search it...

o  expandSettingsList: rawList
this expands a raw settings list,
by looking for entries with a block in their class name.
If any such is present, it is evaluated, returning
a collection of actual entries to use. Then, also % entries in
the name and icon are evaluated by sending corresponding messages
to the collected classes.
This allows for easy dynamic construction of more complicated
lists, for example to adapt to the set of loaded classes dynamically.

o  initializeSettingsList
self withAllSubclassesDo:[:cls | cls initializeSettingsList ]

o  removeSettingsApplicationByClass: aClass

o  removeSettingsEntry: entry forSettingsApp: aSettingsApp

o  settingsList
do NOT cache SettingsList

o  userSettingsList

settings dialog
o  openSettings

o  openSettingsAndSelect: selectedPageName

o  openSettingsFor: requestor

o  openSettingsFor: requestor andSelect: selectedPageName
settingsApp requestor:self.

utilities
o  openLoadPackageDialog
open a dialog showing wellknown packages (listed in the packages directory)
and offer to load the selected one(s).
TODO: make this a little app instead of an ad-hoc dialog,
add remote packages (central goody repository?)


Instance protocol:

actions - file
o  snapshot
saves a snapshot image, after asking for a fileName

usage example(s):

                 snapshot failed for some reason (disk full, no permission etc.)

o  snapshotAndExit
saves a snapshot image and exits, after asking for a fileName

drag & drop
o  canDropObjects: aCollectionOfDropObjects
Any object can be dropped into workspace...

o  dropFileObject: aFilename

o  dropObjects: aCollectionOfObjects
Any object can be dropped:
text: open a workspace
file:
.st - open a cange-browser
other - open a fileBrowser

o  dropTextObject: aDropContext

menu actions - tools
o  clearAllCoverageInfo
clear all coverage information

o  startSUnitTestRunner2
open the SUnit test runner

oldStyle-user actions-settings
o  communicationsSettings
open a dialog on misc other settings

o  compilerSettings
open a dialog on compiler related settings

o  displaySettings
open a dialog on display related settings

o  editSettings
open a dialog on edit settings

o  fontSettings
open a dialog on font related settings

o  javaSettings
open a dialog on java-subsystem related settings

o  keyboardSetting
open a dialog on keyboard related settings

o  languageSetting
open a dialog on language related settings

o  loadSettings
restore settings from a settings-file.

o  memorySettings
open a dialog on objectMemory related settings

o  messageSettings
open a dialog on infoMessage related settings

o  miscSettings
open a dialog on misc other settings

o  printerSettings
open a dialog on printer related settings

o  saveSettings
save settings to a settings-file.

o  settingsDialog: symbolOrBlock

o  sourceAndDebuggerSettings
open a dialog on misc other settings

o  toolSettings
open a dialog on tool settings

o  viewStyleSetting
open a dialog on viewStyle related settings

private
o  allTopViewsAndLabelsSortedFilteringWindowGroups: windowGroupFilterOrNil
helper returning all windows on all screens sorted by a label to suite

o  allTopViewsFilteringWindowGroups: windowGroupFilterOrNil withLabelsDo: aBlock
helper enumerating all windows on all screens with a label to suite

o  findApplicationClass: classOrClassName nameSpace: aNameSpace
find some application, given the classes name.
Look for it in Smalltalk and the given nameSpace

o  findWindow: title
a helper for find & destroy and find & raise operations;
let user choose a view and return it; return nil on cancel

o  findWindow: title windowGroupFilter: windowGroupFilterOrNil
a helper for find & destroy and find & raise operations;
let user choose a view and return it; return nil on cancel

o  openApplication: classOrClassName
open an application, given by the classe name.

o  openApplication: classOrClassName nameSpace: aNameSpace
open some application, given the classes name.
Look for it in Smalltalk and the given nameSpace

o  openApplication: classOrClassName nameSpace: aNameSpace with: aSelector
open some application, given the classes name.
Look for it in Smalltalk and the given nameSpace

o  openFileBrowser
open a fileBrowser

o  pickAView
let user pick a view and return it

o  saveScreenImage: anImage defaultName: defaultName
ask user for filename, then save an image into a file

o  showDocumentation: aRelativeDocFilePath
open an HTML browser on some document

private-settings callBacks
o  changeViewStyleTo: newStyle

o  fontBoxForEncoding: encodingMatch
open a fontBox, showing fonts which match some encoding
(used when changing to japanese ...)

o  reopenLauncher
reopen a new launcher.
for now (since style & language settings currently do
not affect living views ...)
WARNING: bad design: Message known in LauncherDialogs

queries
o  bugReporterAvailable

o  hasPDALauncher

o  monticelloRepositoryAvailable
MCRepositoryBrowser notNil

o  processName
for monitors only - my name

o  remoteImageBrowserAvailable

o  transcript
my transcript

o  windowTreeViewAvailable
WindowTreeView notNil

settings dialog
o  openSettings

o  settingsClosed

startup & release
o  addTopViewsToCurrentProject
ignored here - the launcher is always global (i.e. not project private).

o  closeDownViews

o  postBuildWith: aBuilder

o  reOpen
reopen a new launcher.
for now (since style & language settings currently do
not affect living views ...)

o  requestForWindowClose
close request from windowing system (window close);
confirm and ask if closing of launcher only or
a Smalltalk-exit is wanted

o  saveAndTerminateRequest
some windowManagers can send this, to shutDown an application
but let it save its state before, for later restart.
Although I have not yet encountered such a windowManager,
we are already prepared for this ;-)

user actions-about
o  openLicenseConditions
open an HTML browser on the 'LICENCE' document

user actions-classes
o  browseAllBreakAndTracePoints
open a browser showing all breakPointed/traced methods
(but, to get rid of them, there is also a menu itme to remove them all)

o  browseContainingString
open a browser after asking for a string

usage example(s):

     self basicNew browseContainingString

o  browseImplementors
open an implementors- browser after asking for a selector

o  browseReferencesToClass
open a browser after asking for a class

o  browseResources
open a resource- browser after asking for a resource string

o  browseSenders
open a senders- browser after asking for a selector

o  browseUnboundGlobals
open a browser on methods refering to unbound global variables

o  browseUndeclared
open a browser on methods refering to undeclared variables

o  clearUndeclaredVariables
remove all undeclared variables

o  newSystemBrowserClass

o  removeAllBreakAndTracePoints
remove all break- and trace points

o  startClassBrowser
open a classBrowser; asks for class

o  startClassBrowserOnChangedClasses
open a classBrowser on the changeSet

o  startClassBrowserOnChangedMethods
open a classBrowser on the changeSet

o  startClassBrowserOnChanges
open a classBrowser on the changeSet

o  startClassHierarchyBrowser
open a classHierarchyBrowser; asks for class

o  startFullClassBrowser
open a fullClass systemBrowser; asks for class

o  startMonticelloRepositoryBrowser
open a monticello repository browser. Unfinished & experimental.

o  startRemoteImageBrowser
open a remoteImage browser; asks for hostname.
The remote host must have an st/x running with remote browsing enabled.
Sorry, for now, only the old browser supports remote browsing.

o  startSnapshotImageBrowser
open a snapshotImage browser; asks for filename.
Sorry, for now, only the old browser supports remote browsing.

user actions-demos
o  startPDALauncher

o  startRemoteLauncher

o  startRemoteLauncherWithSetup: aSetupBlock
"/ Q: should we allow GL graphics on the remote display

user actions-file
o  exit
saves a snapshot image and exits, after asking for a fileName

usage example(s):

do not exit when snapshot writing fails

o  fileLoadPackage
open a dialog showing wellknown packages (listed in the packages directory)
and offer to load the selected one(s).
TODO: make this a little app instead of an ad-hoc dialog,
add remote packages (central goody repository?),
add a description text view, showing more info about the package (from where?)

o  saveImageAs: aFileName
save image in aFilename.
Sender has to handle SnapshotError

user actions-help
o  showBookPrintDocument
open an HTML browser on the 'book'-printing document

o  showCredits

o  showPortInfo

o  showRFC

o  showTipOfTheDay
open a tip-of-the-day window

o  startClassDocumentation
open an HTML browser on the 'classDoc/TOP' document

o  startDocumentationIndex
open an HTML browser on the 'index' document

o  startDocumentationTool
open an HTML browser on the 'TOP' document

o  startLauncherDocumentation
open an HTML browser on the launcher section in the 'tools/TOP' document

o  startProgrammersGuide
open an HTML browser on the 'programers guide' document

o  startSmalltalkTutorial
open an HTML browser on 'doc\books\JoyOfST\IntroToST.html' document

o  startToolsDocumentation
open an HTML browser on the 'tools/TOP' document

o  startTutorial
open an HTML browser on the 'getstart/tutorial.html' document

o  startWhatsNewDocumentation
open an HTML browser on the 'whatsNew.html' document

o  startWhatsNewSTX
open an HTML browser on the 'relNotes.html' document

user actions-system
o  compressingGarbageCollect
perform a compressing garbageCollect

o  flushCachedResources
flush all cached resources (e.g. translations).

o  garbageCollect
perform a non-compressing garbageCollect

o  objectModuleDialog
opens a moduleInfo dialog

o  startStopEventTrace
start/stop event tracing for a particular view

user actions-tools
o  inspectGlobalVariables
inspect globals

o  inspectWorkspaceVariables
inspect workspace variables

o  newProject
creates a new project & opens a projectView for it

o  openEvaluationWorkspace

o  openMyWorkspace

o  openRegularWorkspace

o  openSystemWorkspace

o  openTerminal

o  openTextDiffTool

o  openWorkspace

o  removeAllWorkspaceVariables
remove workspace variables

o  selectProject
asks for and switch to another project

o  startBugMessages
open the bug reporter

o  startChangeSetBrowser
open a change Set Browser on the changes in the system

o  startChangesBrowser
open a changebrowser on the change file - either new or old GUI, depending on userPrefs

o  startInternationalLanguageTranslationEditor
open the language-string editor (english/german/spanish etc.)

o  startNewChangesBrowser
opens the new changeBrowser

o  startNewLauncher
opens the new launcher

o  startOldChangesBrowser
opens the old changeBrowser

o  startOldLauncher
opens the old launcher

o  startSUnitTestRunner
open the configured SUnit test runner

o  startSUnitTestRunner1
open the SUnit test runner

o  startSmaCCParserGenerator
open the SmaCC-ParserGenerator UI

user actions-windows
o  allTopViewsDo: aBlock

o  askForAnotherDisplay
ask for some other display

o  bringAllWindowsOntoScreen
Transcript topView application bringAllWindowsOntoScreen

o  bringWindow: aWindow intoBounds: bounds
shift & resize a view to be completely inside bounds.

o  bringWindowOntoScreen: aWindow
shift & resize a view to be visible.
If there are multiple screens,bring them all onto the screen where the launcher is

o  deIconifyAllWindows
Transcript topView application deIconifyAllWindows

o  findAndDestroyWindow
find a window (by name) and destroy it

o  findAndInspectWindow
find a window (by name) and inspect it

o  findAndMigrateWindow
find a window (by name) and migrate it to some other display

o  findAndMigrateWindowBack
find a window (by name) and migrate it back to this display

o  findAndRaiseWindow
find a window (by name) and raise it

o  fullScreenHardcopy
after a second (to allow redraw of views under menu ...),
save the contents of the whole screen.

o  fullScreenHardcopyUngrabbed
after a second (to allow redraw of views under menu ...),
save the contents of the whole screen.

o  hardcopyOfView: aView
after a second (to allow redraw of views under menu ...),
save a view's contents as bitmap image.

o  iconifyAllWindows

o  migrateAllWindows
migrate all views to some other display

o  migrateAllWindowsToDisplay
migrate all views to the current display

o  migrateAllWindowsToDisplay: aDisplay
migrate all views to some other display

o  migrateWindow: aWindow
migrate a view to some other display

o  migrateWindow: aWindow withBackOption: withBackOption
migrate a view to some other display

o  openWindowTreeInspector

o  screenHardcopy
after a second (to allow redraw of views under menu ...),
let user specify a rectangular area on the screen
and save its contents.

o  screenHardcopyWithDelay
after some time (to allow user to pull menu or similar...),
let user specify a rectangular area on the screen
and save its contents.

o  showFlyByWindowInformation
show infos about window under the mouse pointer

o  startWindowTreeView
open a windowTree (on a picked topView)

o  startWindowTreeViewForAll
open a windowTree on all views in the system

o  viewBrowse
let user pick a view and browse its Application class.
Of course, only Smalltalk views are allowed

o  viewDestroy
let user pick a view and destroy it.
Even allow destroying non-Smalltalk views
(also for views which I forgot due to some error)

o  viewHardcopy
after a second (to allow redraw of views under menu ...),
let user specify a view and save its contents.

o  viewInspect
let user pick a view and inspect it.
Of course, only Smalltalk views are allowed

o  viewMigrate
let user pick a view and migrate it to some other display.
Only Smalltalk views are allowed

o  viewSelectAndShrink
let user pick a view and shrink it to a reasonable size
Added for stupid mac, to get windows back onto the screen,
which have their resize handle hidden or unreachable.

o  widgetHardcopy
after a second (to allow redraw of views under menu ...),
let user specify a widget and save its contents.


Private classes:

    LauncherDialogs
    PackageLoadDialog


ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Tue, 17 May 2022 21:00:36 GMT