/* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. Smart GWT is also * available under typical commercial license terms - see * http://smartclient.com/license * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ /* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * is published by the Free Software Foundation. Smart GWT is also * available under typical commercial license terms - see * http://smartclient.com/license * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ import com.smartgwt.client.data.AdvancedCriteria; import com.smartgwt.client.data.Criterion; import com.smartgwt.client.types.OperatorId; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.sample.showcase.client.data.WorldXmlDS; import com.google.gwt.core.client.EntryPoint; public class GridExpressionFilter implements EntryPoint { public void onModuleLoad() { final ListGrid countryGrid = new ListGrid(); countryGrid.setWidth(500); countryGrid.setHeight(300); countryGrid.setDataSource(WorldXmlDS.getInstance()); ListGridField countryCodeField = new ListGridField("countryCode", "Code", 50); ListGridField nameField = new ListGridField("countryName", "Country"); ListGridField capitalField = new ListGridField("capital", "Capital"); ListGridField continentField = new ListGridField("continent", "Continent"); ListGridField areaField = new ListGridField("area", "Area (km²)"); ListGridField populationField = new ListGridField("population", "Population"); countryGrid.setFields(countryCodeField, nameField, capitalField, continentField, areaField, populationField); countryGrid.setAutoFetchData(true); countryGrid.setShowFilterEditor(true); countryGrid.setAllowFilterExpressions(true); AdvancedCriteria initialCriteria = new AdvancedCriteria(OperatorId.AND, new Criterion[]{ new Criterion("countryName", OperatorId.INOT_CONTAINS, "i"), new Criterion("capital", OperatorId.BETWEEN_INCLUSIVE, "A", "F"), new AdvancedCriteria(OperatorId.OR, new Criterion[]{ new Criterion("population", OperatorId.LESS_THAN, 1000000), new Criterion("population", OperatorId.GREATER_THAN, 100000000) }) }); countryGrid.setInitialCriteria(initialCriteria); Label label = new Label(); label.setAutoHeight(); label.setContents("<table style='font-size:12;font-family:Arial,Verdana'>" + "<tr><td><b>Prefix</b></td><td><b>Operator</b></td></tr>" + "<tr><td><</td><td>lessThan</td></tr>" + "<tr><td>></td><td>greaterThan</td></tr>" + "<tr><td><=</td><td>lessThanOrEqual</td></tr>" + "<tr><td>>=</td><td>greaterThanOrEqual</td></tr>" + "<tr><td>someValue...someValue</td><td>betweenInclusive</td></tr>" + "<tr><td>!</td><td>notEqual</td></tr>" + "<tr><td>^</td><td>startsWith</td></tr>" + "<tr><td>|</td><td>endsWith</td></tr>" + "<tr><td>!^</td><td>notStartsWith</td></tr>" + "<tr><td>!@</td><td>notEndsWith</td></tr>" + "<tr><td>~</td><td>contains</td></tr>" + "<tr><td>!~</td><td>notContains</td></tr>" + "<tr><td>=(value1|value2)</td><td>inSet</td></tr>" + "<tr><td>!=(value1|value2)</td><td>notInSet</td></tr>" + "<tr><td>#</td><td>isNull</td></tr>" + "<tr><td>!#</td><td>isNotNull</td></tr>" + "<tr><td>==</td><td>exact match (for fields where 'contains' is the default)</td></tr>" + "<tr><td>=.</td><td>matches other field-name or title</td></tr>" + "</table>"); HLayout layout = new HLayout(20); layout.setMembers(countryGrid, label); layout.draw(); } @Override protected boolean shouldWrapViewPanel() { return true; } protected boolean isTopIntro() { return true; } }