shell.setImage( wizardImage );
shell.setImage( imgShell );
	public IWizardContext open( String[] sTasks, String topTaskId,			IWizardContext initialContext )	{		// Update initial context		context = initialContext;		// Initialize UI elelents		GridLayout glShell = new GridLayout( );		glShell.marginHeight = 0;		glShell.marginWidth = 0;		glShell.verticalSpacing = 0;		display = Display.getDefault( );		if ( UIHelper.isEclipseMode( ) )		{			shell = new Shell( PlatformUI.getWorkbench( )					.getDisplay( )					.getActiveShell( ), SWT.DIALOG_TRIM					| SWT.RESIZE | SWT.APPLICATION_MODAL );		}		else		{			shell = new Shell( display, SWT.DIALOG_TRIM					| SWT.RESIZE | SWT.APPLICATION_MODAL );		}		// Set shell properties		shell.setLayout( glShell );		shell.setSize( iWizardWidthMinimum, iWizardHeightMinimum );		shell.setText( wizardTitle );		if ( wizardImage != null )		{			shell.setImage( wizardImage );		}		shell.addControlListener( this );		// Initialize and layout UI components of the framework		tasklist = new TaskList( shell, SWT.NONE, this );		Label lblSeparator = new Label( shell, SWT.SEPARATOR | SWT.HORIZONTAL );		lblSeparator.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );		placeComponents( );		lblSeparator = new Label( shell, SWT.SEPARATOR | SWT.HORIZONTAL );		lblSeparator.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );		Composite cmpButton = new Composite( shell, SWT.NONE );		{			cmpButton.setLayout( new GridLayout( ) );			GridData gd = new GridData( );			gd.horizontalAlignment = SWT.END;			cmpButton.setLayoutData( gd );		}		buttonpanel = new ButtonPanel( cmpButton, SWT.NONE, this );		// Add tasks		String[] allTasks = TasksManager.instance( )				.getTasksForWizard( sWizardID );		// ADD DEFAULT TASKS AS DEFINED BY EXTENSIONS		for ( int i = 0; i < allTasks.length; i++ )		{			addTask( allTasks[i] );		}		// ADD TASKS SPECIFIED DURING INVOCATION		if ( sTasks != null && sTasks.length > 0 )		{			for ( int i = 0; i < sTasks.length; i++ )			{				if ( !vTaskIDs.contains( sTasks[i] ) )				{					addTask( sTasks[i] );				}			}		}		// Open the specified task		if ( topTaskId == null )		{			if ( vTaskIDs.size( ) > 0 )			{				sCurrentActiveTask = vTaskIDs.get( 0 ).toString( );				if ( vTaskIDs.size( ) > 1 )				{					buttonpanel.setButtonEnabled( ButtonPanel.NEXT, true );				}			}		}		else		{			assert vTaskIDs.contains( topTaskId );			sCurrentActiveTask = topTaskId;			int taskIndex = vTaskIDs.indexOf( topTaskId );			if ( taskIndex > 0 )			{				buttonpanel.setButtonEnabled( ButtonPanel.BACK, true );			}			if ( taskIndex < vTaskIDs.size( ) - 1 )			{				buttonpanel.setButtonEnabled( ButtonPanel.NEXT, true );			}		}		ITask currentTask = getCurrentTask( );		if ( currentTask != null )		{			getCurrentTask( ).setContext( initialContext );			switchTo( sCurrentActiveTask );		}		shell.setLocation( ( display.getClientArea( ).width / 2 - ( shell.getSize( ).x / 2 ) ),				( display.getClientArea( ).height / 2 )						- ( shell.getSize( ).y / 2 ) );		shell.addDisposeListener( this );		shell.open( );		while ( !shell.isDisposed( ) )		{			if ( !display.readAndDispatch( ) )			{				display.sleep( );			}		}		if ( !bWasCancelled )		{			return this.context;		}		return null;	}