Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    ListGridField with setFilterEditorType(new SelectItem()); not working properly

    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:

    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>

    #2
    By the way, both fields are String types.

    Comment


      #3
      Most likely a misnamed field. Note that we follow the Java beans convention when deriving fields via autoDeriveSchema, so a getter "getStatus()" means the field name is "status" (with lowercase S), and field names are case sensitive.

      You can use the RPC tab in the Developer Console as well as the server logs to troubleshoot this.

      Note you are also using the title "latitude" below for both longitude and latitude.

      Comment

      Working...
      X