package com.smartgwt.sample.showcase.client.dataintegration.java.serversummaries; import com.smartgwt.client.data.AdvancedCriteria; import com.smartgwt.client.data.Criterion; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.Record; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.types.OperatorId; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.ButtonItem; import com.smartgwt.client.widgets.form.fields.FloatItem; import com.smartgwt.client.widgets.form.fields.IntegerItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.VLayout; import com.google.gwt.core.client.EntryPoint; public class CustomAggregationQuerySample implements EntryPoint { @Override public void onModuleLoad() { final ListGrid orderList = new ListGrid(); orderList.setDataSource(DataSource.get("aggregationCustomSQL2_orderItem")); orderList.setWidth(300); orderList.setHeight(200); orderList.setShowFilterEditor(false); orderList.setAutoFetchData(false); orderList.setCanEdit(false); orderList.setCanRemoveRecords(false); orderList.setSortField(0); ListGridField orderCustomerNameField = new ListGridField("orderCustomerName"); orderCustomerNameField.setWidth(200); orderCustomerNameField.setTitle("Customer"); ListGridField amountField = new ListGridField("amount"); amountField.setType(ListGridFieldType.INTEGER); amountField.setTitle("Amount"); orderList.setFields(orderCustomerNameField,amountField); final DynamicForm orderItemCriteriaForm = new DynamicForm(); orderItemCriteriaForm.setNumCols(2); orderItemCriteriaForm.setWidth(300); TextItem itemDescription = new TextItem("itemDescription"); itemDescription.setTitle("Item"); itemDescription.setDefaultValue("widget"); IntegerItem quantity = new IntegerItem(); quantity.setName("quantity"); quantity.setTitle("Quantity"); quantity.setDefaultValue(4); FloatItem amount = new FloatItem(); amount.setName("amount"); amount.setTitle("Amount"); amount.setDefaultValue(10); ButtonItem buttonItem = new ButtonItem(); buttonItem.setTitle("Filter"); buttonItem.setEndRow(false); buttonItem.setStartRow(false); buttonItem.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Record record = orderItemCriteriaForm.getValuesAsRecord(); AdvancedCriteria adCriteria = new AdvancedCriteria(OperatorId.AND, new Criterion[]{ new Criterion("itemDescription", OperatorId.CONTAINS, record.getAttribute("itemDescription")), new Criterion("quantity", OperatorId.GREATER_THAN, record.getAttributeAsInt("quantity")), new Criterion("amount", OperatorId.GREATER_THAN, record.getAttributeAsFloat("amount")) }); orderList.setData(new ListGridRecord[0]); orderList.filterData(adCriteria); } }); orderItemCriteriaForm.setFields(itemDescription, quantity, amount, buttonItem); VLayout vLayout = new VLayout(); vLayout.setMembersMargin(20); vLayout.setMembers(orderItemCriteriaForm, orderList); Record record = orderItemCriteriaForm.getValuesAsRecord(); AdvancedCriteria adCriteria = new AdvancedCriteria(OperatorId.AND, new Criterion[]{ new Criterion("itemDescription", OperatorId.CONTAINS, record.getAttribute("itemDescription")), new Criterion("quantity", OperatorId.GREATER_THAN, record.getAttributeAsInt("quantity")), new Criterion("amount", OperatorId.GREATER_THAN, record.getAttributeAsFloat("amount")) }); orderList.filterData(adCriteria); vLayout.draw(); } }