So here's how I managed to do this:
Create the TabSwitcher (Or LinkSwitcher, etc) module
Each tab will be a NullModule Wrapper that will wrap all child modules in the entire tab
Each row will contain another NullModule that will house all modules in each row
Each module in the row will use the _grpX parameter in the layoutPanel (i.e. panel_row1_col1_grp1, panel_row1_col1_grp2, etc)
Each row's layoutPanel numbering starts over
<module name="TabSwitcher" layoutPanel="panel_row1_col1">
<param name="mode">independent</param>
<module name="NullModule" group="Tab1_Name">
<module name="NullModule">
<module name="ModuleName" layoutPanel="panel_row1_col1_grp1">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp2">
.
.
.
</module>
</module>
<module name="NullModule">
<module name="ModuleName" layoutPanel="panel_row1_col1_grp1">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp2">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp3">
.
.
.
</module>
</module>
</module>
<module name="NullModule" group="Tab2_Name">
<module name="NullModule">
<module name="ModuleName" layoutPanel="panel_row1_col1_grp1">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp2">
.
.
.
</module>
</module>
<module name="NullModule">
<module name="ModuleName" layoutPanel="panel_row1_col1_grp1">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp2">
.
.
.
</module>
<module name="ModuleName" layoutPanel="panel_row1_col1_grp3">
.
.
.
</module>
</module>
</module>
</module>
... View more