Hi,
In the following DataSourceField "employer" has editorProperties set to a FormItem template with height=50.
At the same time, ListGridField "employer" has editorProperties set to another template with height=70 and filterEditorProperties set to yet another template with height=22.
If you run this example you will see that height=22 as set for filter cell is ignored. Instead height=50 (as defined for default DataSourceField editor is used). Ignoring height=22 for field employer makes visible misalignment of other fields in filter editor row (employer_code).
Although, if you enter ListGrid edit record mode, then you will see that height=70 (as defined for ListGridField editor properties) is correctly used.

Commenting out line:
employerField.setEditorProperties(defaultItem);
makes filter cell for employer field displayed fine using height=22 as its template suggests.
1. SmartClient Version: v10.1p_2016-02-19/LGPL Development Only (built 2016-02-19)
2. Chrominium 38.0.2125.101 (290379) (64-bit)
3.
4.
5.
6. Sample code:
Sample data:
Employment.xml
Department.xml
In the following DataSourceField "employer" has editorProperties set to a FormItem template with height=50.
At the same time, ListGridField "employer" has editorProperties set to another template with height=70 and filterEditorProperties set to yet another template with height=22.
If you run this example you will see that height=22 as set for filter cell is ignored. Instead height=50 (as defined for default DataSourceField editor is used). Ignoring height=22 for field employer makes visible misalignment of other fields in filter editor row (employer_code).
Although, if you enter ListGrid edit record mode, then you will see that height=70 (as defined for ListGridField editor properties) is correctly used.
Commenting out line:
employerField.setEditorProperties(defaultItem);
makes filter cell for employer field displayed fine using height=22 as its template suggests.
1. SmartClient Version: v10.1p_2016-02-19/LGPL Development Only (built 2016-02-19)
2. Chrominium 38.0.2125.101 (290379) (64-bit)
3.
4.
5.
6. Sample code:
Code:
package pl.com.tech4.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.DOM;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.OperationBinding;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.types.DSOperationType;
import com.smartgwt.client.types.DSProtocol;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
public class MainEntryPoint implements EntryPoint {
public void onModuleLoad() {
DOM.getElementById("loadingPicture").removeFromParent();
layout();
SC.showConsole();
}
private void layout() {
DataSource employmentDS = new DataSource();
employmentDS.setID("Employment");
OperationBinding fetchBinding = new OperationBinding();
fetchBinding.setOperationType(DSOperationType.FETCH);
fetchBinding.setDataFormat(DSDataFormat.XML);
fetchBinding.setDataProtocol(DSProtocol.POSTXML);
employmentDS.setOperationBindings(fetchBinding);
employmentDS.setDataURL("Employment.xml");
DataSourceField idField = new DataSourceField();
idField.setName("id");
idField.setPrimaryKey(true);
idField.setHidden(true);
DataSourceField employerField = new DataSourceField();
employerField.setName("employer");
employerField.setForeignKey("Department.id");
employerField.setValueXPath("employer/id");
TextItem defaultItem = new TextItem("employer");
defaultItem.setHeight(50);
employerField.setEditorProperties(defaultItem);
ListGridField employerListGridField = new ListGridField("employer");
employerListGridField.setDisplayField("employer_code");
TextItem editItem = new TextItem("employer");
editItem.setHeight(70);
employerListGridField.setEditorProperties(editItem);
TextItem filterItem = new TextItem("employer");
filterItem.setHeight(22);
employerListGridField.setFilterEditorProperties(filterItem);
DataSourceTextField employer_codeField = new DataSourceTextField();
employer_codeField.setName("employer_code");
employer_codeField.setValueXPath("employer/code");
employmentDS.setFields(idField, employerField, employer_codeField);
DataSource departmentDS = new DataSource();
departmentDS.setID("Department");
departmentDS.setOperationBindings(fetchBinding);
departmentDS.setDataURL("Department.xml");
DataSourceField idDepField = new DataSourceField();
idDepField.setName("id");
idDepField.setPrimaryKey(true);
idDepField.setHidden(true);
DataSourceTextField codeField = new DataSourceTextField();
codeField.setName("code");
departmentDS.setFields(idDepField, codeField);
ListGrid lg = new ListGrid();
lg.setWidth(300);
lg.setCanEdit(true);
lg.setShowFilterEditor(true);
lg.setAutoSaveEdits(false);
lg.setFields(employerListGridField);
lg.setDataSource(employmentDS);
lg.setUseAllDataSourceFields(true);
lg.fetchData();
lg.draw();
}
}
Employment.xml
Code:
<response>
<status>STATUS_SUCCESS</status>
<startRow>0</startRow>
<endRow>1</endRow>
<totalRows>2</totalRows>
<data>
<Employment>
<id>20</id>
<employer>
<id>3</id>
<code>Microsoft</code>
</employer>
</Employment>
<Employment>
<id>21</id>
<employer>
<id>4</id>
<code>Apple</code>
</employer>
</Employment>
</data>
</response>
Code:
<response>
<status>STATUS_SUCCESS</status>
<startRow>0</startRow>
<endRow>4</endRow>
<totalRows>5</totalRows>
<data>
<Department>
<id>1</id>
<code>Oracle</code>
<parentId>
<id>2</id>
<code>Sun</code>
</parentId>
</Department>
<Department>
<id>2</id>
<code>Sun</code>
<parentId>
<id>2</id>
<code>Sun</code>
</parentId>
</Department>
<Department>
<id>3</id>
<code>Microsoft</code>
<parentId>
<id>2</id>
<code>Sun</code>
</parentId>
</Department>
<Department>
<id>4</id>
<code>Apple</code>
<parentId>
<id>2</id>
<code>Sun</code>
</parentId>
</Department>
</data>
</response>
Comment