You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by mailing list <my...@gmail.com> on 2008/02/26 19:45:08 UTC

Help with datascroller

Hi i've tried using the datascroller example as explained in
http://wiki.apache.org/myfaces/WorkingWithLargeTables
  but for some reason the datascroller keeps querying the bean for the data
model and does not utilize the
the getrow method ..
would appreciate some help been breaking my head with this for the last day
i dropped the table columns

<f:view>
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta content="text/html;charset=UTF-8"
http-equiv="Content-Type" />
                <title>MyFaces - the free JSF Implementation</title>
                <link href="style/basic.css" type="text/css"
rel="stylesheet" />
            </head>
            <body>
                <h:form>
                    <t:dataTable id="personsscrollable"
                        styleClass="scrollerTable"
                        headerClass="standardTable_Header"
                        footerClass="standardTable_Header"
                        rowClasses="standardTable_Row1,standardTable_Row2"

columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_ColumnCentered"
                        var="instances"
                        rowId="#{instances.id}"
                        preserveDataModel="false"
                        binding="#{SomeManagedBean.data}"
                        value="#{SomeManagedBean.dataModel}"
                        rows="#{SomeManagedBean.batchSize}"
                        preserveSort="true">
                    </t:dataTable>

                    <t:panelGrid id="footerPager">
                        <t:dataScroller id="ds5" for="personsscrollable"
fastStep="5"
                            styleClass="scroller" paginator="true"
paginatorMaxPages="5"
                            paginatorTableClass="paginator"
                            paginatorActiveColumnStyle="font-weight:bold;"
                            rowsCountVar="rowsCount"
renderFacetsIfSinglePage="true">
                            <f:facet name="previous">
                                <t:graphicImage url="images/arrow-
previous.gif" border="1"
                                    title="Previous" />
                            </f:facet>
                            <f:facet name="next">
                                <t:graphicImage url="images/arrow-next.gif"
border="1"
                                    title="Next" />
                            </f:facet>
                            <f:facet name="fastforward">
                                <t:graphicImage url="images/arrow-ff.gif"
border="1"
                                    title="Last" />
                            </f:facet>
                            <f:facet name="fastrewind">
                                <t:graphicImage url="images/arrow-fr.gif"
border="1"
                                    title="First" />
                            </f:facet>
                        </t:dataScroller>
                    </t:panelGrid>
                </h:form>
            </body>
        </html>
    </f:view>

    <managed-bean>
        <managed-bean-name>SomeManagedBean</managed-bean-name>
        <managed-bean-class>com.xxx.yyy.testbeans.SomeManagedBean
</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>genericDao</property-name>
            <value>#{personDao}</value>
        </managed-property>
    </managed-bean>

    public class SomeManagedBean
        extends AbstractBeanMulti<Person, Integer>{

    private UIData data;
    public UIData getData() {return data;}
    public void setData(UIData data) {this.data = data;}

    private DataPage<Person> getDataPage(int startRow, int pageSize) {
        setFromIndex(startRow);
        setBatchSize(pageSize);
        DataPage<Person> pageablePersons = new
DataPage<Person>(getBatchSize(),getFromIndex(), getInstances());
        return pageablePersons;
    }

    private DataModel dataModel;
    public DataModel getDataModel() {
        if (dataModel == null) {
            dataModel = new LocalDataModel(getBatchSize());
        }
        return dataModel;
    }

    private class LocalDataModel extends PagedListDataModel<Person> {
        public LocalDataModel(int pageSize) {
            super(pageSize);
        }
        public DataPage<Person> fetchPage(int startRow, int pageSize) {
            return getDataPage(startRow, pageSize);
        }
    }
}