shell.pack( );
	public void switchTo( String sTaskID )	{		// Update the context from the current task...if available		if ( sCurrentActiveTask != null )		{			String[] sErrors = getCurrentTask( ).getErrors( );			if ( sErrors != null && sErrors.length > 0 )			{				ErrorDialog ed = new ErrorDialog( Messages.getString( "WizardBase.error.ErrorsEncountered" ), //$NON-NLS-1$						Messages.getString( "WizardBase.error.FollowingErrorsReportedByTask" ), //$NON-NLS-1$						sErrors,						new String[]{} );				if ( ed.getOption( ) == ErrorDialog.OPTION_ACCEPT )				{					// Pressing OK will retain current task					return;				}			}			this.context = getCurrentTask( ).getContext( );		}		// Clear any existing popup		if ( shellPopup != null && !shellPopup.isDisposed( ) )		{			shellPopup.close( );		}		// Update current active task ID		sCurrentActiveTask = sTaskID;		// Pass the errorHints if any have been reported by previous task		if ( errorHints != null )		{			getCurrentTask( ).setErrorHints( errorHints );		}		// Pass the context to the new task...so it can prepare its UI		getCurrentTask( ).setContext( context );		// Clear errorHints		errorHints = null;		// Get the new UI and display it		Control c = getCurrentTask( ).getUI( cmpTaskContainer );		slTaskContainer.topControl = c;		cmpTaskContainer.layout( );		tasklist.setActive( (String) vTaskLabels.get( vTaskIDs.indexOf( sTaskID ) ) );		// TODO: Handle enabling / disabling of Buttons	}