/* * Isomorphic SmartGWT web presentation layer * Copyright 2000 and beyond Isomorphic Software, Inc. * * OWNERSHIP NOTICE * Isomorphic Software owns and reserves all rights not expressly granted in this source code, * including all intellectual property rights to the structure, sequence, and format of this code * and to all designs, interfaces, algorithms, schema, protocols, and inventions expressed herein. * * If you have any questions, please email
. * * This entire comment must accompany any portion of Isomorphic Software source code that is * copied or moved from this file. */ package com.smartgwt.sample.showcase.client.shuttles; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.types.Overflow; import com.smartgwt.client.types.TopOperatorAppearance; import com.smartgwt.client.types.Visibility; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.FilterBuilder; import com.smartgwt.client.widgets.form.SearchForm; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.SetFilterItem; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import com.google.gwt.core.client.EntryPoint; public class SetFilteringSample implements EntryPoint { @Override public void onModuleLoad() { DataSource ds = DataSource.get("supplyItem"); ListGrid supplyList = new ListGrid(); VLayout mainLayout = new VLayout(); mainLayout.setMembersMargin(20); mainLayout.setWidth100(); mainLayout.setHeight100(); mainLayout.setOverflow(Overflow.AUTO); SearchForm searchForm = new SearchForm(); searchForm.setIsGroup(true); searchForm.setGroupTitle("Search Form"); searchForm.setDataSource(ds); TextItem skuItem = new TextItem("SKU"); TextItem itemNameItem = new TextItem("itemName"); SetFilterItem categoryItem = new SetFilterItem("category"); SelectItem unitsItem = new SelectItem("units"); searchForm.setFields(skuItem,itemNameItem,categoryItem,unitsItem); FilterBuilder filterBuilder = new FilterBuilder(); filterBuilder.setIsGroup(true); filterBuilder.setGroupTitle("Filter Builder"); filterBuilder.setDataSource(ds); filterBuilder.setAllowedFields("SKU","itemName","category","units"); filterBuilder.setTopOperatorAppearance(TopOperatorAppearance.NONE); filterBuilder.setVisibility(Visibility.HIDDEN); HLayout hLayout = new HLayout(); hLayout.setHeight(1); hLayout.setMembersMargin(5); Button button = new Button(); button.setTitle("Toggle Filtering Interface"); button.setWidth(200); button.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (searchForm.isVisible()) { searchForm.hide(); filterBuilder.show(); } else { searchForm.show(); filterBuilder.hide(); } supplyList.setData(); } }); Button filterGridButton = new Button(); filterGridButton.setTitle("Filter Grid"); filterGridButton.setWidth(200); filterGridButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Criteria criteria = (searchForm.isVisible()?searchForm.getValuesAsCriteria():filterBuilder.getCriteria()); supplyList.filterData(criteria); } }); hLayout.setMembers(button, filterGridButton); supplyList.setWidth(500); supplyList.setHeight(300); supplyList.setDataSource(ds); ListGridField skuField = new ListGridField("SKU"); ListGridField itemNameField = new ListGridField("itemName"); ListGridField categoryField = new ListGridField("category"); ListGridField unitsField = new ListGridField("units"); supplyList.setFields(skuField,itemNameField,categoryField,unitsField); mainLayout.setMembers(searchForm,filterBuilder,hLayout,supplyList); mainLayout.draw(); } }