public Composite startBuildWidget( String elementName, Map<String, String> attributes, Composite container, SwtMetawidget metawidget ) {
String section = stripSection( attributes );
State<Composite> state = getState( container, metawidget );
if ( section == null || section.equals( state.getCurrentSection() ) ) {
if ( state.getCurrentSectionWidget() == null ) {
return delegateStartBuildWidget( elementName, attributes, container, metawidget );
}
return delegateStartBuildWidget( elementName, attributes, state.getCurrentSectionWidget(), metawidget );
}
state.setCurrentSection( section );
Composite previousSectionWidget = state.getCurrentSectionWidget();
if ( state.getCurrentSectionWidget() != null ) {
super.endContainerLayout( state.getCurrentSectionWidget(), metawidget );
}
state.setCurrentSectionWidget( null );
if ( "".equals( section ) ) {
return delegateStartBuildWidget( elementName, attributes, container, metawidget );
}
state.setCurrentSectionWidget( createSectionWidget( previousSectionWidget, section, attributes, container, metawidget ));
super.startContainerLayout( state.getCurrentSectionWidget(), metawidget );
return delegateStartBuildWidget( elementName, attributes, state.getCurrentSectionWidget(), metawidget );
}