The SubSpecification Wigdet Table of the Widgets The SubCanvas Wigdet
 

The SubCanvas Component

[A View of an empty Arbitrary Widget]

View Class: View
Spec Class: SubCanvasSpec

The SubCanvas Component allows inclusion of another (sub) application with all of its components.
It also allows for another UI-specification to be embedded, operating on the main-applicationModel.


The Basics Section:

ID Unique symbolic name (ID) of the box.  
This ID can be used by the application to access the widget via "builder>>componentAt:ID".
Major Key Class which provides the window spec to be included.
If left unspecified, the application's class itself is used
(or the spec is fetched from the Spec-value-holder as described below).
Minor Key Message selector sent to the above class, to provide the window spec.
If no Spec-value-holder (see below) is defined, the included
application is a static one - i.e. the spec is retrieved via major/minor
key and built into the main application. This is done at initialization
time.
If a Spec-value-holder is defined, it is supposed to provide an interface spec
and a new subApplication is built into the main application, whenever the
valueHolders spec-value changes.
This allows for highly dynamic interfaces to be built.
Client Key Message selector sent to the application,
to provide the application instance of the subCanvas;
i.e. the applicationModel of the subCanvas (which may be the application itself, but need not be).
If no Application-value-holder (see below) is defined, the used
applicationModel is a static one - i.e. it is retrieved via the client
key at initialization time and remains unchanged (even if the subcanvas spec is dynamically changed).
If an Application-value-holder (see below) is defined, the applicationModel
used in the subCanvas can also be changed dynamically
(usually together with a changed spacification).
Create
New Application
Only enabled, if a majorKey is provided,
which names a class, AND no clientKey has been specified,
AND no clientHolder has been specified.
If on, a new instance of the majorKey class is created;
if off, the main application is used as application of the subCanvas.
 


If either clientKey or clientHolder is defined,
the application instance is provided either once during construction
via the clientKey, or dynamically via the clientHolder.

Create
New Builder
Only enabled, if above flag is set.
If on, the created application instance gets its own UIBuilder;
if off, the main applications builder is used to build the interface.


This has a subtle effect on the aspect-valueHolders: if the subApp uses
the main builder, it will share the aspects with the main application.


This should be set, if you embed multiple subApplications, which use the
same aspect names, and you don't want them to be shared.

Vertical Scroll Bar Turns on/off that the widget provides vertical scrolling capabilities.
Vertical Mini Scroll Bar Turns on/off that the widget uses a small vertical scroll bar. 
This attributes can only be set, if the attribute Vertical Scroll Bar is turned on.
Horizontal Scroll Bar Turns on/off that the widget provides horizontal scrolling capabilities.
Horizontal Mini Scroll Bar Turns on/off that the widget uses a small horizontal scroll bar. 
This attributes can only be set, if the attribute Horizontal Scroll Bar is turned on.
Auto Hide Controls autoHiding of scrollbars.
If on, scrollbars hide themself, if the contents is smaller than the scrolled view.
If off, scrollBars never hide themSelf.
If set to default, the autoHide feature is controlled by the viewStyle
and scrollbars behave "natural" for the operating system.
(true for windows, false for most unix-styles).
 
 

The Details Section:

Border Defines the width of the border.
Level Defines the width of the 3D-border. 
Positive values provide a raising, 
negative values provide a lowering of the widget.
Initially Disabled Turns on/off that the widget is initially disabled.
Initially Invisible Turns on/off that the widget is initially invisible.
 
 

The Channels Section:

Visible Aspect selector or binding providing a boolean visiblity flag. 
This allows for the subSpecs visibility to be controlled dynamically.
If a constant boolean or block is provided by the aspect,
the visibility is determined once, when the subSpec is built.
Application
(ClientChannel)
Aspect selector or binding providing the application instance. 
This allows a valueHolder to hold the subCanvases application instance
(i.e. the applicationModel).
If not specified, the application is:
- provided by clientKey (if defined)
- created new (if majorKey names a class,
  no clientKey is defined, and the createNewApp toggle is on
- the main application (otherwise)
Spec Aspect selector or binding providing the window spec. 
This allows a valueHolder to provide the window specification for the
subCanvas and will arrange for the subCanvas to rebuild its widgets whenever
the specification in the valueHolder changes.

Callbacks:

Interface Selector A message selector sent to the application when the subApplication has been opened.
Allows for hookup actions to be performed in the master application.
Interface Argument An optional argument passed with above message.

The SubChannels Section:

This section allows for a subApplications aspects to be "linked" to master applications aspects, allowing for subSpecs to be "plugged" into the masterApplication without a need to programatically define its aspects.
For this, the class providing the windowSpec of the subSpecification (i.e. the class as specified by the majorKey) must implement a method named #subCanvasAspectHolders, which returns a collection of aspect selector-symbols, which are assumed to be exported by the subCanvas.

Each of the subCanvases exported aspects can be linked to a masterApplications aspect, and a master-app callBack can be defined, which is invoked, when the subAspect changes.

 

The Help Section:

see document "Using the Help Tool"
 
 

The Layout Section:

see document "The Layout of the Widgets"
 
 


[stx-logo]
Copyright © 1998 eXept Software AG, all rights reserved