package com.smartgwt.sample.showcase.client.dataintegration.java.serversummaries; import java.util.HashMap; import java.util.Map; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.layout.VStack; import com.google.gwt.core.client.EntryPoint; public class BasicAggregationSample implements EntryPoint { @Override public void onModuleLoad() { final ListGrid orderItemList = new ListGrid(); orderItemList.setDataSource(DataSource.get("basicAggregation_orderItem")); orderItemList.setWidth(500); orderItemList.setHeight(300); orderItemList.setShowFilterEditor(true); orderItemList.setAutoFetchData(true); orderItemList.setFetchOperation("amountByItem"); orderItemList.setCanEdit(false); orderItemList.setCanRemoveRecords(false); ListGridField orderCustomerName = new ListGridField("orderCustomerName"); orderCustomerName.setHidden(true); orderCustomerName.setTitle("Customer name"); ListGridField itemDescription = new ListGridField("itemDescription"); ListGridField unitPrice = new ListGridField("unitPrice"); unitPrice.setType(ListGridFieldType.FLOAT); unitPrice.setHidden(true); ListGridField amount = new ListGridField("amount"); amount.setType(ListGridFieldType.INTEGER); ListGridField pk = new ListGridField("pk"); pk.setTitle("Count"); orderItemList.setFields(orderCustomerName,itemDescription,unitPrice,amount,pk); DynamicForm operationForm = new DynamicForm(); operationForm.setWidth(300); SelectItem operationId = new SelectItem(); operationId.setDefaultToFirstOption(true); operationId.setTitle("Operation"); Map
valueMap = new HashMap
(); valueMap.put("amountByItem", "Amount by item"); valueMap.put("amountByCustomer", "Amount by customer"); valueMap.put("minPriceByItem", "Minimum price by item"); valueMap.put("maxPriceByItem", "Maximum price by item"); operationId.setValueMap(valueMap); operationId.addChangedHandler(new ChangedHandler() { @Override public void onChanged(ChangedEvent event) { String value = event.getValue().toString(); DSRequest requestProperties = new DSRequest(); requestProperties.setOperationId(value); orderItemList.fetchData(null, null, requestProperties); if (value.endsWith("ByItem")) { orderItemList.hideField("orderCustomerName"); orderItemList.showField("itemDescription"); } else { orderItemList.showField("orderCustomerName"); orderItemList.hideField("itemDescription"); } if (value.startsWith("amount")) { orderItemList.hideField("unitPrice"); orderItemList.showField("amount"); } else { orderItemList.showField("unitPrice"); orderItemList.hideField("amount"); } } }); operationForm.setFields(operationId); VStack vStack = new VStack(); vStack.setWidth100(); vStack.setMembersMargin(10); vStack.setMembers(operationForm,orderItemList); vStack.draw(); } }