Contents

Component IDEConfiguration

comment:
This component is designed as XOTclIDE Plugin.
It can be used only with DB Version System.

You can load it per menu
System->Version Control->Configuration Browser

It provides versioned configuration maps.
A configuration map is a ordered collection of componets and
another configurations maps.

A configuration map have edtions and can be compared in changes
browser. The versioning of configuration map work equal to versioning
of components or classes.

You can import/export the version system configuration maps to
file based configurations maps.

Configuration Browser was programmed by using
some extended techniques
1. modell view controler gui pattern
2. events messaging.
3. controler is object IDE::ConfigmapControler (singleton) used.
4. Also here was using new persistence interface with
n:m mapping and object identity caching.


Classes Classes Hierarchy Objects

Class IDE::CMapsChangesBrowser

parameter: {mode components}
superclasses:
IDE::ChangesBrowser
Instprocs:
compareCMaps {tcmap1 tcmap2}
getComponentWithId {id}
getSourcesWindows {fwin}
selectComponent {cname}
Procs:
compareCMaps {cmap1 cmap2}

Class IDE::ComponentConfWrapper

parameter: name
superclasses:
IDE::DBPersistence IDE::CachedObject
comment:
Wrapper for Component
It has small resource-arm interface and it will
be cached

Instprocs:

getRequirements {}
isActualLoaded {}
load {}
nameVersion {}
refreshData {}
versionDisplay {}
viewEdition {}
viewInfo {}
Procs:
initDescriptor {}
initFromDB {columns values componentid}

Class IDE::ComponentGroup

parameter: name
comment:
Helper class to hold all version of one logic component name
(with same name) as Instance.
It is used only for display in list and has no additional
functionality


Class IDE::ConfigmapBrowser

parameter: {atHead 1}
superclasses:
IDE::Browser IDE::GUICommands IDE::EventHandlerMix
Instprocs:
changeViewType {type}
fillMenuStruct {aMenuStruct}
getMenuStruct {}
getTitle {}
specificInit {}
Procs:
newBrowser {}

Class IDE::ConfigurationMap

parameter: name {prescript {}} {postscript {}} {isclosed 0}
superclasses:
IDE::DBPersistence IDE::DBInfo IDE::CachedObject
comment:
The base class symbolize the persistent configuration map

Configmap ist a collection of
persistence components and another configmaps

With its help you can exactly specify (also hierarchaly) which componets and
which version of them should be loaded.
You can and shuld use configmap to specify the deploment packages of your
software

Instprocs:

canVersion {}
copyAndCreateNewEdition {}
exportToMap {file}
getCMapString {}
getCMaps {}
getCMapsNamesDeep {}
getComponents {}
importFromMap {}
load {}
makeTransient {}
nameVersion {}
reorderComponents {}
setCMaps {cmaps}
setComponents {comps}
setComponetsArray {arr_ref}
updateVersion {}
versionDisplay {}
This method create new edition of config map. It have another mining than createNewEdition that rather morph one instance to new edition. This method create new instance this new edition based on [self] object
viewInfo {}
Procs:
initDescriptor {}
initFromDB {columns values componentid}
initializeAfterLoad {}

Class IDE::ConfigurationMapGroup

parameter: name
comment:
Helper class to hold all version of one logic configurationmap name
(with same name) as Instance.
It is used only for display in list and has no additional
functionality


Class IDE::EditionChooser

parameter: versions selected
superclasses:
IDE::DialogHelper IDE::Browser
comment:
This dialog is used to ask user for selecting
one item from groups from items. It is used
to select component version. It can be also used
for another items.
Requirments: Items are objects that support protocol nameVersion

Instprocs:

actionOK {}
getTitle {}
specificInit {}
Procs:
getVersion {editions selected}

Class IDE::EditionsMultiChooser

parameter: names versions selected
superclasses:
IDE::DialogHelper IDE::Browser
comment:
Complex dialog to specify groups of many components

Instprocs:

actionOK {}
addItems {}
getTitle {}
removeItems {}
selectName {mobject}
specificInit {}
Procs:
getVersions {names versions}

Class IDE::EventHandlerMix

subclasses:
IDE::ListViewEvent IDE::ConfigmapBrowser
comment:
This class privede simple event handler.
There are two methodes.
1) Register event
senderObject addEventInteres reciverObject method eventName ?addParamConst?
2) Invoke Event in Sender Object
senderObject signalEvent eventName addParam

The invoked methode will be call with 0 1 or 2 arguments
dependent of addParam.
reciver method ?addParamConst? ?addParam?

Warning: if addParam of addParamConst are empty they are ignored.

Instprocs:

addEventInteres {reciverObj reciverMethode eventName addParameter}
signalEvent {eventName addParameter}

Class IDE::ListViewEvent

parameter: nameMethod isMarkedMethod actionHandler
superclasses:
IDE::ListView IDE::EventHandlerMix
comment:
This List view is prepared to work with xotck objects as lists elements.
It has also an actions interface and send events.
You can specify test method that cause that items are displayed hightlighted.
The interface is specified per parameters

isMarkedMethod - specify test method that 
nameMethod - method that will be call to object to get name for displaying. If none printString method will be used
actionHandler - if definied will be called to item to determine menus for popdown menu.

Instprocs:

getObjectsList {}
getSelectedObjects {}
init {window}
insertObjectAt {obj pos}
invokeAction {x y}
invokeActionCommand {action}
refreshLabels {}
removeObject {obj}
selectItem {item}
setObjectsList {objects}
setSelectedObject {object}

Object IDE::ConfigmapControler

Procs:
addConfigmap {cmap}
addNewComponent {}
addNewConfigmap {}
browseChanges {object}
changeEdtion {object type}
changeViewType {type}
createNewGroup {}
createNewVersion {cmap}
editSave {text}
getActions {view element}
initConfigmaps {args}
initializeAfterLoad {}
invokeAction {action view object}
refreshGroupView {}
reloadConfigmaps {}
selectGroup {sgroup}
selectVersion {sversion}
setActions {}
setView {tview}
updateSelectedVersion {}
updateText {}
versionCMapEdition {cmap}