Thanks, Bill for contributing to this. Here are a few additional comments:
1. If you're interested in CAB and Cabana (Dan and Bill, this goes for you too!), we highly recommend that you acquire and read David Platt's book, available here:
It's not as complete as we'd like but it's a good introduction and helps solidify many concepts. It's only twenty bucks.
How does the search grid get populated ?
Bill is correct. When the page controller creates the view, it gets the prototype GridBuilder from the GridBuilder service and passes it to the presenter in the view context.
How/Where does the detail tabs get created ?
As Bill says, the page controller adds TabViewControllers for the views to appear on tabs to its TabViewControllers collection. On Show(), the page controller's base class creates the tabs and uses the TabViewControllers to actually populate them with views.
How/Where does the details grids get created and populated?
By their TabViewControllers. GridView's use custom tab view controllers (The DotNetGridView wizard generates one for you). ControlView's can use GeneralTabViewController<viewtype>.
In keeping with CAB's runtime composition philosophy, composite views are always composed by code in controller classes. Just remember that in Cabana, much of the processing has often been factored into base classes.
Bill J.