GWT version: 2.5
SmartGWT version: 3.1.p20130111
Browsers tested: Firefox and Chrome, latest versions.
I've have a Listgrid with filter activated and two of them have a SelectItem as filter component, wich are feeded with Maps structures.
Oddly, the SelectItem filter is working properly on "vehicleStatusField" field, but the "statusField" never filters anything (the grid is reloaded but the filter is never never applied).
What am I missing?
I did a small project with minimum code, which is shown here:
SmartGWT version: 3.1.p20130111
Browsers tested: Firefox and Chrome, latest versions.
I've have a Listgrid with filter activated and two of them have a SelectItem as filter component, wich are feeded with Maps structures.
Oddly, the SelectItem filter is working properly on "vehicleStatusField" field, but the "statusField" never filters anything (the grid is reloaded but the filter is never never applied).
What am I missing?
I did a small project with minimum code, which is shown here:
Code:
public class SandboxWebApp implements EntryPoint { private String COMMAND = "C"; private String EVENT = "E"; private DataSource vehicleHistoryDS = null; public static final String DS_NAME = "historyEntry"; public void onModuleLoad() { final ListGrid grid = new ListGrid(); IButton button = new IButton("Manual Load Button"); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { grid.fetchData(createGridCriteria()); } }); VLayout layout = new VLayout(); layout.setWidth("100%"); layout.setHeight("100%"); layout.addMember(button); grid.setShowFilterEditor(true); grid.setFilterOnKeypress(true); grid.setAutoFetchData(false); setGridFields(grid); setGridDataSource(grid); layout.addMember(grid); RootPanel.get().add(layout.asWidget()); } private void setGridDataSource(final ListGrid grid) { vehicleHistoryDS = DataSource.getDataSource(DS_NAME); grid.setDataSource(vehicleHistoryDS); vehicleHistoryDS.addHandleErrorHandler(new HandleErrorHandler() { @Override public void onHandleError(ErrorEvent event) { SC.say("Erro na GRID"); } }); // Criteria criteria = createGridCriteria(); // grid.setInitialCriteria(criteria); grid.setSortField("serverDate"); grid.setSortDirection(SortDirection.DESCENDING); } private Criteria createGridCriteria() { return new Criteria("vehicleId", "10774"); } private void setGridFields(ListGrid grid) { ListGridField directionField = new ListGridField( VehicleHistoryFieldsConstants.DIRECTION_ICON, "dir"); ListGridField plateHiddenField = new ListGridField( VehicleRelatedFieldsConstants.LICENSE_PLATE); ListGridField vehicleField = new ListGridField( VehicleRelatedFieldsConstants.VEHICLE_NAME_PLATE, "Veiculo"); ListGridField vehicleStatusField = new ListGridField( VehicleHistoryFieldsConstants.VEHICLE_STATUS, "Status veiculo"); vehicleStatusField.setFilterEditorType(new SelectItem()); vehicleStatusField.setCanEdit(false); vehicleStatusField.setCanFilter(true); vehicleStatusField.setEmptyCellValue("-"); vehicleStatusField.setAlign(Alignment.CENTER); Map<String, String> statusMap = new HashMap<String, String>(); statusMap.put("B", "Bloqueado"); statusMap.put("D", "Desabilitade"); statusMap.put("U", "Desconhecido"); statusMap.put("A", "Autorizado"); statusMap.put("M", "Manobrando"); statusMap.put("S", "Economia energia"); statusMap.put("R", "Rastreado"); statusMap.put("T", "Transmitindo"); vehicleStatusField.setValueMap(statusMap); vehicleStatusField.setFilterEditorValueMap(statusMap); ListGridField ownerField = new ListGridField( VehicleRelatedFieldsConstants.CLIENT_NAME, "owner"); ListGridField dateField = new ListGridField( VehicleRelatedFieldsConstants.SERVER_DATE, "dateTimeReceived"); dateField.setType(ListGridFieldType.DATETIME); ListGridField trakerDateField = new ListGridField( VehicleRelatedFieldsConstants.TRACKER_DATE, "dateTimeTracker"); trakerDateField.setType(ListGridFieldType.DATETIME); ListGridField descriptionField = new ListGridField( VehicleRelatedFieldsConstants.EVENT_DESCRIPTION, "Descrição"); ListGridField informationField = new ListGridField( VehicleRelatedFieldsConstants.INFO, "Info"); ListGridField statusField = new ListGridField( VehicleHistoryFieldsConstants.EVENT_STATUS, "Status"); statusField.setFilterEditorType(new SelectItem()); statusField.setCanEdit(false); statusField.setCanFilter(true); statusField.setEmptyCellValue("-"); statusField.setAlign(Alignment.CENTER); Map<String, String> statusFilter = new HashMap<String, String>(); statusFilter.put(COMMAND + "X", "WAITING_FOR_CONNECTION"); statusFilter.put(COMMAND + "W", "WAITING_FOR_SENDING"); statusFilter.put(COMMAND + "C", "CANCELED"); statusFilter.put(COMMAND + "P", "CANCEL_PENDING"); statusFilter.put(COMMAND + "S", "SENT"); statusFilter.put(COMMAND + "T", "TRANSMITTING"); statusFilter.put(COMMAND + "E", "ERROR"); statusFilter.put(EVENT + "W", "WORKING"); statusFilter.put(EVENT + "N", "DONT_APPLY"); statusFilter.put(EVENT + "U", "UNTREATED"); statusFilter.put(EVENT + "P", "PENDING"); statusFilter.put(EVENT + "T", "TREATED"); statusField.setValueMap(statusFilter); statusField.setFilterEditorValueMap(statusFilter); ListGridField latitudeHiddenField = new ListGridField( VehicleRelatedFieldsConstants.LATITUDE, "latitude"); ListGridField longitudeHiddenField = new ListGridField( VehicleRelatedFieldsConstants.LONGITUDE, "latitude"); ListGridField addressField = new ListGridField( VehicleRelatedFieldsConstants.ADDRESS, "Endereço"); ListGridField cityField = new ListGridField( VehicleRelatedFieldsConstants.CITY, "Cidade"); ListGridField stateField = new ListGridField( VehicleRelatedFieldsConstants.STATE, "Estado"); ListGridField positionField = new ListGridField( VehicleRelatedFieldsConstants.POSITION, "position"); ListGridField speedField = new ListGridField( VehicleRelatedFieldsConstants.VELOCITY, "Speed"); ListGridField odometerField = new ListGridField( VehicleCurrentStateFieldsConstants.ODOMETER, "Km"); ListGridField ignitionField = new ListGridField( VehicleRelatedFieldsConstants.IGNITION, "ignitionAbrv"); ListGridField driverField = new ListGridField( VehicleCurrentStateFieldsConstants.DRIVER_NICKNAME, "driver"); ListGridField clientHiddenField = new ListGridField( VehicleRelatedFieldsConstants.CLIENT); ListGridField typeField = new ListGridField("type"); grid.setFields(statusField,directionField, plateHiddenField, vehicleField, vehicleStatusField, ownerField, dateField, trakerDateField, descriptionField, informationField, latitudeHiddenField, longitudeHiddenField, addressField, cityField, stateField, positionField, speedField, odometerField, ignitionField, driverField, clientHiddenField, typeField); } }
Code:
<DataSource ID="historyEntry" serverConstructor="com.isomorphic.jpa.JPA2DataSource" beanClassName="br.com.project.entities.model.entityNonDto.HistoryEntry" schemaBean="br.com.project.entities.model.entityNonDto.HistoryEntry"> </DataSource>
Comment