Tools__ProjectLoader.st
branchjv
changeset 13391 43eaa1c36082
parent 13330 02d6c2d848a0
parent 13380 6edba26e3484
child 15566 184cea584be5
--- a/Tools__ProjectLoader.st	Sat Aug 24 23:14:04 2013 +0100
+++ b/Tools__ProjectLoader.st	Wed Aug 28 10:50:17 2013 +0100
@@ -252,15 +252,28 @@
 !ProjectLoader class methodsFor:'load & save'!
 
 loadProjects
-    |projectFile|
+    |projectFile projects|
 
     projectFile := self defaultProjectFile.
     projectFile exists ifFalse:[
         ^ self defaultProjects
     ].
-    ^ Compiler 
+    projects := Compiler 
         evaluate:projectFile contents asString
-        ifFail:[ self defaultProjects ].
+        ifFail:[ 
+            Dialog information:(self resources 
+                                    stringWithCRs:'Syntax error in "%1".\Showing default projects.' 
+                                    with:projectFile pathName).
+            self defaultProjects 
+        ].
+
+    projects isEmptyOrNil ifTrue:[
+        Dialog information:(self resources 
+                                stringWithCRs:'Projects file "%1" is empty.\Showing default projects.' 
+                                with:projectFile pathName).
+        projects := self defaultProjects.
+    ].
+    ^ projects
 
     "
         self projectList"
@@ -299,25 +312,36 @@
 doUpdateFromNetwork
     <resource: #uiCallback>
 
-    | projects newProjects |
+    | sites projects newProjects |
 
     projects := self class loadProjects asOrderedCollection.
-    self class projectSites do:[:site|
-        | siteUrl response |
+    sites := self class projectSites.
+    sites isEmpty ifTrue:[
+        Dialog information:'No project sites defined (see ProjectLoader>>projectSites).'.
+    ] ifFalse:[
+        sites do:[:site|
+            | siteUrl response |
 
-        siteUrl := site asURL.
-        response := HTTPInterface get: siteUrl path fromHost: siteUrl host.
-        newProjects := Compiler evaluate: response data ifFail:[#()].
-        newProjects do:[:newPrj|
-            | oldPrj |
-            oldPrj := projects 
-                        detect:[:oldPrj|oldPrj first = newPrj first] 
-                        ifNone:[projects add: newPrj].
-            oldPrj at:2 put: newPrj second.
-        ]
+            siteUrl := site asURL.
+            Transcript showCR:'asking ',siteUrl asString,'...'.
+            response := HTTPInterface get: siteUrl path fromHost: siteUrl host.
+            newProjects := Compiler evaluate: response data ifFail:[#()].
+            newProjects do:[:newPrj|
+                | oldPrj |
+                oldPrj := projects 
+                            detect:[:oldPrj|oldPrj first = newPrj first] 
+                            ifNone:[projects add: newPrj].
+                oldPrj at:2 put: newPrj second.
+            ]
+        ].
     ].
+
+    projects isEmpty ifTrue:[
+        Dialog information:'No projects found in web.'.
+        ^ self
+    ].
+
     projects := projects asArray.
-
     projectList := projects.
     self class saveProjects: projects.
     self projectListChanged
@@ -422,11 +446,11 @@
 !ProjectLoader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.8 2013-08-27 11:00:01 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.8 2013-08-27 11:00:01 cg Exp $'
 !
 
 version_HG
@@ -435,7 +459,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
+    ^ '$Id: Tools__ProjectLoader.st,v 1.8 2013-08-27 11:00:01 cg Exp $'
 ! !