DataBaseSourceCodeManagementSettingsAppl.st
changeset 11029 189b0dfccd0a
parent 11013 c52144537d6d
child 11031 28041a6aa9ab
equal deleted inserted replaced
11028:3db1a494048a 11029:189b0dfccd0a
    11 "
    11 "
    12 "{ Package: 'stx:libtool' }"
    12 "{ Package: 'stx:libtool' }"
    13 
    13 
    14 AbstractSourceCodeManagementSettingsAppl subclass:#DataBaseSourceCodeManagementSettingsAppl
    14 AbstractSourceCodeManagementSettingsAppl subclass:#DataBaseSourceCodeManagementSettingsAppl
    15 	instanceVariableNames:'sourceCacheDir listOfModules removeEnabled acceptChannel
    15 	instanceVariableNames:'sourceCacheDir listOfModules removeEnabled acceptChannel
    16 		pathPerModule verboseSourceCodeAccess repositoryPathHolder
    16 		pathPerModule verboseSourceCodeAccess dbNameHolder
    17 		perModulePath perModulePathModule selectedPerModulePath
    17 		selectedPerModuleDatabase perModuleDatabaseModule perModuleDB
    18 		repositoryNameHolder'
    18 		dbPerModule'
    19 	classVariableNames:'RecentlyUsedCVSRoots RecentlyUsedStoreHosts
    19 	classVariableNames:''
    20 		RecentlyUsedSmallTeamHosts LastStoreHost LastStoreUser
       
    21 		LastStorePassword'
       
    22 	poolDictionaries:''
    20 	poolDictionaries:''
    23 	category:'System-SourceCodeManagement'
    21 	category:'System-SourceCodeManagement'
    24 !
    22 !
    25 
    23 
    26 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
    24 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
    56 defaultTableName
    54 defaultTableName
    57 
    55 
    58     ^ 'stx_versions'
    56     ^ 'stx_versions'
    59 
    57 
    60     "Created: / 21-12-2011 / 23:43:04 / cg"
    58     "Created: / 21-12-2011 / 23:43:04 / cg"
       
    59 ! !
       
    60 
       
    61 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'help specs'!
       
    62 
       
    63 flyByHelpSpec
       
    64     "This resource specification was automatically generated
       
    65      by the UIHelpTool of ST/X."
       
    66 
       
    67     "Do not manually edit this!! If it is corrupted,
       
    68      the UIHelpTool may not be able to read the specification."
       
    69 
       
    70     "
       
    71      UIHelpTool openOnClass:DataBaseSourceCodeManagementSettingsAppl    
       
    72     "
       
    73 
       
    74     <resource: #help>
       
    75 
       
    76     ^ super flyByHelpSpec addPairsFrom:#(
       
    77 
       
    78 #defaultDBName
       
    79 'Default database; used for all modules which are not listed below'
       
    80 
       
    81 #perModuleDB
       
    82 'Per module database configuration'
       
    83 
       
    84 #perModuleDBModule
       
    85 'The module for which a specific database is defined'
       
    86 
       
    87 #perModuleDBName
       
    88 'Database for the selected module (scheme:[user[.password]@hostname:databaseName[.tableName]'
       
    89 
       
    90 )
       
    91 
       
    92     "Created: / 25-12-2011 / 13:46:07 / cg"
    61 ! !
    93 ! !
    62 
    94 
    63 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'image specs'!
    95 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'image specs'!
    64 
    96 
    65 defaultIcon
    97 defaultIcon
   152                                (SpecCollection
   184                                (SpecCollection
   153                                   collection: (
   185                                   collection: (
   154                                    (ViewSpec
   186                                    (ViewSpec
   155                                       name: 'Box1'
   187                                       name: 'Box1'
   156                                       layout: (LayoutFrame 0 0 0 0 0 1 25 0)
   188                                       layout: (LayoutFrame 0 0 0 0 0 1 25 0)
       
   189                                       activeHelpKey: defaultDBName
   157                                       component: 
   190                                       component: 
   158                                      (SpecCollection
   191                                      (SpecCollection
   159                                         collection: (
   192                                         collection: (
   160                                          (LabelSpec
   193                                          (LabelSpec
   161                                             label: 'DB Name:'
   194                                             label: 'DB Name:'
   162                                             name: 'Label1'
   195                                             name: 'Label1'
   163                                             layout: (LayoutFrame 0 0.0 0 0 60 0.25 22 0)
   196                                             layout: (LayoutFrame 0 0.0 0 0 60 0.25 22 0)
       
   197                                             activeHelpKey: defaultDBName
   164                                             level: 0
   198                                             level: 0
   165                                             translateLabel: true
   199                                             translateLabel: true
   166                                             adjust: right
   200                                             adjust: right
   167                                           )
   201                                           )
   168                                          (InputFieldSpec
   202                                          (InputFieldSpec
   169                                             name: 'RepositoryPathField'
   203                                             name: 'RepositoryPathField'
   170                                             layout: (LayoutFrame 64 0.25 0 0 0 1 22 0)
   204                                             layout: (LayoutFrame 64 0.25 0 0 0 1 22 0)
       
   205                                             activeHelpKey: defaultDBName
   171                                             tabable: true
   206                                             tabable: true
   172                                             model: dbNameHolder
   207                                             model: dbNameHolder
   173                                             acceptChannel: acceptChannel
   208                                             acceptChannel: acceptChannel
   174                                             acceptOnPointerLeave: true
   209                                             acceptOnPointerLeave: true
   175                                           )
   210                                           )
   179                                     )
   214                                     )
   180                                    (LabelSpec
   215                                    (LabelSpec
   181                                       label: 'DB per Module:'
   216                                       label: 'DB per Module:'
   182                                       name: 'knownModulesLabel'
   217                                       name: 'knownModulesLabel'
   183                                       layout: (LayoutFrame 0 0.0 82 0 60 0.25 104 0)
   218                                       layout: (LayoutFrame 0 0.0 82 0 60 0.25 104 0)
       
   219                                       activeHelpKey: perModuleDB
   184                                       translateLabel: true
   220                                       translateLabel: true
   185                                       adjust: right
   221                                       adjust: right
   186                                     )
   222                                     )
   187                                    (SequenceViewSpec
   223                                    (SequenceViewSpec
   188                                       name: 'List1'
   224                                       name: 'List1'
   189                                       layout: (LayoutFrame 64 0.25 82 0 0 1 201 0)
   225                                       layout: (LayoutFrame 64 0.25 82 0 0 1 201 0)
       
   226                                       activeHelpKey: perModuleDB
   190                                       tabable: true
   227                                       tabable: true
   191                                       model: selectedPerModuleDatabase
   228                                       model: selectedPerModuleDatabase
   192                                       hasHorizontalScrollBar: true
   229                                       hasHorizontalScrollBar: true
   193                                       hasVerticalScrollBar: true
   230                                       hasVerticalScrollBar: true
   194                                       miniScrollerHorizontal: true
   231                                       miniScrollerHorizontal: true
   197                                     )
   234                                     )
   198                                    (LabelSpec
   235                                    (LabelSpec
   199                                       label: 'Module:'
   236                                       label: 'Module:'
   200                                       name: 'moduleLabel'
   237                                       name: 'moduleLabel'
   201                                       layout: (LayoutFrame 0 0.0 211 0 60 0.25 228 0)
   238                                       layout: (LayoutFrame 0 0.0 211 0 60 0.25 228 0)
       
   239                                       activeHelpKey: perModuleDBModule
   202                                       translateLabel: true
   240                                       translateLabel: true
   203                                       adjust: right
   241                                       adjust: right
   204                                     )
   242                                     )
   205                                    (InputFieldSpec
   243                                    (InputFieldSpec
   206                                       name: 'perModulePathModuleEntryField'
   244                                       name: 'perModuleDatabaseModuleEntryField'
   207                                       layout: (LayoutFrame 64 0.25 207 0 0 1 229 0)
   245                                       layout: (LayoutFrame 64 0.25 207 0 0 1 229 0)
       
   246                                       activeHelpKey: perModuleDBModule
   208                                       tabable: true
   247                                       tabable: true
   209                                       model: perModulePathModule
   248                                       model: perModuleDatabaseModule
   210                                       acceptChannel: acceptChannel
   249                                       acceptChannel: acceptChannel
   211                                       acceptOnPointerLeave: true
   250                                       acceptOnPointerLeave: true
   212                                     )
   251                                     )
   213                                    (LabelSpec
   252                                    (LabelSpec
   214                                       label: 'DB:'
   253                                       label: 'DB:'
   215                                       name: 'cvsRootLabel'
   254                                       name: 'cvsRootLabel'
   216                                       layout: (LayoutFrame 0 0.0 236 0 60 0.25 253 0)
   255                                       layout: (LayoutFrame 0 0.0 236 0 60 0.25 253 0)
       
   256                                       activeHelpKey: perModuleDBName
   217                                       translateLabel: true
   257                                       translateLabel: true
   218                                       adjust: right
   258                                       adjust: right
   219                                     )
   259                                     )
   220                                    (ComboBoxSpec
   260                                    (ComboBoxSpec
   221                                       name: 'perModulePathComboBox'
   261                                       name: 'perModulePathComboBox'
   222                                       layout: (LayoutFrame 64 0.25 232 0 0 1.0 254 0)
   262                                       layout: (LayoutFrame 64 0.25 232 0 0 1.0 254 0)
       
   263                                       activeHelpKey: perModuleDBName
   223                                       tabable: true
   264                                       tabable: true
   224                                       model: perModuleDB
   265                                       model: perModuleDB
   225                                       immediateAccept: true
   266                                       immediateAccept: true
   226                                       acceptOnLeave: true
   267                                       acceptOnLeave: true
   227                                       acceptOnReturn: true
   268                                       acceptOnReturn: true
   244                                          (ActionButtonSpec
   285                                          (ActionButtonSpec
   245                                             label: 'Add/Apply'
   286                                             label: 'Add/Apply'
   246                                             name: 'addButton'
   287                                             name: 'addButton'
   247                                             translateLabel: true
   288                                             translateLabel: true
   248                                             tabable: true
   289                                             tabable: true
   249                                             model: addPerModulePath
   290                                             model: addPerModuleDB
   250                                             extent: (Point 130 22)
   291                                             extent: (Point 130 22)
   251                                           )
   292                                           )
   252                                          (ActionButtonSpec
   293                                          (ActionButtonSpec
   253                                             label: 'Remove'
   294                                             label: 'Remove'
   254                                             name: 'removeButton'
   295                                             name: 'removeButton'
   255                                             translateLabel: true
   296                                             translateLabel: true
   256                                             tabable: true
   297                                             tabable: true
   257                                             model: removePerModulePath
   298                                             model: removePerModuleDB
   258                                             enableChannel: removeEnabled
   299                                             enableChannel: removeEnabled
   259                                             extent: (Point 131 22)
   300                                             extent: (Point 131 22)
   260                                           )
   301                                           )
   261                                          (ViewSpec
   302                                          (ViewSpec
   262                                             name: 'Box11'
   303                                             name: 'Box11'
   304 
   345 
   305 addModule:module withData:data
   346 addModule:module withData:data
   306     (self listOfModules includes:module) ifFalse:[
   347     (self listOfModules includes:module) ifFalse:[
   307         self listOfModules add:module; sort.
   348         self listOfModules add:module; sort.
   308     ].
   349     ].
   309     pathPerModule at:module put:data.
   350     dbPerModule at:module put:data.
   310 
   351 
   311     self updateModifiedChannel.
   352     self updateModifiedChannel.
   312 
   353 
   313     "Created: / 08-11-2006 / 19:25:21 / cg"
   354     "Created: / 08-11-2006 / 19:25:21 / cg"
   314 !
   355 !
   315 
   356 
   316 addPerModulePath
   357 addPerModuleDB
   317     |module path|
   358     |module path|
   318 
   359 
   319     acceptChannel value:true.    
   360     acceptChannel value:true.    
   320 
   361 
   321     module := self perModulePathModule value.
   362     module := self perModuleDatabaseModule value.
   322     path := self perModulePath value.
   363     path := self perModuleDB value.
   323 
   364 
   324     path size > 0 ifTrue:[
   365     path size > 0 ifTrue:[
   325         self validateDirectoryExistsAndIsWritable:path.
   366         self validateDirectoryExistsAndIsWritable:path.
   326         self addModule:module withData:(Array with:FileBasedSourceCodeManager with:path).
   367         self addModule:module withData:(Array with:FileBasedSourceCodeManager with:path).
   327     ].
   368     ].
   328 
   369 
   329     "Created: / 21-12-2011 / 14:23:10 / cg"
   370     "Created: / 25-12-2011 / 13:18:30 / cg"
   330 !
   371 !
   331 
   372 
   332 basicReadSettings
   373 basicReadSettings
   333     |infoPerModule|
   374     |infoPerModule|
   334 
   375 
   335     self initialize.
   376     self initialize.
   336 
   377 
   337     infoPerModule := FileBasedSourceCodeManager repositoryInfoPerModule.
   378     infoPerModule := DataBaseSourceCodeManager repositoryInfoPerModule.
   338     infoPerModule keysAndValuesDo:[:module :info | 
   379     infoPerModule keysAndValuesDo:[:module :info | 
   339         pathPerModule at:module put:(Array with:FileBasedSourceCodeManager with:info).
   380         dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info).
   340     ].
   381     ].
   341 
   382 
   342     self repositoryNameHolder value:DataBaseSourceCodeManager repositoryName ? self class defaultRepositoryName.
   383     self dbNameHolder value:DataBaseSourceCodeManager repositoryName ? self class defaultRepositoryName.
   343 
   384 
   344     pathPerModule notNil ifTrue:[
   385     dbPerModule notNil ifTrue:[
   345         self listOfModules removeAll.
   386         self listOfModules removeAll.
   346         listOfModules addAll:pathPerModule keys asList.
   387         listOfModules addAll:dbPerModule keys asList.
   347     ].
   388     ].
   348 
   389 
   349     "Modified: / 22-12-2011 / 00:15:36 / cg"
   390     "Modified: / 25-12-2011 / 13:21:30 / cg"
   350 !
   391 !
   351 
   392 
   352 basicSaveSettings
   393 basicSaveSettings
   353     |infoPerModule modules|
   394     |infoPerModule modules|
   354 
   395 
   355     modules := pathPerModule select:[:entry | entry first == FileBasedSourceCodeManager].
   396     modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager].
   356     infoPerModule := Dictionary new.
   397     infoPerModule := Dictionary new.
   357     modules keysAndValuesDo:[:module :entry | 
   398     modules keysAndValuesDo:[:module :entry | 
   358         entry first == FileBasedSourceCodeManager ifTrue:[
   399         entry first == DataBaseSourceCodeManager ifTrue:[
   359             infoPerModule at:module put:(entry second).
   400             infoPerModule at:module put:(entry second).
   360         ].
   401         ].
   361     ].
   402     ].
   362     FileBasedSourceCodeManager repositoryInfoPerModule:infoPerModule.
   403     DataBaseSourceCodeManager repositoryInfoPerModule:infoPerModule.
   363 
   404 
   364     self acceptChannel value.
   405     self acceptChannel value.
   365 
   406 
   366     "Modified: / 21-12-2011 / 14:27:47 / cg"
   407     "Modified: / 25-12-2011 / 13:21:50 / cg"
   367 !
   408 !
   368 
   409 
   369 condenseSourceCache
   410 condenseSourceCache
   370     self withWaitCursorDo:[ AbstractSourceCodeManager condenseSourceCache ].
   411     self withWaitCursorDo:[ AbstractSourceCodeManager condenseSourceCache ].
   371     Method flushSourceStreamCache.
   412     Method flushSourceStreamCache.
   377     self withWaitCursorDo:[ AbstractSourceCodeManager flushSourceCache ].
   418     self withWaitCursorDo:[ AbstractSourceCodeManager flushSourceCache ].
   378 
   419 
   379     "Modified: / 30-09-2011 / 13:33:47 / cg"
   420     "Modified: / 30-09-2011 / 13:33:47 / cg"
   380 !
   421 !
   381 
   422 
       
   423 removePerModuleDB
       
   424     |module|
       
   425 
       
   426     acceptChannel value:true.    
       
   427 
       
   428     module := self perModuleDatabaseModule value.
       
   429     self listOfModules remove:module ifAbsent:nil.
       
   430     dbPerModule removeKey:module ifAbsent:nil.
       
   431     self perModuleDatabaseModule value:nil.
       
   432     self perModuleDB value:nil.
       
   433     self updateModifiedChannel.
       
   434 
       
   435     "Created: / 25-12-2011 / 13:19:45 / cg"
       
   436 !
       
   437 
   382 removePerModulePath
   438 removePerModulePath
   383     |module|
   439     |module|
   384 
   440 
   385     acceptChannel value:true.    
   441     acceptChannel value:true.    
   386 
   442 
   387     module := self perModulePathModule value.
   443     module := self perModuleDatabaseModule value.
   388     self listOfModules remove:module ifAbsent:nil.
   444     self listOfModules remove:module ifAbsent:nil.
   389     pathPerModule removeKey:module ifAbsent:nil.
   445     dbPerModule removeKey:module ifAbsent:nil.
   390     self perModulePathModule value:nil.
   446     self perModuleDatabaseModule value:nil.
   391     self perModulePath value:nil.
   447     self perModuleDB value:nil.
   392     self updateModifiedChannel.
   448     self updateModifiedChannel.
   393 
   449 
   394     "Created: / 21-12-2011 / 14:26:08 / cg"
   450     "Created: / 21-12-2011 / 14:26:08 / cg"
   395 ! !
   451 ! !
   396 
   452 
   402         acceptChannel := TriggerValue new.
   458         acceptChannel := TriggerValue new.
   403     ].
   459     ].
   404     ^ acceptChannel.
   460     ^ acceptChannel.
   405 !
   461 !
   406 
   462 
       
   463 dbNameHolder
       
   464 
       
   465     dbNameHolder isNil ifTrue:[
       
   466         dbNameHolder := DataBaseSourceCodeManager defaultRepositoryName asValue.
       
   467         dbNameHolder addDependent:self.
       
   468     ].
       
   469     ^ dbNameHolder.
       
   470 
       
   471     "Created: / 25-12-2011 / 13:14:17 / cg"
       
   472 !
       
   473 
       
   474 dbPrototypeList
       
   475     ^ #(
       
   476             'sqlite:repository.db'
       
   477             'odbc:localhost:stxRepository'
       
   478             'sqlite:pathname'
       
   479             'odbc:user.password@host:table'
       
   480         )
       
   481 
       
   482     "Created: / 25-12-2011 / 13:13:20 / cg"
       
   483 !
       
   484 
   407 listOfModules
   485 listOfModules
   408 
   486 
   409     listOfModules isNil ifTrue:[
   487     listOfModules isNil ifTrue:[
   410         pathPerModule notNil ifTrue:[
   488         dbPerModule notNil ifTrue:[
   411             listOfModules := pathPerModule keys asList.
   489             listOfModules := dbPerModule keys asList.
   412         ].
   490         ].
   413         listOfModules sort.
   491         listOfModules sort.
   414         listOfModules onChangeSend:#updateModifiedChannel to:self
   492         listOfModules onChangeSend:#updateModifiedChannel to:self
   415     ].
   493     ].
   416     ^ listOfModules.
   494     ^ listOfModules.
   417 
   495 
   418     "Modified: / 21-12-2011 / 14:32:59 / cg"
   496     "Modified: / 25-12-2011 / 13:20:13 / cg"
   419 !
   497 !
   420 
   498 
   421 pathPrototypeList
   499 perModuleDB
   422     ^ #(
   500     perModuleDB isNil ifTrue:[
   423             './versions'
   501         perModuleDB := ValueHolder new.
   424         )
   502     ].
   425 
   503     ^ perModuleDB.
   426     "Created: / 21-12-2011 / 13:13:05 / cg"
   504 
   427 !
   505     "Created: / 25-12-2011 / 13:18:55 / cg"
   428 
   506 !
   429 perModulePath
   507 
   430     perModulePath isNil ifTrue:[
   508 perModuleDatabaseModule
   431         perModulePath := ValueHolder new.
   509     perModuleDatabaseModule isNil ifTrue:[
   432         perModulePath addDependent:self.
   510         perModuleDatabaseModule := ValueHolder new.
   433     ].
   511     ].
   434     ^ perModulePath.
   512     ^ perModuleDatabaseModule.
   435 
   513 
   436     "Created: / 21-12-2011 / 14:19:03 / cg"
   514     "Created: / 25-12-2011 / 13:16:55 / cg"
   437 !
       
   438 
       
   439 perModulePathModule
       
   440     perModulePathModule isNil ifTrue:[
       
   441         perModulePathModule := ValueHolder new.
       
   442     ].
       
   443     ^ perModulePathModule.
       
   444 
       
   445     "Created: / 21-12-2011 / 14:31:09 / cg"
       
   446 !
   515 !
   447 
   516 
   448 removeEnabled
   517 removeEnabled
   449 
   518 
   450     removeEnabled isNil ifTrue:[
   519     removeEnabled isNil ifTrue:[
   451         removeEnabled := false asValue.
   520         removeEnabled := false asValue.
   452     ].
   521     ].
   453     ^ removeEnabled.
   522     ^ removeEnabled.
   454 !
   523 !
   455 
   524 
   456 repositoryNameHolder
   525 selectedPerModuleDatabase
   457 
   526     selectedPerModuleDatabase isNil ifTrue:[
   458     repositoryNameHolder isNil ifTrue:[
   527         selectedPerModuleDatabase := ValueHolder new.
   459         repositoryNameHolder := DataBaseSourceCodeManager defaultRepositoryName asValue.
   528         selectedPerModuleDatabase addDependent:self.
   460         repositoryNameHolder addDependent:self.
   529     ].
   461     ].
   530     ^ selectedPerModuleDatabase.
   462     ^ repositoryNameHolder.
   531 
   463 
   532     "Created: / 25-12-2011 / 13:15:10 / cg"
   464     "Created: / 22-12-2011 / 00:14:42 / cg"
       
   465 !
       
   466 
       
   467 repositoryPathHolder
       
   468 
       
   469     repositoryPathHolder isNil ifTrue:[
       
   470         repositoryPathHolder := './versions' asValue.
       
   471         repositoryPathHolder addDependent:self.
       
   472     ].
       
   473     ^ repositoryPathHolder.
       
   474 
       
   475     "Created: / 21-12-2011 / 13:11:58 / cg"
       
   476 !
       
   477 
       
   478 selectedPerModulePath
       
   479     selectedPerModulePath isNil ifTrue:[
       
   480         selectedPerModulePath := ValueHolder new.
       
   481         selectedPerModulePath addDependent:self.
       
   482     ].
       
   483     ^ selectedPerModulePath.
       
   484 
       
   485     "Created: / 21-12-2011 / 14:35:37 / cg"
       
   486 !
   533 !
   487 
   534 
   488 verboseSourceCodeAccess
   535 verboseSourceCodeAccess
   489     verboseSourceCodeAccess isNil ifTrue:[
   536     verboseSourceCodeAccess isNil ifTrue:[
   490         verboseSourceCodeAccess := false asValue.
   537         verboseSourceCodeAccess := false asValue.
   493     ^ verboseSourceCodeAccess.
   540     ^ verboseSourceCodeAccess.
   494 ! !
   541 ! !
   495 
   542 
   496 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'change & update'!
   543 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'change & update'!
   497 
   544 
   498 selectedPerModulePathChanged
   545 selectedPerModuleDatabaseChanged
   499     |module entry|
   546     |module entry|
   500 
   547 
   501     self acceptChannel value:true. 
   548     self acceptChannel value:true. 
   502 
   549 
   503     module := self selectedPerModulePath value.
   550     module := self selectedPerModuleDatabase value.
   504     module isNil ifTrue:[ 
   551     module isNil ifTrue:[ 
   505         self removeEnabled value:false.
   552         self removeEnabled value:false.
   506         self perModulePathModule value:' '.
   553         self perModuleDatabaseModule value:' '.
   507         self perModulePath value:''.
   554         self perModuleDB value:''.
   508         ^ self
   555         ^ self
   509     ].
   556     ].
   510 
   557 
   511     entry := pathPerModule at:module ifAbsent:#().    
   558     entry := dbPerModule at:module ifAbsent:#().    
   512     (entry first = FileBasedSourceCodeManager) ifTrue:[
   559     (entry first = DataBaseSourceCodeManager) ifTrue:[
   513         self removeEnabled value:true.
   560         self removeEnabled value:true.
   514         self perModulePathModule value:module.
   561         self perModuleDatabaseModule value:module.
   515         self perModulePath value:(entry at:2).
   562         self perModuleDB value:(entry at:2).
   516     ] ifFalse:[
   563     ] ifFalse:[
   517         self removeEnabled value:false.
   564         self removeEnabled value:false.
   518         self perModulePathModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold.
   565         self perModuleDatabaseModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold.
   519         self perModulePath value:''.
   566         self perModuleDB value:''.
   520     ].
   567     ].
   521 
   568 
   522     "Created: / 21-12-2011 / 14:35:04 / cg"
   569     "Created: / 25-12-2011 / 13:15:54 / cg"
   523 !
   570 !
   524 
   571 
   525 update:something with:aParameter from:changedObject 
   572 update:something with:aParameter from:changedObject 
   526     changedObject == selectedPerModulePath ifTrue:[
   573     changedObject == selectedPerModuleDatabase ifTrue:[
   527         self selectedPerModulePathChanged.
   574         self selectedPerModuleDatabaseChanged.
   528         ^ self
   575         ^ self
   529     ].
   576     ].
   530 
   577 
   531     super update:something with:aParameter from:changedObject
   578     super update:something with:aParameter from:changedObject
   532 
   579 
   533     "Modified: / 21-12-2011 / 14:37:54 / cg"
   580     "Modified: / 25-12-2011 / 13:15:36 / cg"
   534 !
   581 !
   535 
   582 
   536 validateDirectoryExistsAndIsWritable:aDirectory
   583 validateDirectoryExistsAndIsWritable:aDirectory
   537     |nm fn|
   584     |nm fn|
   538 
   585 
   596 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'initialization & release'!
   643 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'initialization & release'!
   597 
   644 
   598 initialize
   645 initialize
   599     (AbstractSourceCodeManager notNil) ifTrue:[ AbstractSourceCodeManager autoload ].
   646     (AbstractSourceCodeManager notNil) ifTrue:[ AbstractSourceCodeManager autoload ].
   600 
   647 
   601     pathPerModule := Dictionary new.
   648     dbPerModule := Dictionary new.
   602 
   649 
   603     FileBasedSourceCodeManager repositoryInfoPerModule 
   650     DataBaseSourceCodeManager repositoryInfoPerModule 
   604         keysAndValuesDo:[:module :info |
   651         keysAndValuesDo:[:module :info |
   605             module withoutSeparators ~= module ifTrue:[
   652             module withoutSeparators ~= module ifTrue:[
   606                 self halt:'should not happen any longer'
   653                 self halt:'should not happen any longer'
   607             ].
   654             ].
   608             pathPerModule at:module put:(Array with:FileBasedSourceCodeManager with:info)
   655             dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info)
   609         ].
   656         ].
   610 
   657 
   611     super initialize.
   658     super initialize.
   612 
   659 
   613     "Modified: / 21-12-2011 / 23:54:31 / cg"
   660     "Modified: / 25-12-2011 / 13:23:44 / cg"
   614 ! !
   661 ! !
   615 
   662 
   616 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'queries'!
   663 !DataBaseSourceCodeManagementSettingsAppl methodsFor:'queries'!
   617 
   664 
   618 cvsRootFromCVSRootFileOrNil
   665 cvsRootFromCVSRootFileOrNil
   629 !
   676 !
   630 
   677 
   631 hasUnsavedChanges
   678 hasUnsavedChanges
   632     |modules|
   679     |modules|
   633 
   680 
   634     modules := pathPerModule select:[:entry | entry first == FileBasedSourceCodeManager].
   681     modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager].
   635 
   682 
   636     FileBasedSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info |
   683     DataBaseSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info |
   637         ((modules includesKey:module) and:[info = (modules at:module) second])
   684         ((modules includesKey:module) and:[info = (modules at:module) second])
   638         ifFalse:[^ true].
   685         ifFalse:[^ true].
   639     ].
   686     ].
   640     modules keysAndValuesDo:[:module :info|
   687     modules keysAndValuesDo:[:module :info|
   641         ((FileBasedSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(FileBasedSourceCodeManager repositoryInfoPerModule at:module) = info second])
   688         ((DataBaseSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(DataBaseSourceCodeManager repositoryInfoPerModule at:module) = info second])
   642         ifFalse:[^ true].
   689         ifFalse:[^ true].
   643     ].
   690     ].
   644 
   691 
   645     ^ false
   692     ^ false
   646 
   693 
   647     "Modified: / 21-12-2011 / 14:33:14 / cg"
   694     "Modified: / 25-12-2011 / 13:24:08 / cg"
   648 ! !
   695 ! !
   649 
   696 
   650 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
   697 !DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
   651 
   698 
   652 version
   699 version
   653     ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.1 2011-12-22 13:02:54 cg Exp $'
   700     ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.2 2011-12-25 13:03:34 cg Exp $'
   654 !
   701 !
   655 
   702 
   656 version_CVS
   703 version_CVS
   657     ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.1 2011-12-22 13:02:54 cg Exp $'
   704     ^ '$Header: /cvs/stx/stx/libtool/DataBaseSourceCodeManagementSettingsAppl.st,v 1.2 2011-12-25 13:03:34 cg Exp $'
   658 ! !
   705 ! !