sorting - tapicería cuadrícula clasificación por defecto
grid tapestry (1)
Me gustaría especificar una columna de clasificación predeterminada de una cuadrícula de tapices.
Entiendo que podría ordenar los registros en mi getter en el lado del servidor, sin embargo, esto parece un esfuerzo innecesario, ya que la cuadrícula es perfectamente capaz de ordenar por sí mismo.
Así que mi definición de cuadrícula se ve así:
<t:grid source="queues" inPlace="true"> </t:grid>
GetQueues devuelve una colección de objetos como:
public class Queue {
public String getName();
public float getOccupancy();
}
Me gustaría hacer la cuadrícula ordenada por atributo ''ocupación'' en orden descendiente por defecto.
De la documentación de Tapestry que veo, esa grilla tiene el atributo sortModel que parece ser la opción correcta. Sin embargo, no puedo encontrar una buena explicación de cuáles son los valores correctos para configurarlo.
Probablemente podrías escribir un mixin para establecer el tipo inicial
@MixinAfter
public class DefaultSort {
public Enum Order { ASCENDING, DESCENDING };
@Parameter(required=true, defaultPrefix="literal")
private String sort;
@Parameter(defaultPrefix="literal", value="literal:ascending")
private Order order;
@InjectContainer
private Grid grid;
@SetupRender
void setupRender() {
GridSortModel sortModel = grid.getSortModel();
if (sortModel.getSortConstraints().isEmpty()) {
sortModel.updateSort(sort);
if (order == Order.DESCENDING) {
// updateSort a second time for DESCENDING
sortModel.updateSort(sort);
}
}
}
}
<t:grid source="queues" inPlace="true" t:mixins="defaultsort" sort="occupancy" />