*/
public void create( Shell shell ) {
whenNull( shell ).throwIllegalArgument( "Shell must not be null" );
prepareShell( shell );
RemoteUI remoteUI = new RemoteUI( shell );
shell.setLayout( new ZIndexStackLayout() );
Controller controller = new Controller( shell, remoteUI, configuration.getAdapter( UIDescriptor.class ) );
UIImpl ui = prepareUi( shell, remoteUI, configuration, controller );
configure( configuration, ui );
setUiColors( shell, remoteUI, configuration );
prepareController( controller, ui );