*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 20 May 2009 09:17:22 +0200
changeset 2542 5cb4a0bdc44c
parent 2541 6241ec9e6a6f
child 2543 7ad308542625
*** empty log message ***
UIGalleryView.st
--- a/UIGalleryView.st	Wed May 20 08:32:45 2009 +0200
+++ b/UIGalleryView.st	Wed May 20 09:17:22 2009 +0200
@@ -20,7 +20,8 @@
 
 View subclass:#Canvas
 	instanceVariableNames:'clientSpecHolder selection specification lastClickPoint
-		menuSelector uiBuilder hiddenCounter showBorders'
+		menuSelector uiBuilder hiddenCounter showBorders
+		didWarnAboutUnknownSpecs'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:UIGalleryView
@@ -362,20 +363,29 @@
 !
 
 specification:aSpecOrSpecArray
-    "set a new specification
-    "
-    |builder|
+    "set a new specification"
+
+    |builder newSpec|
 
     self selection:nil.
     self destroySubViews.
 
-    (     aSpecOrSpecArray notNil
-     and:[(specification := UISpecification from:aSpecOrSpecArray) notNil
-     and:[specification respondsTo:#'buildViewFor:in:']]
-    ) ifFalse:[
-        specification := nil.
-        ^ self
+    specification := nil.
+    aSpecOrSpecArray isNil ifTrue:[^ self].
+
+    "/ only warn once - otherwise, its annoying
+    Array missingClassInLiteralArrayErrorSignal handle:[:ex |
+        didWarnAboutUnknownSpecs == true ifFalse:[
+            Dialog warn:(ex description,'\\(Will not warn again - please check for unloaded classes/packages)' withCRs).
+        ].
+        didWarnAboutUnknownSpecs := true.
+        ex proceed.
+    ] do:[
+        newSpec := UISpecification from:aSpecOrSpecArray.
     ].
+    newSpec isNil ifTrue:[^ self].
+    (newSpec respondsTo:#'buildViewFor:in:') ifFalse:[^ self].
+    specification := newSpec.
 
     (builder := uiBuilder) isNil ifTrue:[
         builder := UIBuilder new isEditing:true.