The mentioned solution works well.
I had a situation where this solution worked was as following.
viewport=> borderlayout
In border layout north, requirements were
1. toolbar 1=> it will contain dynamic menus and sub menus assocated with toolbar button (on left), dynamic buttons (on right).
2. toolbar 2 => (optional),it will contain dynamic toolbar button.
3. toolbar 3 => (optional),it will contain dynamic toolbar button.
It works like cake.