package com.smartgwt.sample.showcase.client.grid.interaction;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.SelectionType;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.HoverCustomizer;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
import com.smartgwt.sample.showcase.client.data.CountryData;
import com.smartgwt.sample.showcase.client.data.CountryRecord;
public class ValueHoverTipsSample extends ShowcasePanel {
private static String[] governmentDescription = new String[]{
"<b>Communism</b> - a system of government in which the state plans and controls the economy and a single - often authoritarian - party holds power; state controls are imposed with the elimination of private ownership of property or capital while claiming to make progress toward a higher social order in which all goods are equally shared by the people (i.e., a classless society).",
"<b>Constitutional monarchy</b> - a system of government in which a monarch is guided by a constitution whereby his/her rights, duties, and responsibilities are spelled out in written law or by custom.",
"<b>Federal republic</b> - a state in which the powers of the central government are restricted and in which the component parts (states, colonies, or provinces) retain a degree of self-government; ultimate sovereign power rests with the voters who chose their governmental representatives.",
"<b>Federal (Federative)</b> - a form of government in which sovereign power is formally divided - usually by means of a constitution - between a central authority and a number of constituent regions (states, colonies, or provinces) so that each region retains some management of its internal affairs; differs from a confederacy in that the central government exerts influence directly upon both individuals as well as upon the regional units.",
"<b>Parliamentary monarchy</b> - a state headed by a monarch who is not actively involved in policy formation or implementation (i.e., the exercise of sovereign powers by a monarch in a ceremonial capacity); true governmental leadership is carried out by a cabinet and its head - a prime minister, premier, or chancellor - who are drawn from a legislature (parliament).",
"<b>Republic</b> - a representative democracy in which the people's elected deputies (representatives), not the people themselves, vote on legislation."
};
private static final String DESCRIPTION = "Move the mouse over a value in the \"Government\" column and pause (hover) for a longer description of that value.";
public static class Factory implements PanelFactory {
private String id;
public Canvas create() {
ValueHoverTipsSample panel = new ValueHoverTipsSample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
Canvas canvas = new Canvas();
final ListGrid countryGrid = new ListGrid();
countryGrid.setWidth(500);
countryGrid.setHeight(224);
countryGrid.setShowAllRecords(true);
countryGrid.setWrapCells(true);
// taller rows to fit 'government' values
countryGrid.setCellHeight(32);
countryGrid.setHoverWidth(300);
ListGridField countryCodeField = new ListGridField("countryCode", "Flag", 50);
countryCodeField.setAlign(Alignment.CENTER);
countryCodeField.setType(ListGridFieldType.IMAGE);
countryCodeField.setImageURLPrefix("flags/16/");
countryCodeField.setImageURLSuffix(".png");
ListGridField nameField = new ListGridField("countryName", "Country");
ListGridField governmentField = new ListGridField("government", "Government", 120);
governmentField.setShowHover(true);
governmentField.setHoverCustomizer(new HoverCustomizer() {
public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) {
CountryRecord countryRecord = (CountryRecord) record;
int governmentDesc = countryRecord.getGovernmentDesc();
return governmentDescription[governmentDesc];
}
});
countryGrid.setFields(countryCodeField, nameField, governmentField);
countryGrid.setCanResizeFields(true);
countryGrid.setData(CountryData.getRecords());
canvas.addChild(countryGrid);
IButton everyCell = new IButton("Show Hover on every cell");
everyCell.setWidth(250);
everyCell.setTop(250);
everyCell.setActionType(SelectionType.RADIO);
everyCell.setRadioGroup("canHover");
everyCell.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// When canHover is true on a ListGrid, cells will show hover text unless field.showHover is false
countryGrid.setCanHover(true);
}
});
canvas.addChild(everyCell);
IButton governmentCell = new IButton("Show Hover on <i>Government</i> cells only");
governmentCell.setWidth(250);
governmentCell.setTop(300);
governmentCell.setActionType(SelectionType.RADIO);
governmentCell.setRadioGroup("canHover");
governmentCell.setSelected(true);
governmentCell.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// When canHover is unset on a ListGrid, cells will show hover text if field.showHover is true
countryGrid.setCanHover(null);
}
});
canvas.addChild(governmentCell);
IButton noCell = new IButton("Suppress all cell hovers");
noCell.setWidth(250);
noCell.setTop(350);
noCell.setActionType(SelectionType.RADIO);
noCell.setRadioGroup("canHover");
noCell.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// When canHover is false on a ListGrid, cells will not show any hover text
countryGrid.setCanHover(false);
//countryGrid.setHoverWidth(5);
}
});
canvas.addChild(noCell);
return canvas;
}
public String getIntro() {
return DESCRIPTION;
}
}