I'm probably doing this all wrong, but I have a problem creating a dynamic UI with Spec.
I want a small window which shows more information when a Show more details button is clicked. Here's an example. when I click Show More I want something like this (a bigger window with more fields): But when I change the Spec layout the window size remains the same as it was set in initialExtent - so it does not display properly with the extra fields. I can't find any way of rebuilding the window so that it shows the bigger layout properly. Here's the spec for the basic window: basicSpec <spec: #default> |row1| row1 := SpecLayout composed newRow: [ :row | row add: #label1; add: #field1 ] height: self inputTextHeight; yourself. ^SpecLayout composed newColumn:[:column| column add:row1; addSplitter; add:#btnMode height: self toolbarHeight ; addSplitter]. Here's the spec for the detailed window: detailedSpec <spec> |row2 row3| row2 := SpecLayout composed newRow: [ :row | row add: #label2; add: #field2 ] height: self inputTextHeight ; yourself. row3 := SpecLayout composed newRow: [ :row | row add: #label3; add: #field3 ] height: self inputTextHeight ; yourself. ^SpecLayout composed newColumn: [ :column | column add: self basicSpec; add: row2; add:row3 ]; yourself. Here's the code that switches Spec layouts: initializePresenter super initializePresenter. btnMode action: [ self needRebuild: false. self label1 needRebuild: false. self field1 needRebuild: false. self btnMode needRebuild: false. self buildWithSpecLayout: self class detailedSpec. ] Is this a problem in Spec or just me being stupid? |
There is no way to tell to spec that this layout should automatically
expand the window. And I think this is not the default behaviour. If you want to change the size you can still do manually myModel extent: newWidth@newHeight And this should work
Ben On 01 Mar 2014, at 11:45, kmo <[hidden email]> wrote: I'm probably doing this all wrong, but I have a problem creating a dynamic UI |
Free forum by Nabble | Edit this page |