Browse Prior Art Database

Window Saving Technique to Improve Smalltalk/V PM Responses time

IP.com Disclosure Number: IPCOM000105454D
Original Publication Date: 1993-Aug-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 65K

Publishing Venue

IBM

Related People

Eisen, IR: AUTHOR [+2]

Abstract

Windows which require many subpanes and extensive processing are frequently very slow to come up in Smalltalk/V* PM. This article describes a technique which greatly speeds up this processing.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

Window Saving Technique to Improve Smalltalk/V PM Responses time

      Windows which require many subpanes and extensive processing
are frequently very slow to come up in Smalltalk/V* PM.  This article
describes a technique which greatly speeds up this processing.

      Smalltalk/V PM applications which use windows that require many
subpanes and extensive processing are frequently very slow to create
the window and make it visible.  This article describes a technique
for creating the window and saving it so that the window creation
time for an application is greatly reduced.

      The technique is for the ViewManager subclass to create a class
variable in which to store the window.  The ViewManager subclass also
creates a class variable to determine if the window is in use.  A
typical class definition for this type of application would be:

ViewManager subclass: #MyApplication
  instanceVariableNames: 'var1 var2 var3'
  classVariableNames:
    'SavedWindowInUse SavedWindow '
  poolDictionaries:
    'NLSText WBConstants '

The class then provides an openOn: method which will use the saved
window if it is available.  The openOn: method would work in
conjunction with an open method which actually builds the window.  A
typical openOn: method follows:
openOn: anObject

(SavedWindow isNil)
  ifTrue: [
        self open.                   -there is no saved window so
                                      create one
        SavedWindow:= views at: 1.   -save the created window
        SavedWindowInUse := true.  ]  -set the flag to indicate the
saved
                                          -window is in use
  ifFalse: [
  (SavedWindowInUse)
    ifTrue: [  self open ]        -the saved window is in use so
creat
 another

    fFalse: [
        views add: SavedWindow.        -use the saved window for this
instance
        (SavedWindow owner) become: self.  -reset the saved window's
owner
                                             -to be this instance
        PMWindowLibrary                           -make the window a
child of
          setParent: (SavedWindow parent handle)  -the desktop so
that
                         ...