package com.smartgwt.sample.showcase.client.ai; import com.smartgwt.client.ai.AIHoverRequest; import com.smartgwt.client.data.AdvancedCriteria; import com.smartgwt.client.data.Criterion; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.types.FetchMode; import com.smartgwt.client.types.OperatorId; 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.grid.events.CellHoverEvent; import com.smartgwt.client.widgets.grid.events.CellHoverHandler; import com.google.gwt.core.client.EntryPoint; public class SummarizeOnHoverSample implements EntryPoint { @Override public void onModuleLoad() { final ListGrid grid = new ListGrid(); grid.setWidth100(); grid.setHeight100(); grid.setDataSource(DataSource.get("worldDS")); grid.setDataFetchMode(FetchMode.LOCAL); grid.setAutoFetchData(true); grid.setImplicitCriteria(new AdvancedCriteria(OperatorId.AND, new Criterion[] { new Criterion("continent", OperatorId.EQUALS, "Asia"), new Criterion("population", OperatorId.GREATER_THAN, 25_000_000) })); grid.setCanHover(true); grid.setShowHover(true); grid.setShowClippedHeaderTitlesOnHover(true); grid.addCellHoverHandler(new CellHoverHandler() { @Override public void onCellHover(CellHoverEvent event) { final int rowNum = event.getRowNum(), colNum = event.getColNum(); // Show a hover if the value is clipped or we've set an aiHoverRequest on the field. if (grid.cellValueIsClipped(rowNum, colNum)) { return; } final ListGridField field = grid.getField(colNum); if (field != null && field.getAIHoverRequest() != null) { return; } event.cancel(); } }); grid.setFields(new ListGridField[] { new ListGridField("countryCode", 70), new ListGridField("countryName", 235) {{ setShowHover(true); final AIHoverRequest aiHoverRequest = new AIHoverRequest(); aiHoverRequest.setPrompt("a 2-4 sentence demographic and economic description of the country"); setAIHoverRequest(aiHoverRequest); }}, new ListGridField("independence", 125), new ListGridField("population", 125), new ListGridField("gdp", 125) }); grid.draw(); } }