18 category:'Interface-UIPainter' |
18 category:'Interface-UIPainter' |
19 ! |
19 ! |
20 |
20 |
21 View subclass:#Canvas |
21 View subclass:#Canvas |
22 instanceVariableNames:'clientSpecHolder selection specification lastClickPoint |
22 instanceVariableNames:'clientSpecHolder selection specification lastClickPoint |
23 menuSelector uiBuilder hiddenCounter showBorders' |
23 menuSelector uiBuilder hiddenCounter showBorders |
|
24 didWarnAboutUnknownSpecs' |
24 classVariableNames:'' |
25 classVariableNames:'' |
25 poolDictionaries:'' |
26 poolDictionaries:'' |
26 privateIn:UIGalleryView |
27 privateIn:UIGalleryView |
27 ! |
28 ! |
28 |
29 |
360 " |
361 " |
361 ^ specification |
362 ^ specification |
362 ! |
363 ! |
363 |
364 |
364 specification:aSpecOrSpecArray |
365 specification:aSpecOrSpecArray |
365 "set a new specification |
366 "set a new specification" |
366 " |
367 |
367 |builder| |
368 |builder newSpec| |
368 |
369 |
369 self selection:nil. |
370 self selection:nil. |
370 self destroySubViews. |
371 self destroySubViews. |
371 |
372 |
372 ( aSpecOrSpecArray notNil |
373 specification := nil. |
373 and:[(specification := UISpecification from:aSpecOrSpecArray) notNil |
374 aSpecOrSpecArray isNil ifTrue:[^ self]. |
374 and:[specification respondsTo:#'buildViewFor:in:']] |
375 |
375 ) ifFalse:[ |
376 "/ only warn once - otherwise, its annoying |
376 specification := nil. |
377 Array missingClassInLiteralArrayErrorSignal handle:[:ex | |
377 ^ self |
378 didWarnAboutUnknownSpecs == true ifFalse:[ |
378 ]. |
379 Dialog warn:(ex description,'\\(Will not warn again - please check for unloaded classes/packages)' withCRs). |
|
380 ]. |
|
381 didWarnAboutUnknownSpecs := true. |
|
382 ex proceed. |
|
383 ] do:[ |
|
384 newSpec := UISpecification from:aSpecOrSpecArray. |
|
385 ]. |
|
386 newSpec isNil ifTrue:[^ self]. |
|
387 (newSpec respondsTo:#'buildViewFor:in:') ifFalse:[^ self]. |
|
388 specification := newSpec. |
379 |
389 |
380 (builder := uiBuilder) isNil ifTrue:[ |
390 (builder := uiBuilder) isNil ifTrue:[ |
381 builder := UIBuilder new isEditing:true. |
391 builder := UIBuilder new isEditing:true. |
382 builder showDefaults:true. |
392 builder showDefaults:true. |
383 ]. |
393 ]. |