class: MCRepositoryBrowser
authorClaus Gittinger <cg@exept.de>
Wed, 12 Feb 2014 16:37:57 +0100
changeset 911 9e6130c597b9
parent 910 6a56267a1e3c
child 912 ac114b27e760
class: MCRepositoryBrowser changed: #repositoryAdd handle ftp-urls show busy cursor while fetching list
MCRepositoryBrowser.st
--- a/MCRepositoryBrowser.st	Wed Feb 12 15:53:41 2014 +0100
+++ b/MCRepositoryBrowser.st	Wed Feb 12 16:37:57 2014 +0100
@@ -1,14 +1,14 @@
 "{ Package: 'stx:goodies/monticello' }"
 
 ApplicationModel subclass:#MCRepositoryBrowser
-        instanceVariableNames:'repositoriesHolder packagesHolder versionsHolder
-                selectedVersionHolder worker selectedVersionDetailsHolder
-                selectedRepositoryHolder targetPackage targetNamespace
-                lastPackage targetPackageHolder targetNamespaceNameHolder
-                updateChangefileHolder selectedPackageHolder'
-        classVariableNames:'LastAddedRepository LastAddedURLString'
-        poolDictionaries:''
-        category:'SCM-Monticello-St/X UI'
+	instanceVariableNames:'repositoriesHolder packagesHolder versionsHolder
+		selectedVersionHolder worker selectedVersionDetailsHolder
+		selectedRepositoryHolder targetPackage targetNamespace
+		lastPackage targetPackageHolder targetNamespaceNameHolder
+		updateChangefileHolder selectedPackageHolder'
+	classVariableNames:'LastAddedRepository LastAddedURLString'
+	poolDictionaries:''
+	category:'SCM-Monticello-St/X UI'
 !
 
 
@@ -935,7 +935,7 @@
         Dialog warn:'Invalid URL (',ex description,')'.
         ^ self
     ] do:[
-        url := URL fromString:repStr.
+        url := URI fromString:repStr.
     ].
     url isNil ifTrue:[
         LastAddedURLString := repStr.
@@ -948,17 +948,27 @@
                 location: repStr
                 user: ''
                 password: ''
-    ] ifFalse:[
-        url isFileScheme ifTrue:[
-            rep := MCDirectoryRepository directory:repStr.
-        ].
+    ] ifFalse:[ 
+        url method = 'ftp' ifTrue:[
+            rep := MCFtpRepository
+                    host: url host 
+                    directory: url path 
+                    user: url user
+                    password: (url password ? 'anonymous')
+        ] ifFalse:[
+            url isFileScheme ifTrue:[
+                rep := MCDirectoryRepository directory:repStr.
+            ].
+        ]
     ].
     rep isNil ifTrue:[
         LastAddedURLString := repStr.
         Dialog warn:'Cannot figure out access scheme from URL.'.
         ^ self.
+    ].  
+    self withWaitCursorDo:[
+        self addRepository:rep
     ].
-    self addRepository:rep
 
     "Created: / 29-08-2011 / 12:25:40 / cg"
 !
@@ -1242,15 +1252,15 @@
 !MCRepositoryBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.30 2013-08-16 11:01:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.31 2014-02-12 15:37:57 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.30 2013-08-16 11:01:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.31 2014-02-12 15:37:57 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: MCRepositoryBrowser.st,v 1.30 2013-08-16 11:01:51 cg Exp $'
+    ^ '$Id: MCRepositoryBrowser.st,v 1.31 2014-02-12 15:37:57 cg Exp $'
 ! !