gwt sorting gwt-2.2-celltable

GWT Ordenando una mesa de celda, probablemente solo algo que no vi



sorting gwt-2.2-celltable (1)

Supongo que ya has encontrado la solución, pero solo para mantenerla aquí:

Primero, crea tu dataProvider con alguna lista conocida. Que alimentar sortHandler con la misma lista; y usa la lista para actualizar los datos. Celltable se debe establecer como dataDisplay del dataProvider:

List myDataList = new ArrayList(); ListDataProvider dataProvider = new ListDataProvider(KEY_PROVIDER); dataProvider.setList(myDataList); ListHandler sortHandler = new ListHandler(dataProvider.getList); //tie provider and table dataProvider.addDataDisplay(cellTable); //when you need to update dataprovider //first do some myDataList cleanup to remove old values myListData.addAll(values); //update data displays dataProvider.refresh();

Considere, siempre debe usar uno y el mismo objeto List.

He estado luchando durante las últimas dos horas tratando de ordenar una Celda GWT. Es realmente un problema estúpido porque se ha realizado aquí http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable

Pero no entiendo lo que me estoy perdiendo en el ejemplo ...

Aquí está mi código que uso para crear la columna:

Column<RemoteCommand, String> nbProducts = new Column<RemoteCommand, String>( new TextCell()) { @Override public String getValue(RemoteCommand object) { return object.getNumberProduct(); } }; nbProducts.setSortable(true); sortHandler.setComparator(nbProducts, new Comparator<RemoteCommand>() { public int compare(RemoteCommand o1, RemoteCommand o2) { cellTable.redraw(); return o1.getCommandSize().compareTo(o2.getCommandSize()); // System.out.println(Integer.parseInt(o1.getCommandSize() ) - Integer.parseInt(o2.getCommandSize())); // return Integer.parseInt(o1.getCommandSize() ) - Integer.parseInt(o2.getCommandSize()); } });

Y aquí está la declaración de la tabla en sí:

// Add a selection model so we can select cells. final SelectionModel<RemoteCommand> selectionModel = new MultiSelectionModel<RemoteCommand>( RemoteCommand.KEY_PROVIDER); cellTable.setSelectionModel(selectionModel, DefaultSelectionEventManager.<RemoteCommand> createCheckboxManager()); // Attach a column sort handler to the ListDataProvider to sort the list. ListHandler<RemoteCommand> sortHandler = new ListHandler<RemoteCommand>(values); cellTable.addColumnSortHandler(sortHandler); // Initialize the columns. initTableColumns(selectionModel, sortHandler); cellTable.setRowData(values);

se requiere ayuda :)