# HG changeset patch # User Claus Gittinger # Date 1242803842 -7200 # Node ID 5cb4a0bdc44c3e9fd855e6566340056e57a47679 # Parent 6241ec9e6a6f7b95c50e6f386213451d822621f3 *** empty log message *** diff -r 6241ec9e6a6f -r 5cb4a0bdc44c 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.