protected void renderComponent()

in tapestry-framework/src/org/apache/tapestry/html/Shell.java [50:136]


    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
    {
        long startTime = 0;

        boolean rewinding = cycle.isRewinding();

        if (!rewinding)
        {
            startTime = System.currentTimeMillis();

            writeDocType(writer, cycle);

            IPage page = getPage();

            writer.comment("Application: " + page.getEngine().getSpecification().getName());

            writer.comment("Page: " + page.getPageName());
            writer.comment("Generated: " + new Date());

            writer.begin("html");
            renderInformalParameters(writer, cycle);
            writer.println();
            writer.begin("head");
            writer.println();

            writer.beginEmpty("meta");
            writer.attribute("name", "generator");
            writer.attribute("content", generatorContent);
            writer.println();

            if (getRenderContentType()) {
                // This should not be necessary (the HTTP content type should be sufficient), 
                // but some browsers require it for some reason
                writer.beginEmpty("meta");
                writer.attribute("http-equiv", "Content-Type");
                writer.attribute("content", writer.getContentType());
                writer.println();
            }

            writer.begin("title");

            writer.print(getTitle());
            writer.end(); // title
            writer.println();

            IRender delegate = getDelegate();

            if (delegate != null)
                delegate.render(writer, cycle);

            IAsset stylesheet = getStylesheet();

            if (stylesheet != null)
                writeStylesheetLink(writer, cycle, stylesheet);

            Iterator i = Tapestry.coerceToIterator(getStylesheets());

            if (i != null)
            {
                while (i.hasNext())
                {
                    stylesheet = (IAsset) i.next();

                    writeStylesheetLink(writer, cycle, stylesheet);
                }
            }

            writeRefresh(writer, cycle);

            writer.end(); // head
        }

        // Render the body, the actual page content

        renderBody(writer, cycle);

        if (!rewinding)
        {
            writer.end(); // html
            writer.println();

            long endTime = System.currentTimeMillis();

            writer.comment("Render time: ~ " + (endTime - startTime) + " ms");
        }

    }