You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Michael Gitelman <mg...@delphi-tech.com> on 2011/02/09 23:26:12 UTC

RE: Trinidad 2.0

Hi,

I come across and issue with the latest Trinidad release and would like to ask for expert advice.

Below please find a snippet of the code that came with the Trinidad 2 beta demo. It works well in a jsp JSF page:
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
          xmlns:f="http://java.sun.com/jsf/core" xmlns:tr="http://myfaces.apache.org/trinidad">
  <jsp:directive.page contentType="text/html;charset=utf-8"/>
  <f:view>
    <tr:document title="Dynamic Table Demo">
      <tr:form>
        <tr:messages/>
        <tr:panelGroupLayout layout="vertical">
          <f:facet name="separator">
            <tr:separator/>
          </f:facet>
          <tr:panelGroupLayout layout="horizontal">
            <tr:commandLink immediate="true" text="Component Guide" action="guide"/>
            <tr:spacer width="10"/>
            <tr:goLink destination="http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_table.html"
                       text="Tag Documentation"/>
            <tr:spacer width="10"/>
            <tr:goLink destination="http://myfaces.apache.org/trinidad/skin-selectors.html#table"
                       text="Skinning Key Documentation"/>
          </tr:panelGroupLayout>
          <tr:outputFormatted styleUsage="instruction" value="&lt;b>Dynamic table&lt;/b>"/>
          <f:verbatim>&lt;ul&gt; &lt;li&gt; The table should tolerate RowCounts which are greater
                      than the actual RowCount. &lt;li&gt; The table should try to preserve the page
                      being viewed, when the rowCounts change. &lt;li&gt; In the following example,
                      the table should not render NULL values nor throw Exceptions: &lt;/ul&gt;</f:verbatim>
          <tr:panelFormLayout>
            <tr:inputText label="RowCount" value="#{dynamicTable.rowCount}" accessKey="R">
              <f:facet name="help">
                <tr:outputText value="Minimum -1. Maximum 400"/>
              </f:facet>
              <f:validateLongRange minimum="-1" maximum="400"/>
            </tr:inputText>
            <tr:inputText label="RowCount (Actual)" accessKey="A"
                          value="#{dynamicTable.actualRowCount}">
              <f:facet name="help">
                <tr:outputText value="Minimum 0. Maximum 400"/>
              </f:facet>
              <f:validateLongRange minimum="0" maximum="400"/>
            </tr:inputText>
            <tr:inputText label="Block Size" accessKey="B" value="#{dynamicTable.blockSize}">
              <f:facet name="help">
                <tr:outputText value="Minimum 0"/>
              </f:facet>
              <f:validateLongRange minimum="0"/>
            </tr:inputText>
            <f:facet name="footer">
              <tr:commandButton textAndAccessKey="&amp;Update"/>
            </f:facet>
          </tr:panelFormLayout>
          <tr:table var="row" emptyText="No Data" value="#{dynamicTable}"
                    rows="#{dynamicTable.blockSize}" summary="Dynamic Table">
            <tr:column>
              <f:facet name="header">
                <tr:outputText value="Row"/>
              </f:facet>
              <tr:outputText value="#{empty row ? 'NULL - This is bad!' : row}"/>
            </tr:column>
            <tr:column>
              <f:facet name="header">
                <tr:outputText value="Number"/>
              </f:facet>
              <tr:outputText value="#{row * 100}"/>
            </tr:column>
          </tr:table>
        </tr:panelGroupLayout>
      </tr:form>
    </tr:document>
  </f:view>
</jsp:root>



However, when I put the same code into a facelet, it doesn't work. And when I remove the "tr:panelGroupLayout" it would work but I have to click twice on "Next / Previous" button and on the drop down. On first click it would simply re-load the page:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:tr="http://myfaces.apache.org/trinidad">

<ui:composition template="/templates/baseTemplate.xhtml">
      <ui:define name="title">Apache Trinidad Data Table</ui:define>
      <ui:define name="content">

  <f:view>
    <tr:document title="Dynamic Table Demo">
      <tr:form id="test">
        <tr:messages/>
        <tr:panelGroupLayout layout="vertical">
          <f:facet name="separator">
            <tr:separator/>
          </f:facet>

          <tr:outputFormatted styleUsage="instruction" value="&lt;b>Dynamic table&lt;/b>"/>
          <f:verbatim>&lt;ul&gt; &lt;li&gt; The table should tolerate RowCounts which are greater
                      than the actual RowCount. &lt;li&gt; The table should try to preserve the page
                      being viewed, when the rowCounts change. &lt;li&gt; In the following example,
                      the table should not render NULL values nor throw Exceptions: &lt;/ul&gt;
                      Form: id="test"
           </f:verbatim>
          <tr:panelFormLayout>
            <tr:inputText label="RowCount" value="#{dynamicTable.rowCount}" accessKey="R">
              <f:facet name="help">
                <tr:outputText value="Minimum -1. Maximum 400"/>
              </f:facet>
              <f:validateLongRange minimum="-1" maximum="400"/>
            </tr:inputText>
            <tr:inputText label="RowCount (Actual)" accessKey="A"
                          value="#{dynamicTable.actualRowCount}">
              <f:facet name="help">
                <tr:outputText value="Minimum 0. Maximum 400"/>
              </f:facet>
              <f:validateLongRange minimum="0" maximum="400"/>
            </tr:inputText>
            <tr:inputText label="Block Size" accessKey="B" value="#{dynamicTable.blockSize}">
              <f:facet name="help">
                <tr:outputText value="Minimum 0"/>
              </f:facet>
              <f:validateLongRange minimum="0"/>
            </tr:inputText>
            <f:facet name="footer">
              <tr:commandButton textAndAccessKey="&amp;Update"/>
            </f:facet>
          </tr:panelFormLayout>
          <tr:table var="row" emptyText="No Data" value="#{dynamicTable}"
                    rows="#{dynamicTable.blockSize}" summary="Dynamic Table">
            <tr:column>
              <f:facet name="header">
                <tr:outputText value="Row"/>
              </f:facet>
              <tr:outputText value="#{empty row ? 'NULL - This is bad!' : row}"/>
            </tr:column>
            <tr:column>
              <f:facet name="header">
                <tr:outputText value="Number"/>
              </f:facet>
              <tr:outputText value="#{row * 100}"/>
            </tr:column>
          </tr:table>
        </tr:panelGroupLayout>
      </tr:form>
    </tr:document>
  </f:view>


      </ui:define>

</ui:composition>
</html>


What am I doing wrong? Your help is greatly appreciated.

Best regards,


Michael


________________________________
CONFIDENTIALITY NOTICE
This e-mail message from Delphi Technology, Inc. is intended only for the individual or entity to which it is addressed. This e-mail may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you received this e-mail by accident, please notify the sender immediately and destroy this e-mail and all copies of it.