AbstractSettingsApplication.st
changeset 6897 4b8d96845325
parent 6868 50e8be0545f4
child 6939 af3cdc84970f
--- a/AbstractSettingsApplication.st	Tue Aug 15 20:02:40 2006 +0200
+++ b/AbstractSettingsApplication.st	Wed Aug 16 11:30:11 2006 +0200
@@ -205,15 +205,17 @@
 !
 
 AbstractSettingsApplication subclass:#SourceCodeManagementSettingsAppl
-	instanceVariableNames:'sourceCacheDir useManager condenseSourceCache
-		syntaxColorConfiguration setupSourceCodeManager
-		checkClassesWhenCheckingIn formattingConfiguration
-		flushSourceCache localSourceFirst cvsIsSetup repositoryHolder
-		manager repository listOfModules cvsRootPrototypeList
-		addPerModuleRoot removeEnabled perModuleRootModule acceptChannel
-		removePerModuleRoot perModuleRoot cvsRootHolder
-		selectedPerModuleRoot cvsBinDirectoryHolder rootsPerModule
-		cvsLoginInModuleEnabled cvsLoginEnabled'
+	instanceVariableNames:'sourceCacheDir useManager availableManagers condenseSourceCache
+		setupSourceCodeManager checkClassesWhenCheckingIn
+		formattingConfiguration flushSourceCache localSourceFirst
+		repositoryHolder manager repository listOfModules
+		cvsRootPrototypeList addPerModuleRoot removeEnabled
+		perModuleRootModule acceptChannel removePerModuleRoot
+		perModuleRoot cvsRootHolder selectedPerModuleRoot
+		cvsBinDirectoryHolder rootsPerModule cvsLoginInModuleEnabled
+		cvsLoginEnabled selectedManagerTypeIndexHolder
+		managerIsCVSSourceCodeManager managerIsStoreSourceCodeManager
+		storeLoginEnabled'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
@@ -9676,70 +9678,181 @@
                                 label: 'Sourcecode Management'
                                 name: 'SourcecodeManagementCheckBox'
                                 layout: (LayoutFrame 5 0 5 0.0 300 0 27 0)
-                                enableChannel: cvsIsSetup
                                 model: useManager
                                 translateLabel: true
                               )
+                             (ComboListSpec
+                                name: 'ComboList1'
+                                layout: (LayoutFrame -200 1 5 0 -5 1 27 0)
+                                visibilityChannel: moreThanOneManagerTypesAvailable
+                                enableChannel: useManager
+                                model: selectedManagerTypeIndexHolder
+                                comboList: availableManagerTypeNames
+                                useIndex: true
+                              )
                              )
                            
                           )
                           extent: (Point 659 30)
                         )
-                       (FramedBoxSpec
-                          label: 'Source Code Manager Setup'
-                          name: 'FramedBox1'
-                          labelPosition: topLeft
-                          translateLabel: true
+                       (ViewSpec
+                          name: 'ManagerSetupBoxx'
                           component: 
                          (SpecCollection
                             collection: (
-                             (ViewSpec
-                                name: 'Box1'
-                                layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+                             (FramedBoxSpec
+                                label: 'CVS Sourcecode Manager Setup'
+                                name: 'CVSSetupBox'
+                                layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+                                visibilityChannel: managerIsCVSSourceCodeManager
+                                labelPosition: topLeft
+                                translateLabel: true
                                 component: 
                                (SpecCollection
                                   collection: (
+                                   (ViewSpec
+                                      name: 'Box1'
+                                      layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (LabelSpec
+                                            label: 'CVS BinDirectory:'
+                                            name: 'Label1'
+                                            layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
+                                            level: 0
+                                            translateLabel: true
+                                            adjust: right
+                                          )
+                                         (InputFieldSpec
+                                            name: 'BinDirectoryField'
+                                            layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                            enableChannel: useManager
+                                            tabable: true
+                                            model: cvsBinDirectoryHolder
+                                            acceptChannel: acceptChannel
+                                            acceptOnPointerLeave: true
+                                          )
+                                         )
+                                       
+                                      )
+                                    )
+                                   (ViewSpec
+                                      name: 'Box7'
+                                      layout: (LayoutFrame 0 0.0 27 0 0 1 52 0)
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (LabelSpec
+                                            label: 'CVSRoot default:'
+                                            name: 'defaultCvsRootLabel'
+                                            layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
+                                            level: 0
+                                            translateLabel: true
+                                            adjust: right
+                                          )
+                                         (ComboBoxSpec
+                                            name: 'cvsRootComboBox'
+                                            layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                            enableChannel: useManager
+                                            tabable: true
+                                            model: cvsRootHolder
+                                            immediateAccept: true
+                                            acceptOnLeave: true
+                                            acceptOnReturn: true
+                                            acceptOnTab: true
+                                            acceptOnLostFocus: true
+                                            acceptChannel: acceptChannel
+                                            acceptOnPointerLeave: true
+                                            comboList: cvsRootPrototypeList
+                                          )
+                                         )
+                                       
+                                      )
+                                    )
+                                   (HorizontalPanelViewSpec
+                                      name: 'HorizontalPanel3'
+                                      layout: (LayoutFrame 44 0.25 51 0 -1 1 82 0)
+                                      horizontalLayout: fitSpace
+                                      verticalLayout: center
+                                      horizontalSpace: 3
+                                      verticalSpace: 3
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (ViewSpec
+                                            name: 'Box8'
+                                            extent: (Point 103 10)
+                                          )
+                                         (ViewSpec
+                                            name: 'Box9'
+                                            extent: (Point 103 10)
+                                          )
+                                         (ViewSpec
+                                            name: 'Box10'
+                                            extent: (Point 103 10)
+                                          )
+                                         (ActionButtonSpec
+                                            label: 'CVS-Login'
+                                            name: 'loginButton1'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: loginCVSRoot
+                                            enableChannel: cvsLoginEnabled
+                                            extent: (Point 103 22)
+                                          )
+                                         )
+                                       
+                                      )
+                                    )
                                    (LabelSpec
-                                      label: 'CVS BinDirectory:'
-                                      name: 'Label1'
-                                      layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
-                                      level: 0
+                                      label: 'CVSRoot per Module:'
+                                      name: 'knownModulesLabel'
+                                      layout: (LayoutFrame 0 0.0 82 0 40 0.25 104 0)
+                                      translateLabel: true
+                                      adjust: right
+                                    )
+                                   (SequenceViewSpec
+                                      name: 'List1'
+                                      layout: (LayoutFrame 44 0.25 82 0 -5 1 201 0)
+                                      enableChannel: useManager
+                                      tabable: true
+                                      model: selectedPerModuleRoot
+                                      hasHorizontalScrollBar: true
+                                      hasVerticalScrollBar: true
+                                      miniScrollerHorizontal: true
+                                      useIndex: false
+                                      sequenceList: listOfModules
+                                    )
+                                   (LabelSpec
+                                      label: 'Module:'
+                                      name: 'moduleLabel'
+                                      layout: (LayoutFrame 0 0.0 211 0 40 0.25 228 0)
                                       translateLabel: true
                                       adjust: right
                                     )
                                    (InputFieldSpec
-                                      name: 'BinDirectoryField'
-                                      layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                      name: 'perModuleRootModuleEntryField'
+                                      layout: (LayoutFrame 44 0.25 207 0 -5 1 229 0)
                                       enableChannel: useManager
                                       tabable: true
-                                      model: cvsBinDirectoryHolder
+                                      model: perModuleRootModule
                                       acceptChannel: acceptChannel
                                       acceptOnPointerLeave: true
                                     )
-                                   )
-                                 
-                                )
-                              )
-                             (ViewSpec
-                                name: 'Box7'
-                                layout: (LayoutFrame 0 0.0 27 0 0 1 52 0)
-                                component: 
-                               (SpecCollection
-                                  collection: (
                                    (LabelSpec
-                                      label: 'CVSRoot default:'
-                                      name: 'defaultCvsRootLabel'
-                                      layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
-                                      level: 0
+                                      label: 'CVSRoot:'
+                                      name: 'cvsRootLabel'
+                                      layout: (LayoutFrame 0 0.0 236 0 40 0.25 253 0)
                                       translateLabel: true
                                       adjust: right
                                     )
                                    (ComboBoxSpec
-                                      name: 'cvsRootComboBox'
-                                      layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                      name: 'perModuleRootComboBox'
+                                      layout: (LayoutFrame 44 0.25 232 0 -5 1.0 254 0)
                                       enableChannel: useManager
                                       tabable: true
-                                      model: cvsRootHolder
+                                      model: perModuleRoot
                                       immediateAccept: true
                                       acceptOnLeave: true
                                       acceptOnReturn: true
@@ -9749,142 +9862,271 @@
                                       acceptOnPointerLeave: true
                                       comboList: cvsRootPrototypeList
                                     )
-                                   )
-                                 
-                                )
-                              )
-                             (HorizontalPanelViewSpec
-                                name: 'HorizontalPanel3'
-                                layout: (LayoutFrame 44 0.25 51 0 -1 1 82 0)
-                                horizontalLayout: fitSpace
-                                verticalLayout: center
-                                horizontalSpace: 3
-                                verticalSpace: 3
-                                component: 
-                               (SpecCollection
-                                  collection: (
-                                   (ViewSpec
-                                      name: 'Box8'
-                                      extent: (Point 103 10)
-                                    )
-                                   (ViewSpec
-                                      name: 'Box9'
-                                      extent: (Point 103 10)
-                                    )
-                                   (ViewSpec
-                                      name: 'Box10'
-                                      extent: (Point 103 10)
-                                    )
-                                   (ActionButtonSpec
-                                      label: 'CVS-Login'
-                                      name: 'loginButton1'
-                                      translateLabel: true
-                                      tabable: true
-                                      model: loginCVSRoot
-                                      enableChannel: cvsLoginEnabled
-                                      extent: (Point 103 22)
+                                   (HorizontalPanelViewSpec
+                                      name: 'HorizontalPanel2'
+                                      layout: (LayoutFrame 44 0.25 258 0 -1 1 289 0)
+                                      horizontalLayout: fitSpace
+                                      verticalLayout: center
+                                      horizontalSpace: 3
+                                      verticalSpace: 3
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (ActionButtonSpec
+                                            label: 'Add/Apply'
+                                            name: 'addButton'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: addPerModuleRoot
+                                            enableChannel: useManager
+                                            extent: (Point 103 22)
+                                          )
+                                         (ActionButtonSpec
+                                            label: 'Remove'
+                                            name: 'removeButton'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: removePerModuleRoot
+                                            enableChannel: removeEnabled
+                                            extent: (Point 103 22)
+                                          )
+                                         (ViewSpec
+                                            name: 'Box11'
+                                            extent: (Point 103 10)
+                                          )
+                                         (ActionButtonSpec
+                                            label: 'CVS-Login'
+                                            name: 'loginButton2'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: loginPerModuleRoot
+                                            enableChannel: cvsLoginInModuleEnabled
+                                            extent: (Point 103 22)
+                                          )
+                                         )
+                                       
+                                      )
                                     )
                                    )
                                  
                                 )
                               )
-                             (LabelSpec
-                                label: 'CVSRoot per Module:'
-                                name: 'knownModulesLabel'
-                                layout: (LayoutFrame 0 0.0 82 0 40 0.25 104 0)
-                                translateLabel: true
-                                adjust: right
-                              )
-                             (SequenceViewSpec
-                                name: 'List1'
-                                layout: (LayoutFrame 44 0.25 82 0 -5 1 201 0)
-                                enableChannel: useManager
-                                tabable: true
-                                model: selectedPerModuleRoot
-                                hasHorizontalScrollBar: true
-                                hasVerticalScrollBar: true
-                                miniScrollerHorizontal: true
-                                useIndex: false
-                                sequenceList: listOfModules
-                              )
-                             (LabelSpec
-                                label: 'Module:'
-                                name: 'moduleLabel'
-                                layout: (LayoutFrame 0 0.0 211 0 40 0.25 228 0)
+                             (FramedBoxSpec
+                                label: 'Store Repository Setup'
+                                name: 'StoreSetupBox'
+                                layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+                                visibilityChannel: managerIsStoreSourceCodeManager
+                                labelPosition: topLeft
                                 translateLabel: true
-                                adjust: right
-                              )
-                             (InputFieldSpec
-                                name: 'perModuleRootModuleEntryField'
-                                layout: (LayoutFrame 44 0.25 207 0 -5 1 229 0)
-                                enableChannel: useManager
-                                tabable: true
-                                model: perModuleRootModule
-                                acceptChannel: acceptChannel
-                                acceptOnPointerLeave: true
-                              )
-                             (LabelSpec
-                                label: 'CVSRoot:'
-                                name: 'cvsRootLabel'
-                                layout: (LayoutFrame 0 0.0 236 0 40 0.25 253 0)
-                                translateLabel: true
-                                adjust: right
-                              )
-                             (ComboBoxSpec
-                                name: 'perModuleRootComboBox'
-                                layout: (LayoutFrame 44 0.25 232 0 -5 1.0 254 0)
-                                enableChannel: useManager
-                                tabable: true
-                                model: perModuleRoot
-                                immediateAccept: true
-                                acceptOnLeave: true
-                                acceptOnReturn: true
-                                acceptOnTab: true
-                                acceptOnLostFocus: true
-                                acceptChannel: acceptChannel
-                                acceptOnPointerLeave: true
-                                comboList: cvsRootPrototypeList
-                              )
-                             (HorizontalPanelViewSpec
-                                name: 'HorizontalPanel2'
-                                layout: (LayoutFrame 44 0.25 258 0 -1 1 289 0)
-                                horizontalLayout: fitSpace
-                                verticalLayout: center
-                                horizontalSpace: 3
-                                verticalSpace: 3
                                 component: 
                                (SpecCollection
                                   collection: (
-                                   (ActionButtonSpec
-                                      label: 'Add/Apply'
-                                      name: 'addButton'
-                                      translateLabel: true
-                                      tabable: true
-                                      model: addPerModuleRoot
-                                      enableChannel: useManager
-                                      extent: (Point 103 22)
+                                   (ViewSpec
+                                      name: 'HostBox'
+                                      layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (LabelSpec
+                                            label: 'Store DB Host:'
+                                            name: 'StoreHostLabel'
+                                            layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
+                                            level: 0
+                                            translateLabel: true
+                                            adjust: right
+                                          )
+                                         (InputFieldSpec
+                                            name: 'StoreHostEntryField'
+                                            layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                            enableChannel: useManager
+                                            tabable: true
+                                            model: storeHostnameHolder
+                                            acceptChannel: acceptChannel
+                                            acceptOnPointerLeave: true
+                                          )
+                                         )
+                                       
+                                      )
                                     )
-                                   (ActionButtonSpec
-                                      label: 'Remove'
-                                      name: 'removeButton'
-                                      translateLabel: true
-                                      tabable: true
-                                      model: removePerModuleRoot
-                                      enableChannel: removeEnabled
-                                      extent: (Point 103 22)
+                                   (ViewSpec
+                                      name: 'UserBox'
+                                      layout: (LayoutFrame 0 0.0 27 0 0 1 52 0)
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (LabelSpec
+                                            label: 'Store DB Username:'
+                                            name: 'StoreUserLabel'
+                                            layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
+                                            level: 0
+                                            translateLabel: true
+                                            adjust: right
+                                          )
+                                         (InputFieldSpec
+                                            name: 'StoreUserEntryField'
+                                            layout: (LayoutFrame 44 0.25 0 0 -5 1 22 0)
+                                            enableChannel: useManager
+                                            tabable: true
+                                            model: storeUsernameHolder
+                                            acceptChannel: acceptChannel
+                                            acceptOnPointerLeave: true
+                                          )
+                                         )
+                                       
+                                      )
                                     )
                                    (ViewSpec
-                                      name: 'Box11'
-                                      extent: (Point 103 10)
+                                      name: 'PasswordBox'
+                                      layout: (LayoutFrame 0 0.0 54 0 0 1 79 0)
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (LabelSpec
+                                            label: 'Store DB Password:'
+                                            name: 'Label7'
+                                            layout: (LayoutFrame 0 0.0 0 0 40 0.25 22 0)
+                                            level: 0
+                                            translateLabel: true
+                                            adjust: right
+                                          )
+                                         (InputFieldSpec
+                                            name: 'PasswordEntryField'
+                                            layout: (LayoutFrame 44 0.25 0 0 -130 1 22 0)
+                                            enableChannel: useManager
+                                            tabable: true
+                                            model: storePasswordHolder
+                                            type: password
+                                            acceptChannel: acceptChannel
+                                            acceptOnPointerLeave: true
+                                          )
+                                         )
+                                       
+                                      )
+                                    )
+                                   (HorizontalPanelViewSpec
+                                      name: 'HorizontalPanel4'
+                                      layout: (LayoutFrame -130 1 51 0 -1 1 82 0)
+                                      horizontalLayout: fitSpace
+                                      verticalLayout: center
+                                      horizontalSpace: 3
+                                      verticalSpace: 3
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (ActionButtonSpec
+                                            label: 'CVS-Login'
+                                            name: 'Button1'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: loginCVSRoot
+                                            enableChannel: storeLoginEnabled
+                                            extent: (Point 123 22)
+                                          )
+                                         )
+                                       
+                                      )
+                                    )
+                                   (LabelSpec
+                                      label: 'DB per Module:'
+                                      name: 'Label4'
+                                      layout: (LayoutFrame 0 0.0 82 0 40 0.25 104 0)
+                                      translateLabel: true
+                                      adjust: right
+                                    )
+                                   (SequenceViewSpec
+                                      name: 'List2'
+                                      layout: (LayoutFrame 44 0.25 82 0 -5 1 201 0)
+                                      enableChannel: useManager
+                                      tabable: true
+                                      model: selectedPerModuleDBInfo
+                                      hasHorizontalScrollBar: true
+                                      hasVerticalScrollBar: true
+                                      miniScrollerHorizontal: true
+                                      useIndex: false
+                                      sequenceList: listOfModules
+                                    )
+                                   (LabelSpec
+                                      label: 'Module:'
+                                      name: 'Label5'
+                                      layout: (LayoutFrame 0 0.0 211 0 40 0.25 228 0)
+                                      translateLabel: true
+                                      adjust: right
                                     )
-                                   (ActionButtonSpec
-                                      label: 'CVS-Login'
-                                      name: 'loginButton2'
+                                   (InputFieldSpec
+                                      name: 'EntryField2'
+                                      layout: (LayoutFrame 44 0.25 207 0 -5 1 229 0)
+                                      enableChannel: useManager
+                                      tabable: true
+                                      model: perModuleRootModule
+                                      acceptChannel: acceptChannel
+                                      acceptOnPointerLeave: true
+                                    )
+                                   (LabelSpec
+                                      label: 'DB:'
+                                      name: 'Label6'
+                                      layout: (LayoutFrame 0 0.0 236 0 40 0.25 253 0)
                                       translateLabel: true
+                                      adjust: right
+                                    )
+                                   (ComboBoxSpec
+                                      name: 'ComboBox2'
+                                      layout: (LayoutFrame 44 0.25 232 0 -5 1.0 254 0)
+                                      enableChannel: useManager
                                       tabable: true
-                                      model: loginPerModuleRoot
-                                      enableChannel: cvsLoginInModuleEnabled
-                                      extent: (Point 103 22)
+                                      model: perModuleRoot
+                                      immediateAccept: true
+                                      acceptOnLeave: true
+                                      acceptOnReturn: true
+                                      acceptOnTab: true
+                                      acceptOnLostFocus: true
+                                      acceptChannel: acceptChannel
+                                      acceptOnPointerLeave: true
+                                      comboList: storeRootPrototypeList
+                                    )
+                                   (HorizontalPanelViewSpec
+                                      name: 'HorizontalPanel5'
+                                      layout: (LayoutFrame 44 0.25 258 0 -1 1 289 0)
+                                      horizontalLayout: fitSpace
+                                      verticalLayout: center
+                                      horizontalSpace: 3
+                                      verticalSpace: 3
+                                      component: 
+                                     (SpecCollection
+                                        collection: (
+                                         (ActionButtonSpec
+                                            label: 'Add/Apply'
+                                            name: 'Button2'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: addPerModuleStoreDB
+                                            enableChannel: useManager
+                                            extent: (Point 103 22)
+                                          )
+                                         (ActionButtonSpec
+                                            label: 'Remove'
+                                            name: 'Button3'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: removePerModuleStoreDB
+                                            enableChannel: removeEnabled
+                                            extent: (Point 103 22)
+                                          )
+                                         (ViewSpec
+                                            name: 'Box17'
+                                            extent: (Point 103 10)
+                                          )
+                                         (ActionButtonSpec
+                                            label: 'CVS-Login'
+                                            name: 'Button4'
+                                            translateLabel: true
+                                            tabable: true
+                                            model: loginPerStoreDB
+                                            enableChannel: cvsLoginInModuleEnabled
+                                            extent: (Point 103 22)
+                                          )
+                                         )
+                                       
+                                      )
                                     )
                                    )
                                  
@@ -10041,11 +10283,9 @@
             repository := manager repositoryName.
             repositoryHolder := (repository ? '') asValue
         ].
-        self cvsIsSetup value:true
     ] ifFalse:[
         self useManager value:false.
         self localSourceFirst value:false.
-        self cvsIsSetup value:false
     ].
     self checkClassesWhenCheckingIn 
         value:(currentUserPrefs at:#checkClassesWhenCheckingIn ifAbsent:true).
@@ -10057,6 +10297,8 @@
         listOfModules addAll:rootsPerModule keys asList.
     ].
     self selectedPerModuleRootChanged.
+
+    "Modified: / 16-08-2006 / 11:08:01 / cg"
 !
 
 basicSaveSettings
@@ -10174,11 +10416,12 @@
 
    AbstractLauncherApplication::LauncherDialogs cvsConfigurationDialog.
    manager := (Smalltalk at:#SourceCodeManager).
-   cvsIsSetup value:manager notNil.
    manager notNil ifTrue:[
         repositoryHolder value: manager repositoryName.
         sourceCacheDir value:(AbstractSourceCodeManager cacheDirectoryName).
    ].
+
+    "Modified: / 16-08-2006 / 11:07:51 / cg"
 ! !
 
 !AbstractSettingsApplication::SourceCodeManagementSettingsAppl methodsFor:'aspects'!
@@ -10191,6 +10434,22 @@
     ^ acceptChannel.
 !
 
+availableManagerTypeNames
+    ^ self availableManagers collect:[:cls | cls managerTypeName].
+
+    "Created: / 16-08-2006 / 11:16:25 / cg"
+!
+
+availableManagers
+    availableManagers isNil ifTrue:[
+        availableManagers := AbstractSourceCodeManager allSubclasses 
+                                reject:[:cls | (cls isAbstract) or:[cls isExperimental ]].
+    ].
+    ^ availableManagers.
+
+    "Created: / 16-08-2006 / 11:01:10 / cg"
+!
+
 checkClassesWhenCheckingIn
 
     checkClassesWhenCheckingIn isNil ifTrue:[
@@ -10208,13 +10467,6 @@
     ^ cvsBinDirectoryHolder.
 !
 
-cvsIsSetup
-    cvsIsSetup isNil ifTrue:[
-        cvsIsSetup := true asValue.
-    ].
-    ^ cvsIsSetup.
-!
-
 cvsLoginEnabled
     cvsLoginEnabled isNil ifTrue:[
         cvsLoginEnabled := false asValue.
@@ -10293,6 +10545,32 @@
     ^ localSourceFirst.
 !
 
+managerIsCVSSourceCodeManager
+    managerIsCVSSourceCodeManager isNil ifTrue:[
+        managerIsCVSSourceCodeManager := (SourceCodeManager notNil and:
+                                         [SourceCodeManager isCVS]) asValue.
+    ].
+    ^ managerIsCVSSourceCodeManager.
+
+    "Created: / 16-08-2006 / 10:56:38 / cg"
+!
+
+managerIsStoreSourceCodeManager
+    managerIsStoreSourceCodeManager isNil ifTrue:[
+        managerIsStoreSourceCodeManager := (SourceCodeManager notNil and:
+                                         [SourceCodeManager isStore]) asValue.
+    ].
+    ^ managerIsStoreSourceCodeManager.
+
+    "Created: / 16-08-2006 / 10:57:13 / cg"
+!
+
+moreThanOneManagerTypesAvailable
+    ^ self availableManagers size > 1
+
+    "Created: / 16-08-2006 / 11:22:03 / cg"
+!
+
 perModuleRoot
     perModuleRoot isNil ifTrue:[
         perModuleRoot := ValueHolder new.
@@ -10316,6 +10594,31 @@
     ^ removeEnabled.
 !
 
+selectedManager
+    |idx|
+
+    idx := self selectedManagerTypeIndexHolder value.
+    (idx == 0 or:[idx isNil]) ifTrue:[^ nil].
+
+    ^ self availableManagers at:idx
+
+    "Modified: / 16-08-2006 / 11:18:50 / cg"
+!
+
+selectedManagerTypeIndexHolder
+
+    selectedManagerTypeIndexHolder isNil ifTrue:[
+        selectedManagerTypeIndexHolder := (self availableManagers indexOf:SourceCodeManager) asValue.
+        selectedManagerTypeIndexHolder onChangeEvaluate:[
+            self managerIsCVSSourceCodeManager value:( self selectedManager isCVS ).
+            self managerIsStoreSourceCodeManager value:( self selectedManager isStore ).
+        ].
+    ].
+    ^ selectedManagerTypeIndexHolder.
+
+    "Created: / 16-08-2006 / 11:17:20 / cg"
+!
+
 selectedPerModuleRoot
     selectedPerModuleRoot isNil ifTrue:[
         selectedPerModuleRoot := ValueHolder new.
@@ -10332,6 +10635,15 @@
     ^ sourceCacheDir.
 !
 
+storeLoginEnabled
+    storeLoginEnabled isNil ifTrue:[
+        storeLoginEnabled := false asValue.
+    ].
+    ^ storeLoginEnabled.
+
+    "Created: / 16-08-2006 / 11:11:15 / cg"
+!
+
 useManager
     useManager isNil ifTrue:[
         useManager := ValueHolder new.
@@ -12251,5 +12563,5 @@
 !AbstractSettingsApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.238 2006-08-09 17:32:39 fm Exp $'
-! !
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.239 2006-08-16 09:30:11 cg Exp $'
+! !