You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Edney Imme <ed...@gmail.com> on 2007/03/26 21:12:44 UTC
Problems with Sort function
Hello,
I have a big problem with my datatable and the sort function.
I Have this source
<h:dataTable id="data"
styleClass="scrollerTable"
headerClass="standardTable_Header"
footerClass="standardTable_Header"
rowClasses="standardTable_Row1,standardTable_Row2"
columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
var="abrufe"
value="#{pagedDeliveryScheduleSort.schedules}"
preserveDataModel="true"
rows="15"
sortColumn="#{pagedDeliveryScheduleSort.sort}"
sortAscending="#{
pagedDeliveryScheduleSort.ascending}"
preserveSort="true">
<h:column>
<f:facet name="header">
<t:panelGroup styleClass="standardTable_Column">
<t:panelGrid columns="1">
<t:commandSortHeader
columnName="articleItemDescription" arrow="true" immediate="false">
<h:outputText id="column3"
value="#{empregos_labels['sort_number_supplier']}" />
</t:commandSortHeader>
</t:panelGrid>
</t:panelGroup>
</f:facet>
<t:commandLink title="#{abrufe.itemDescription}"
value="#{abrufe.itemDescription}" action="go_schedule_details">
<f:param name="itemNumberSupplier" value="#{
abrufe.itemDescription}"/>
</t:commandLink>
</h:column>
</h:dataTable>
There method sort in pagedDeliveryScheduleSort are hier.
protected void sort(final String column, final boolean ascending) {
Comparator comparator = new Comparator() {
public int compare(Object o1, Object o2) {
System.out.println("-------------------------------");
DeliveryInstructionItem c1 = (DeliveryInstructionItem) o1;
DeliveryInstructionItem c2 = (DeliveryInstructionItem) o2;
LOGGER.info("columns - " + column);
System.out.println("-------------------------------");
if (column == null) {
return 0;
}
if (column.equalsIgnoreCase("articlenumberCustomer")) {
return ascending ? c1.getItemNumberBuyer().compareTo(
c2.getItemNumberBuyer()) : c2.getItemNumberBuyer
()
.compareTo(c1.getItemNumberBuyer());
} else if (column.equalsIgnoreCase("articlenumberSupplier"))
{
return ascending ? c1.getItemNumberSupplier().compareTo(
c2.getItemNumberSupplier()) : c2
.getItemNumberSupplier().compareTo(
c1.getItemNumberSupplier());
} else {
System.err.println("Unsupported column=" + column);
return 0;
}
}
};
Collections.sort(this.listEntries, comparator);
}
But, these dont sort my result.
Can anyone help me?
thank you very much
Re: Problems with Sort function
Posted by Edney Imme <ed...@gmail.com>.
Hello,
And this
<h:column>
<f:facet name="header">
<t:panelGroup styleClass="standardTable_Column">
<t:panelGrid columns="1">
<t:commandSortHeader
columnName="articlenumberCustomer" arrow="true" immediate="true">
<h:outputText id="column2"
value="#{curriculo_labels['sort_number_buyer']}" />
</t:commandSortHeader>
</t:panelGrid>
</t:panelGroup>
</f:facet>
<t:commandLink title="#{abrufe.itemNumberBuyer}"
value="#{abrufe.itemNumberBuyer}" action="go_schedule_details">
<f:param name="itemNumberBuyer" value="#{
abrufe.itemNumberBuyer}"/>
</t:commandLink>
</h:column>
Hier I have a a component commandSortHeader with the columnName
Is these not right?
2007/3/26, Simon Kitching <si...@rhe.co.nz>:
>
> Edney Imme wrote:
> > Hello Simon
> >
> > sortAscending = PagedDeliverySchedulesort.ascending will return true.
> >
> > and by sortColumn i need do input a string. ?
>
> Yes.
>
> public void setAscending(boolean state) {this.ascending=state;}
> public boolean getAscending() { return ascending;}
>
> public void setSortColumn(String columnName) {
> this.sortColumn=columnName;
> }
>
> public String getSortColumn() {
> return columnName;
> }
>
> then the method that is referred to by the datatable "value" attribute
> needs to look at this.ascending and this.columnName and return its data
> in the appropriate order.
>
> Regards,
>
> Simon
>
--
Att.
Edney Marcel Imme
Re: Problems with Sort function
Posted by Simon Kitching <si...@rhe.co.nz>.
Edney Imme wrote:
> Hello Simon
>
> sortAscending = PagedDeliverySchedulesort.ascending will return true.
>
> and by sortColumn i need do input a string. ?
Yes.
public void setAscending(boolean state) {this.ascending=state;}
public boolean getAscending() { return ascending;}
public void setSortColumn(String columnName) {
this.sortColumn=columnName;
}
public String getSortColumn() {
return columnName;
}
then the method that is referred to by the datatable "value" attribute
needs to look at this.ascending and this.columnName and return its data
in the appropriate order.
Regards,
Simon
Re: Problems with Sort function
Posted by Edney Imme <ed...@gmail.com>.
Hello Simon
sortAscending = PagedDeliverySchedulesort.ascending will return true.
and by sortColumn i need do input a string. ?
2007/3/26, Simon Kitching <si...@rhe.co.nz>:
>
> Edney Imme wrote:
> > Hello,
> >
> > I have a big problem with my datatable and the sort function.
>
> You have misunderstood the purpose of the sortColum and sortAscending
> attributes. See the documentation here:
> http://myfaces.apache.org/tomahawk/tlddoc/index.html
>
>
--
Att.
Edney Marcel Imme
Re: Problems with Sort function
Posted by Simon Kitching <si...@rhe.co.nz>.
Edney Imme wrote:
> Hello,
>
> I have a big problem with my datatable and the sort function.
You have misunderstood the purpose of the sortColum and sortAscending
attributes. See the documentation here:
http://myfaces.apache.org/tomahawk/tlddoc/index.html
Re: Problems with Sort function
Posted by Edney Imme <ed...@gmail.com>.
Simon, thank you very much
there problem was in there method getSchudules.
In comment the code :( and forget remove it :)
2007/3/26, Edney Imme <ed...@gmail.com>:
>
> Hello,
>
> I have a big problem with my datatable and the sort function.
>
> I Have this source
>
> <h:dataTable id="data"
> styleClass="scrollerTable"
> headerClass="standardTable_Header"
> footerClass="standardTable_Header"
>
> rowClasses="standardTable_Row1,standardTable_Row2"
>
> columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
>
> var="abrufe"
> value="#{pagedDeliveryScheduleSort.schedules}"
> preserveDataModel="true"
> rows="15"
> sortColumn="#{pagedDeliveryScheduleSort.sort}"
> sortAscending="#{
> pagedDeliveryScheduleSort.ascending}"
> preserveSort="true">
>
> <h:column>
> <f:facet name="header">
> <t:panelGroup styleClass="standardTable_Column">
> <t:panelGrid columns="1">
> <t:commandSortHeader
> columnName="articleItemDescription" arrow="true" immediate="false">
> <h:outputText id="column3"
> value="#{empregos_labels['sort_number_supplier']}" />
> </t:commandSortHeader>
> </t:panelGrid>
> </t:panelGroup>
> </f:facet>
> <t:commandLink title="#{ abrufe.itemDescription}"
> value="#{abrufe.itemDescription}" action="go_schedule_details">
> <f:param name="itemNumberSupplier" value="#{
> abrufe.itemDescription }"/>
> </t:commandLink>
> </h:column>
> </h:dataTable>
>
> There method sort in pagedDeliveryScheduleSort are hier.
>
>
> protected void sort(final String column, final boolean ascending) {
>
> Comparator comparator = new Comparator() {
> public int compare(Object o1, Object o2) {
> System.out.println("-------------------------------");
> DeliveryInstructionItem c1 = (DeliveryInstructionItem) o1;
>
> DeliveryInstructionItem c2 = (DeliveryInstructionItem) o2;
> LOGGER.info("columns - " + column);
> System.out.println("-------------------------------");
> if (column == null) {
> return 0;
> }
> if (column.equalsIgnoreCase("articlenumberCustomer")) {
> return ascending ? c1.getItemNumberBuyer().compareTo(
> c2.getItemNumberBuyer()) :
> c2.getItemNumberBuyer()
> .compareTo(c1.getItemNumberBuyer());
> } else if (column.equalsIgnoreCase("articlenumberSupplier")) {
> return ascending ? c1.getItemNumberSupplier
> ().compareTo(
> c2.getItemNumberSupplier()) : c2
> .getItemNumberSupplier().compareTo(
> c1.getItemNumberSupplier());
> } else {
> System.err.println("Unsupported column=" + column);
> return 0;
> }
> }
> };
> Collections.sort(this.listEntries, comparator);
> }
>
>
> But, these dont sort my result.
>
> Can anyone help me?
>
> thank you very much
>
--
Att.
Edney Marcel Imme