|| viewer.isForceIFrame( ) )
|| viewer.isForceIFrame( ) || isContextChanged( viewer.getContextRoot( ) ) )
	public void __process( ) throws Exception	{		// output format		outputFormat = BirtTagUtil.getFormat( viewer.getFormat( ) );		// if output format isn't html,allowParameterPrompting is		// true or set forceIFrame as true, use IFrame to load report.		if ( !outputFormat				.equalsIgnoreCase( ParameterAccessor.PARAM_FORMAT_HTML )				|| BirtTagUtil.convertToBoolean( viewer						.getForceParameterPrompting( ) )				|| viewer.isForceIFrame( ) )		{			__handleIFrame( viewer.createURI( IBirtConstants.VIEWER_PREVIEW ),					viewer.getId( ) );			return;		}		// Create Input Options		this.options = new InputOptions( );		options.setOption( InputOptions.OPT_REQUEST,				(HttpServletRequest) pageContext.getRequest( ) );		options.setOption( InputOptions.OPT_LOCALE, this.locale );		options.setOption( InputOptions.OPT_RTL, Boolean.valueOf( viewer				.getRtl( ) ) );		options.setOption( InputOptions.OPT_IS_MASTER_PAGE_CONTENT, Boolean				.valueOf( viewer.getAllowMasterPage( ) ) );		options.setOption( InputOptions.OPT_SVG_FLAG, Boolean.valueOf( viewer				.getSvg( ) ) );		options.setOption( InputOptions.OPT_FORMAT, outputFormat );		options.setOption( InputOptions.OPT_IS_DESIGNER, new Boolean( false ) );		options.setOption( InputOptions.OPT_SERVLET_PATH,				IBirtConstants.SERVLET_PATH_PREVIEW );		// initialize engine context		BirtReportServiceFactory.getReportService( ).setContext(				pageContext.getServletContext( ), this.options );		// get report design handle		reportDesignHandle = getDesignHandle( );		// Get parameter definition list		Collection parameterDefList = getReportService( )				.getParameterDefinitions( this.reportDesignHandle, options,						false );		if ( BirtUtility.validateParameters( parameterDefList,				getParameterMap( ) ) )		{			// if miss parameters, use IFrame to load report.			__handleIFrame( viewer.createURI( IBirtConstants.VIEWER_PREVIEW ),					viewer.getId( ) );		}		else		{			// output to byte array			ByteArrayOutputStream out = new ByteArrayOutputStream( );			__handleOutputReport( out );			String content = out.toString( );			JspWriter writer = pageContext.getOut( );			if ( viewer.isHostPage( ) )			{				// if set isHostPage is true, output report directly				writer.write( content );			}			else			{				// write style				writer.write( __handleStyle( content ) );				// write script				writer.write( __handleScript( content ) );				// use <div> to control report content display				writer.write( "<div id='" + viewer.getId( ) + "'" //$NON-NLS-1$ //$NON-NLS-2$						+ __handleDivAppearance( ) + ">\n" ); //$NON-NLS-1$				writer.write( "<div class='" + __handleBodyStyle( content ) //$NON-NLS-1$						+ "'>\n" ); //$NON-NLS-1$				writer.write( __handleBody( content ) + "\n" ); //$NON-NLS-1$				writer.write( "</div>\n" ); //$NON-NLS-1$				writer.write( "</div>\n" ); //$NON-NLS-1$			}		}	}