MCRepositoryBrowser.st
changeset 540 bacdf1aea4a3
parent 516 41006ee80f02
child 558 6740bbea6eeb
--- a/MCRepositoryBrowser.st	Sun Dec 04 15:44:21 2011 +0100
+++ b/MCRepositoryBrowser.st	Sun Dec 04 15:44:23 2011 +0100
@@ -5,7 +5,7 @@
 		selectedVersionHolder worker selectedVersionDetailsHolder
 		selectedRepositoryHolder targetPackage targetNamespace
 		lastPackage targetPackageHolder targetNamespaceNameHolder
-		updateChangefileHolder'
+		updateChangefileHolder selectedPackageHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Monticello-St/X UI'
@@ -552,12 +552,69 @@
       )
 ! !
 
+!MCRepositoryBrowser class methodsFor:'startup'!
+
+openOnPrimaryRepository
+    "the primary repository is the one into which we checkin by default.
+     (see MCSettingsApplication)"
+
+    ^ self openOnPrimaryRepositoryForPackage:nil
+
+    "Created: / 03-12-2011 / 10:41:03 / cg"
+!
+
+openOnPrimaryRepositoryForPackage:anSTXPackageIdOrNil
+    "the primary repository is the one into which we checkin by default.
+     (see MCSettingsApplication)"
+
+    |repository browser|
+
+    repository := UserPreferences current at:#mcPrimaryRepository ifAbsent:nil.
+
+    browser := self new.
+    browser allButOpen.
+    browser selectedRepository:repository.
+    anSTXPackageIdOrNil notNil ifTrue:[
+        browser selectedPackage:anSTXPackageIdOrNil.
+    ].
+    browser openWindow.
+    ^ browser.
+
+    "Created: / 03-12-2011 / 10:42:01 / cg"
+! !
+
 !MCRepositoryBrowser methodsFor:'accessing'!
 
+selectedPackage:aPackageName
+    |listEntry packageListApp|
+
+    packageListApp := (builder componentAt:#PackageList) application.
+    listEntry := packageListApp listHolder value detect:[:listEntry | listEntry name = aPackageName] ifNone:nil.
+    packageListApp selectionHolder value:listEntry.
+
+    "Created: / 04-12-2011 / 09:30:00 / cg"
+!
+
+selectedRepository:aRepository
+    |rep fakeEntry listEntry repListApp|
+
+    rep := self repositoriesHolder value detect:[:e | e = aRepository] ifNone:nil.
+    rep notNil ifTrue:[
+        repListApp := (builder componentAt:#RepositoryList) application.
+        fakeEntry := repListApp makeEntry:rep.
+        listEntry := repListApp listHolder value detect:[:listEntry | listEntry repository = fakeEntry repository].
+        repListApp selectionHolder value:listEntry.
+    ]
+
+    "Created: / 03-12-2011 / 10:44:16 / cg"
+!
+
 selectedVersion
     "return the value in 'selectedVersionHolder'"
 
     ^ self selectedVersionHolder value
+
+    "Modified (comment): / 04-12-2011 / 09:28:52 / cg"
 !
 
 selectedVersion: newValue
@@ -567,12 +624,13 @@
 !
 
 selectedVersionAsMCVersion
+    | entry |
 
-    | entry |
     entry :=  self selectedVersionHolder value.
     ^entry ifNil:[nil] ifNotNil:[entry asMCVersion].
 
     "Created: / 13-10-2010 / 17:48:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 04-12-2011 / 09:29:01 / cg"
 ! !
 
 !MCRepositoryBrowser methodsFor:'aspect-queries'!
@@ -615,41 +673,46 @@
 !MCRepositoryBrowser methodsFor:'aspects'!
 
 packagesHolder
-    "return/create the 'packagesHolder' value holder (automatically generated)"
-
     packagesHolder isNil ifTrue:[
         packagesHolder := ValueHolder new.
     ].
     ^ packagesHolder
+
+    "Modified (comment): / 04-12-2011 / 09:27:57 / cg"
 !
 
 packagesHolder:something
-    "set the 'packagesHolder' value holder (automatically generated)"
+    packagesHolder := something.
 
-    packagesHolder := something.
+    "Modified (comment): / 04-12-2011 / 09:28:01 / cg"
 !
 
 repositoriesHolder
-    "return/create the 'repositoriesHolder' value holder (automatically generated)"
-
     repositoriesHolder isNil ifTrue:[
         repositoriesHolder := ValueHolder with:(MCRepositoryGroup default repositories).
     ].
     ^ repositoriesHolder
 
     "Modified: / 16-09-2010 / 18:33:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 29-08-2011 / 12:26:04 / cg"
+    "Modified (comment): / 04-12-2011 / 09:28:06 / cg"
 !
 
 repositoriesHolder:something
-    "set the 'repositoriesHolder' value holder (automatically generated)"
+    repositoriesHolder := something.
+
+    "Modified (comment): / 04-12-2011 / 09:28:09 / cg"
+!
 
-    repositoriesHolder := something.
+selectedPackageHolder
+    selectedPackageHolder isNil ifTrue:[
+        selectedPackageHolder := nil asValue.
+    ].
+    ^ selectedPackageHolder
+
+    "Created: / 04-12-2011 / 09:27:50 / cg"
 !
 
 selectedRepositoryHolder
-    "return/create the valueHolder 'selectedVersionHolder'"
-
     selectedRepositoryHolder isNil ifTrue:[
         selectedRepositoryHolder := nil asValue.
     ].
@@ -661,27 +724,16 @@
 selectedVersionDetailsHolder
     <resource: #uiAspect>
 
-    "automatically generated by UIPainter ..."
-
-    "*** the code below creates a default model when invoked."
-    "*** (which may not be the one you wanted)"
-    "*** Please change as required and accept it in the browser."
-    "*** (and replace this comment by something more useful ;-)"
-
     selectedVersionDetailsHolder isNil ifTrue:[
         selectedVersionDetailsHolder := '' asValue.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/       selectedPackageDetailsHolder addDependent:self.
-"/       selectedPackageDetailsHolder onChangeSend:#selectedPackageDetailsHolderChanged to:self.
     ].
     ^ selectedVersionDetailsHolder.
 
     "Modified: / 17-09-2010 / 15:17:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 03-12-2011 / 11:08:52 / cg"
 !
 
 selectedVersionHolder
-    "return/create the valueHolder 'selectedVersionHolder'"
-
     selectedVersionHolder isNil ifTrue:[
         selectedVersionHolder := ValueHolder with:nil "defaultValue here".
         selectedVersionHolder onChangeSend: #updateVersionDetails to: self.        
@@ -689,6 +741,7 @@
     ^ selectedVersionHolder
 
     "Modified: / 17-09-2010 / 15:23:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 04-12-2011 / 09:28:21 / cg"
 !
 
 selectedVersionHolder:something
@@ -698,39 +751,23 @@
 targetNamespaceNameHolder
     <resource: #uiAspect>
 
-    "automatically generated by UIPainter ..."
-
-    "*** the code below creates a default model when invoked."
-    "*** (which may not be the one you wanted)"
-    "*** Please change as required and accept it in the browser."
-    "*** (and replace this comment by something more useful ;-)"
-
     targetNamespaceNameHolder isNil ifTrue:[
         targetNamespaceNameHolder := ValueHolder new.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/       targetNamespaceNameHolder addDependent:self.
-"/       targetNamespaceNameHolder onChangeSend:#targetNamespaceNameHolderChanged to:self.
     ].
     ^ targetNamespaceNameHolder.
+
+    "Modified (comment): / 03-12-2011 / 11:09:03 / cg"
 !
 
 targetPackageHolder
     <resource: #uiAspect>
 
-    "automatically generated by UIPainter ..."
-
-    "*** the code below creates a default model when invoked."
-    "*** (which may not be the one you wanted)"
-    "*** Please change as required and accept it in the browser."
-    "*** (and replace this comment by something more useful ;-)"
-
     targetPackageHolder isNil ifTrue:[
         targetPackageHolder := ValueHolder new.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/       targetPackageHolder addDependent:self.
-"/       targetPackageHolder onChangeSend:#targetPackageHolderChanged to:self.
     ].
     ^ targetPackageHolder.
+
+    "Modified (comment): / 03-12-2011 / 11:09:09 / cg"
 !
 
 updateChangefileHolder
@@ -743,18 +780,18 @@
 !
 
 versionsHolder
-    "return/create the 'versionsHolder' value holder (automatically generated)"
-
     versionsHolder isNil ifTrue:[
         versionsHolder := ValueHolder new.
     ].
     ^ versionsHolder
+
+    "Modified (comment): / 04-12-2011 / 09:28:30 / cg"
 !
 
 versionsHolder:something
-    "set the 'versionsHolder' value holder (automatically generated)"
+    versionsHolder := something.
 
-    versionsHolder := something.
+    "Modified (comment): / 04-12-2011 / 09:28:33 / cg"
 ! !
 
 !MCRepositoryBrowser methodsFor:'menu actions'!
@@ -1004,31 +1041,40 @@
 !MCRepositoryBrowser methodsFor:'updating'!
 
 updateVersionDetails
+    |  versionEntry version |
 
-    |  versionEntry version |
     worker ifNotNil:[worker terminate. worker := nil].
     versionEntry := self selectedVersion.
     versionEntry ifNil:[selectedVersionDetailsHolder value:'No version selected'. ^self].
-    worker := 
-        [[selectedVersionDetailsHolder value:'Reading ',versionEntry name,'...'.
+    "/ async is not a good idea - if it takes long, user might start to click around...
+"/    worker := 
+"/        [[selectedVersionDetailsHolder value:'Reading ',versionEntry name,'...'.
+"/        version := versionEntry asMCVersion.
+"/        version ifNotNil:
+"/            [selectedVersionDetailsHolder value: version summary]] ensure:[worker := nil]] newProcess.
+"/    worker resume.
+
+    self withWaitCursorDo:[
+        selectedVersionDetailsHolder value:'Reading ',versionEntry name,'...'.
         version := versionEntry asMCVersion.
-        version ifNotNil:
-            [selectedVersionDetailsHolder value: version summary]] ensure:[worker := nil]] newProcess.
-    worker resume.
+        version ifNotNil:[
+            selectedVersionDetailsHolder value: version summary
+        ]
+    ].
 
     "Created: / 17-09-2010 / 15:23:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 26-10-2010 / 22:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-11-2011 / 11:33:31 / cg"
+    "Modified (comment): / 03-12-2011 / 11:11:28 / cg"
 ! !
 
 !MCRepositoryBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.15 2011-11-25 10:33:38 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.16 2011-12-04 14:44:23 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.15 2011-11-25 10:33:38 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.16 2011-12-04 14:44:23 cg Exp $'
 !
 
 version_SVN