<div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <t:loop source="stack" value="info">

        <div class="well">
            <h3>${info.className}</h3>

            <t:if test="info.message">
                <p>
                    <strong>${info.message}</strong>
                </p>
            </t:if>

            <t:if test="info.propertyNames">
                <dl>
                    <t:loop source="info.propertyNames" value="propertyName">
                        <dt>${propertyName}</dt>
                        <dd>
                            <t:renderobject object="propertyValue"/>
                        </dd>
                    </t:loop>
                </dl>
            </t:if>

        </div>

        <t:if test="info.stackTrace">
            <div>
                <div class="pull-right">
                    <label class="checkbox">
                        <input type="checkbox" data-behavior="stack-trace-filter-toggle" checked="true"/>
                        Filter Frames?
                    </label>
                </div>
                <h4>Stack trace:</h4>
            </div>
            <table class="stack-trace filtered table table-condensed table-hover table-striped">
                <tr t:type="loop" source="info.stackTrace" value="frame" class="${frameClass}">
                    <td class="class-name" xml:space="preserve">
                        <span class="package-name">${framePackageName}</span>${frameClassName}
                    </td>
                    <td class="method-name">${frame.methodName}()</td>
                    <td class="file-name">${frame.fileName}</td>
                    <td>${lineNumberForFrame}</td>
                </tr>
            </table>
        </t:if>
    </t:loop>
</div>