/* * 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. */ package com.smartgwt.sample.showcase.client.grid.hover; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.Record; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.viewer.DetailViewer; import com.smartgwt.sample.showcase.client.PanelFactory; import com.smartgwt.sample.showcase.client.ShowcasePanel; import com.smartgwt.sample.showcase.client.data.ItemSupplyXmlDS; public class GridCustomHoverSample extends ShowcasePanel { private static final String DESCRIPTION = "This grid displays a limited number of fields from the supplyItem dataSource. " + "When you hover over a row, the system goes to the server to retrieve the entire record, creates a DetailViewer to display that " + "data and shows it as the hoverComponent. See the code in the overridden getCellHoverComponent() method."; public static class Factory implements PanelFactory { private String id; public ShowcasePanel create() { GridCustomHoverSample panel = new GridCustomHoverSample(); id = panel.getID(); return panel; } public String getID() { return id; } public String getDescription() { return DESCRIPTION; } } public Canvas getViewPanel() { ListGrid listGrid = new ListGrid() { @Override protected Canvas getCellHoverComponent(Record record, Integer rowNum, Integer colNum) { DetailViewer detailViewer = new DetailViewer(); detailViewer.setWidth(200); detailViewer.setDataSource(ItemSupplyXmlDS.getInstance()); Criteria criteria = new Criteria(); criteria.addCriteria("itemID", record.getAttribute("itemID")); detailViewer.fetchData(criteria); return detailViewer; } }; listGrid.setWidth100(); listGrid.setHeight100(); listGrid.setDataSource(ItemSupplyXmlDS.getInstance()); ListGridField itemNameField = new ListGridField("itemName"); ListGridField skuField = new ListGridField("SKU"); ListGridField categoryField = new ListGridField("category"); listGrid.setFields(itemNameField, skuField, categoryField); listGrid.setAutoFetchData(true); listGrid.setCanHover(true); listGrid.setShowHover(true); listGrid.setShowHoverComponents(true); return listGrid; } public String getIntro() { return DESCRIPTION; } }