DataBaseSourceCodeManagementSettingsAppl.st
changeset 11029 189b0dfccd0a
parent 11013 c52144537d6d
child 11031 28041a6aa9ab
--- a/DataBaseSourceCodeManagementSettingsAppl.st	Sun Dec 25 11:38:22 2011 +0100
+++ b/DataBaseSourceCodeManagementSettingsAppl.st	Sun Dec 25 14:03:34 2011 +0100
@@ -13,12 +13,10 @@
 
 AbstractSourceCodeManagementSettingsAppl subclass:#DataBaseSourceCodeManagementSettingsAppl
 	instanceVariableNames:'sourceCacheDir listOfModules removeEnabled acceptChannel
-		pathPerModule verboseSourceCodeAccess repositoryPathHolder
-		perModulePath perModulePathModule selectedPerModulePath
-		repositoryNameHolder'
-	classVariableNames:'RecentlyUsedCVSRoots RecentlyUsedStoreHosts
-		RecentlyUsedSmallTeamHosts LastStoreHost LastStoreUser
-		LastStorePassword'
+		pathPerModule verboseSourceCodeAccess dbNameHolder
+		selectedPerModuleDatabase perModuleDatabaseModule perModuleDB
+		dbPerModule'
+	classVariableNames:''
 	poolDictionaries:''
 	category:'System-SourceCodeManagement'
 !
@@ -60,6 +58,40 @@
     "Created: / 21-12-2011 / 23:43:04 / cg"
 ! !
 
+!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'help specs'!
+
+flyByHelpSpec
+    "This resource specification was automatically generated
+     by the UIHelpTool of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIHelpTool may not be able to read the specification."
+
+    "
+     UIHelpTool openOnClass:DataBaseSourceCodeManagementSettingsAppl    
+    "
+
+    <resource: #help>
+
+    ^ super flyByHelpSpec addPairsFrom:#(
+
+#defaultDBName
+'Default database; used for all modules which are not listed below'
+
+#perModuleDB
+'Per module database configuration'
+
+#perModuleDBModule
+'The module for which a specific database is defined'
+
+#perModuleDBName
+'Database for the selected module (scheme:[user[.password]@hostname:databaseName[.tableName]'
+
+)
+
+    "Created: / 25-12-2011 / 13:46:07 / cg"
+! !
+
 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'image specs'!
 
 defaultIcon
@@ -154,6 +186,7 @@
                                    (ViewSpec
                                       name: 'Box1'
                                       layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+                                      activeHelpKey: defaultDBName
                                       component: 
                                      (SpecCollection
                                         collection: (
@@ -161,6 +194,7 @@
                                             label: 'DB Name:'
                                             name: 'Label1'
                                             layout: (LayoutFrame 0 0.0 0 0 60 0.25 22 0)
+                                            activeHelpKey: defaultDBName
                                             level: 0
                                             translateLabel: true
                                             adjust: right
@@ -168,6 +202,7 @@
                                          (InputFieldSpec
                                             name: 'RepositoryPathField'
                                             layout: (LayoutFrame 64 0.25 0 0 0 1 22 0)
+                                            activeHelpKey: defaultDBName
                                             tabable: true
                                             model: dbNameHolder
                                             acceptChannel: acceptChannel
@@ -181,12 +216,14 @@
                                       label: 'DB per Module:'
                                       name: 'knownModulesLabel'
                                       layout: (LayoutFrame 0 0.0 82 0 60 0.25 104 0)
+                                      activeHelpKey: perModuleDB
                                       translateLabel: true
                                       adjust: right
                                     )
                                    (SequenceViewSpec
                                       name: 'List1'
                                       layout: (LayoutFrame 64 0.25 82 0 0 1 201 0)
+                                      activeHelpKey: perModuleDB
                                       tabable: true
                                       model: selectedPerModuleDatabase
                                       hasHorizontalScrollBar: true
@@ -199,14 +236,16 @@
                                       label: 'Module:'
                                       name: 'moduleLabel'
                                       layout: (LayoutFrame 0 0.0 211 0 60 0.25 228 0)
+                                      activeHelpKey: perModuleDBModule
                                       translateLabel: true
                                       adjust: right
                                     )
                                    (InputFieldSpec
-                                      name: 'perModulePathModuleEntryField'
+                                      name: 'perModuleDatabaseModuleEntryField'
                                       layout: (LayoutFrame 64 0.25 207 0 0 1 229 0)
+                                      activeHelpKey: perModuleDBModule
                                       tabable: true
-                                      model: perModulePathModule
+                                      model: perModuleDatabaseModule
                                       acceptChannel: acceptChannel
                                       acceptOnPointerLeave: true
                                     )
@@ -214,12 +253,14 @@
                                       label: 'DB:'
                                       name: 'cvsRootLabel'
                                       layout: (LayoutFrame 0 0.0 236 0 60 0.25 253 0)
+                                      activeHelpKey: perModuleDBName
                                       translateLabel: true
                                       adjust: right
                                     )
                                    (ComboBoxSpec
                                       name: 'perModulePathComboBox'
                                       layout: (LayoutFrame 64 0.25 232 0 0 1.0 254 0)
+                                      activeHelpKey: perModuleDBName
                                       tabable: true
                                       model: perModuleDB
                                       immediateAccept: true
@@ -246,7 +287,7 @@
                                             name: 'addButton'
                                             translateLabel: true
                                             tabable: true
-                                            model: addPerModulePath
+                                            model: addPerModuleDB
                                             extent: (Point 130 22)
                                           )
                                          (ActionButtonSpec
@@ -254,7 +295,7 @@
                                             name: 'removeButton'
                                             translateLabel: true
                                             tabable: true
-                                            model: removePerModulePath
+                                            model: removePerModuleDB
                                             enableChannel: removeEnabled
                                             extent: (Point 131 22)
                                           )
@@ -306,27 +347,27 @@
     (self listOfModules includes:module) ifFalse:[
         self listOfModules add:module; sort.
     ].
-    pathPerModule at:module put:data.
+    dbPerModule at:module put:data.
 
     self updateModifiedChannel.
 
     "Created: / 08-11-2006 / 19:25:21 / cg"
 !
 
-addPerModulePath
+addPerModuleDB
     |module path|
 
     acceptChannel value:true.    
 
-    module := self perModulePathModule value.
-    path := self perModulePath value.
+    module := self perModuleDatabaseModule value.
+    path := self perModuleDB value.
 
     path size > 0 ifTrue:[
         self validateDirectoryExistsAndIsWritable:path.
         self addModule:module withData:(Array with:FileBasedSourceCodeManager with:path).
     ].
 
-    "Created: / 21-12-2011 / 14:23:10 / cg"
+    "Created: / 25-12-2011 / 13:18:30 / cg"
 !
 
 basicReadSettings
@@ -334,36 +375,36 @@
 
     self initialize.
 
-    infoPerModule := FileBasedSourceCodeManager repositoryInfoPerModule.
+    infoPerModule := DataBaseSourceCodeManager repositoryInfoPerModule.
     infoPerModule keysAndValuesDo:[:module :info | 
-        pathPerModule at:module put:(Array with:FileBasedSourceCodeManager with:info).
+        dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info).
     ].
 
-    self repositoryNameHolder value:DataBaseSourceCodeManager repositoryName ? self class defaultRepositoryName.
+    self dbNameHolder value:DataBaseSourceCodeManager repositoryName ? self class defaultRepositoryName.
 
-    pathPerModule notNil ifTrue:[
+    dbPerModule notNil ifTrue:[
         self listOfModules removeAll.
-        listOfModules addAll:pathPerModule keys asList.
+        listOfModules addAll:dbPerModule keys asList.
     ].
 
-    "Modified: / 22-12-2011 / 00:15:36 / cg"
+    "Modified: / 25-12-2011 / 13:21:30 / cg"
 !
 
 basicSaveSettings
     |infoPerModule modules|
 
-    modules := pathPerModule select:[:entry | entry first == FileBasedSourceCodeManager].
+    modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager].
     infoPerModule := Dictionary new.
     modules keysAndValuesDo:[:module :entry | 
-        entry first == FileBasedSourceCodeManager ifTrue:[
+        entry first == DataBaseSourceCodeManager ifTrue:[
             infoPerModule at:module put:(entry second).
         ].
     ].
-    FileBasedSourceCodeManager repositoryInfoPerModule:infoPerModule.
+    DataBaseSourceCodeManager repositoryInfoPerModule:infoPerModule.
 
     self acceptChannel value.
 
-    "Modified: / 21-12-2011 / 14:27:47 / cg"
+    "Modified: / 25-12-2011 / 13:21:50 / cg"
 !
 
 condenseSourceCache
@@ -379,16 +420,31 @@
     "Modified: / 30-09-2011 / 13:33:47 / cg"
 !
 
+removePerModuleDB
+    |module|
+
+    acceptChannel value:true.    
+
+    module := self perModuleDatabaseModule value.
+    self listOfModules remove:module ifAbsent:nil.
+    dbPerModule removeKey:module ifAbsent:nil.
+    self perModuleDatabaseModule value:nil.
+    self perModuleDB value:nil.
+    self updateModifiedChannel.
+
+    "Created: / 25-12-2011 / 13:19:45 / cg"
+!
+
 removePerModulePath
     |module|
 
     acceptChannel value:true.    
 
-    module := self perModulePathModule value.
+    module := self perModuleDatabaseModule value.
     self listOfModules remove:module ifAbsent:nil.
-    pathPerModule removeKey:module ifAbsent:nil.
-    self perModulePathModule value:nil.
-    self perModulePath value:nil.
+    dbPerModule removeKey:module ifAbsent:nil.
+    self perModuleDatabaseModule value:nil.
+    self perModuleDB value:nil.
     self updateModifiedChannel.
 
     "Created: / 21-12-2011 / 14:26:08 / cg"
@@ -404,45 +460,58 @@
     ^ acceptChannel.
 !
 
+dbNameHolder
+
+    dbNameHolder isNil ifTrue:[
+        dbNameHolder := DataBaseSourceCodeManager defaultRepositoryName asValue.
+        dbNameHolder addDependent:self.
+    ].
+    ^ dbNameHolder.
+
+    "Created: / 25-12-2011 / 13:14:17 / cg"
+!
+
+dbPrototypeList
+    ^ #(
+            'sqlite:repository.db'
+            'odbc:localhost:stxRepository'
+            'sqlite:pathname'
+            'odbc:user.password@host:table'
+        )
+
+    "Created: / 25-12-2011 / 13:13:20 / cg"
+!
+
 listOfModules
 
     listOfModules isNil ifTrue:[
-        pathPerModule notNil ifTrue:[
-            listOfModules := pathPerModule keys asList.
+        dbPerModule notNil ifTrue:[
+            listOfModules := dbPerModule keys asList.
         ].
         listOfModules sort.
         listOfModules onChangeSend:#updateModifiedChannel to:self
     ].
     ^ listOfModules.
 
-    "Modified: / 21-12-2011 / 14:32:59 / cg"
-!
-
-pathPrototypeList
-    ^ #(
-            './versions'
-        )
-
-    "Created: / 21-12-2011 / 13:13:05 / cg"
+    "Modified: / 25-12-2011 / 13:20:13 / cg"
 !
 
-perModulePath
-    perModulePath isNil ifTrue:[
-        perModulePath := ValueHolder new.
-        perModulePath addDependent:self.
+perModuleDB
+    perModuleDB isNil ifTrue:[
+        perModuleDB := ValueHolder new.
     ].
-    ^ perModulePath.
+    ^ perModuleDB.
 
-    "Created: / 21-12-2011 / 14:19:03 / cg"
+    "Created: / 25-12-2011 / 13:18:55 / cg"
 !
 
-perModulePathModule
-    perModulePathModule isNil ifTrue:[
-        perModulePathModule := ValueHolder new.
+perModuleDatabaseModule
+    perModuleDatabaseModule isNil ifTrue:[
+        perModuleDatabaseModule := ValueHolder new.
     ].
-    ^ perModulePathModule.
+    ^ perModuleDatabaseModule.
 
-    "Created: / 21-12-2011 / 14:31:09 / cg"
+    "Created: / 25-12-2011 / 13:16:55 / cg"
 !
 
 removeEnabled
@@ -453,36 +522,14 @@
     ^ removeEnabled.
 !
 
-repositoryNameHolder
-
-    repositoryNameHolder isNil ifTrue:[
-        repositoryNameHolder := DataBaseSourceCodeManager defaultRepositoryName asValue.
-        repositoryNameHolder addDependent:self.
+selectedPerModuleDatabase
+    selectedPerModuleDatabase isNil ifTrue:[
+        selectedPerModuleDatabase := ValueHolder new.
+        selectedPerModuleDatabase addDependent:self.
     ].
-    ^ repositoryNameHolder.
-
-    "Created: / 22-12-2011 / 00:14:42 / cg"
-!
-
-repositoryPathHolder
+    ^ selectedPerModuleDatabase.
 
-    repositoryPathHolder isNil ifTrue:[
-        repositoryPathHolder := './versions' asValue.
-        repositoryPathHolder addDependent:self.
-    ].
-    ^ repositoryPathHolder.
-
-    "Created: / 21-12-2011 / 13:11:58 / cg"
-!
-
-selectedPerModulePath
-    selectedPerModulePath isNil ifTrue:[
-        selectedPerModulePath := ValueHolder new.
-        selectedPerModulePath addDependent:self.
-    ].
-    ^ selectedPerModulePath.
-
-    "Created: / 21-12-2011 / 14:35:37 / cg"
+    "Created: / 25-12-2011 / 13:15:10 / cg"
 !
 
 verboseSourceCodeAccess
@@ -495,42 +542,42 @@
 
 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'change & update'!
 
-selectedPerModulePathChanged
+selectedPerModuleDatabaseChanged
     |module entry|
 
     self acceptChannel value:true. 
 
-    module := self selectedPerModulePath value.
+    module := self selectedPerModuleDatabase value.
     module isNil ifTrue:[ 
         self removeEnabled value:false.
-        self perModulePathModule value:' '.
-        self perModulePath value:''.
+        self perModuleDatabaseModule value:' '.
+        self perModuleDB value:''.
         ^ self
     ].
 
-    entry := pathPerModule at:module ifAbsent:#().    
-    (entry first = FileBasedSourceCodeManager) ifTrue:[
+    entry := dbPerModule at:module ifAbsent:#().    
+    (entry first = DataBaseSourceCodeManager) ifTrue:[
         self removeEnabled value:true.
-        self perModulePathModule value:module.
-        self perModulePath value:(entry at:2).
+        self perModuleDatabaseModule value:module.
+        self perModuleDB value:(entry at:2).
     ] ifFalse:[
         self removeEnabled value:false.
-        self perModulePathModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold.
-        self perModulePath value:''.
+        self perModuleDatabaseModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold.
+        self perModuleDB value:''.
     ].
 
-    "Created: / 21-12-2011 / 14:35:04 / cg"
+    "Created: / 25-12-2011 / 13:15:54 / cg"
 !
 
 update:something with:aParameter from:changedObject 
-    changedObject == selectedPerModulePath ifTrue:[
-        self selectedPerModulePathChanged.
+    changedObject == selectedPerModuleDatabase ifTrue:[
+        self selectedPerModuleDatabaseChanged.
         ^ self
     ].
 
     super update:something with:aParameter from:changedObject
 
-    "Modified: / 21-12-2011 / 14:37:54 / cg"
+    "Modified: / 25-12-2011 / 13:15:36 / cg"
 !
 
 validateDirectoryExistsAndIsWritable:aDirectory
@@ -598,19 +645,19 @@
 initialize
     (AbstractSourceCodeManager notNil) ifTrue:[ AbstractSourceCodeManager autoload ].
 
-    pathPerModule := Dictionary new.
+    dbPerModule := Dictionary new.
 
-    FileBasedSourceCodeManager repositoryInfoPerModule 
+    DataBaseSourceCodeManager repositoryInfoPerModule 
         keysAndValuesDo:[:module :info |
             module withoutSeparators ~= module ifTrue:[
                 self halt:'should not happen any longer'
             ].
-            pathPerModule at:module put:(Array with:FileBasedSourceCodeManager with:info)
+            dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info)
         ].
 
     super initialize.
 
-    "Modified: / 21-12-2011 / 23:54:31 / cg"
+    "Modified: / 25-12-2011 / 13:23:44 / cg"
 ! !
 
 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'queries'!
@@ -631,28 +678,28 @@
 hasUnsavedChanges
     |modules|
 
-    modules := pathPerModule select:[:entry | entry first == FileBasedSourceCodeManager].
+    modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager].
 
-    FileBasedSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info |
+    DataBaseSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info |
         ((modules includesKey:module) and:[info = (modules at:module) second])
         ifFalse:[^ true].
     ].
     modules keysAndValuesDo:[:module :info|
-        ((FileBasedSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(FileBasedSourceCodeManager repositoryInfoPerModule at:module) = info second])
+        ((DataBaseSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(DataBaseSourceCodeManager repositoryInfoPerModule at:module) = info second])
         ifFalse:[^ true].
     ].
 
     ^ false
 
-    "Modified: / 21-12-2011 / 14:33:14 / cg"
+    "Modified: / 25-12-2011 / 13:24:08 / cg"
 ! !
 
 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.1 2011-12-22 13:02:54 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.2 2011-12-25 13:03:34 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.1 2011-12-22 13:02:54 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.2 2011-12-25 13:03:34 cg Exp $'
 ! !