package com.smartgwt.sample.showcase.client.forms.controls; import java.util.LinkedHashMap; import com.smartgwt.client.data.DateRange; import com.smartgwt.client.data.RelativeDate; import com.smartgwt.client.types.MultipleAppearance; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.CheckboxItem; import com.smartgwt.client.widgets.form.fields.ColorPickerItem; import com.smartgwt.client.widgets.form.fields.ComboBoxItem; import com.smartgwt.client.widgets.form.fields.DateItem; import com.smartgwt.client.widgets.form.fields.DateRangeItem; import com.smartgwt.client.widgets.form.fields.LinkItem; import com.smartgwt.client.widgets.form.fields.MiniDateRangeItem; import com.smartgwt.client.widgets.form.fields.RadioGroupItem; import com.smartgwt.client.widgets.form.fields.RelativeDateItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.SliderItem; import com.smartgwt.client.widgets.form.fields.SpinnerItem; import com.smartgwt.client.widgets.form.fields.TextAreaItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.TimeItem; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.sample.showcase.client.PanelFactory; import com.smartgwt.sample.showcase.client.ShowcasePanel; public class FormVariousControlsSample extends ShowcasePanel { private static final String DESCRIPTION = "Demonstration of several form controls."; public static class Factory implements PanelFactory { private String id; public ShowcasePanel create() { FormVariousControlsSample panel = new FormVariousControlsSample(); id = panel.getID(); return panel; } public String getID() { return id; } public String getDescription() { return DESCRIPTION; } } public Canvas getViewPanel() { VLayout layout = new VLayout(10); final DynamicForm form = new DynamicForm(); form.setWidth(400); form.setColWidths(120, "*"); TextItem textItem = new TextItem(); textItem.setTitle("Text"); textItem.setHint("<nobr>A plain text field</nobr>"); TextAreaItem textAreaItem = new TextAreaItem(); textAreaItem.setTitle("TextArea"); ColorPickerItem colorPicker = new ColorPickerItem(); colorPicker.setTitle("Color Picker"); SpinnerItem stackedSpinnerItem = new SpinnerItem(); stackedSpinnerItem.setTitle("Stacked Spinner"); stackedSpinnerItem.setDefaultValue(5); stackedSpinnerItem.setMin(0); stackedSpinnerItem.setMax(10); stackedSpinnerItem.setStep(0.5f); stackedSpinnerItem.setWriteStackedIcons(true); SpinnerItem unstackedSpinnerItem = new SpinnerItem(); unstackedSpinnerItem.setTitle("Unstacked Spinner"); unstackedSpinnerItem.setDefaultValue(5); unstackedSpinnerItem.setMin(0); unstackedSpinnerItem.setMax(10); unstackedSpinnerItem.setStep(0.5f); unstackedSpinnerItem.setWriteStackedIcons(false); SliderItem sliderItem = new SliderItem(); sliderItem.setTitle("Slider"); sliderItem.setHeight(40); sliderItem.setWidth(180); sliderItem.setMinValue(1.0); sliderItem.setMaxValue(5.0); sliderItem.setNumValues(5); sliderItem.setDefaultValue(4); LinkItem linkItem = new LinkItem("link"); linkItem.setTitle("LinkItem"); linkItem.setLinkTitle("<br>Click Me<br>"); linkItem.setHeight(36); linkItem.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { SC.say("Hello World"); } }); CheckboxItem checkboxItem = new CheckboxItem(); checkboxItem.setTitle("Checkbox"); checkboxItem.setHeight(25); RadioGroupItem radioGroupItem = new RadioGroupItem(); radioGroupItem.setTitle("Radio Group"); radioGroupItem.setValueMap("Option 1", "Option 2"); form.setFields(textItem, colorPicker, textAreaItem, stackedSpinnerItem, unstackedSpinnerItem, sliderItem, linkItem, checkboxItem, radioGroupItem); layout.addMember(form); DynamicForm selectComboForm = new DynamicForm(); selectComboForm.setWidth(450); selectComboForm.setColWidths(120, "*"); selectComboForm.setIsGroup(true); selectComboForm.setGroupTitle("Select / Combo Controls"); ComboBoxItem cbItem = new ComboBoxItem(); cbItem.setTitle("Select"); cbItem.setHint("<nobr>A simple combobox</nobr>"); cbItem.setType("comboBox"); cbItem.setValueMap("Cat", "Dog", "Giraffe", "Goat", "Marmoset", "Mouse"); LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>(); valueMap.put("US", "<b>United States</b>"); valueMap.put("CH", "China"); valueMap.put("JA", "<b>Japan</b>"); valueMap.put("IN", "India"); valueMap.put("GM", "Germany"); valueMap.put("FR", "France"); valueMap.put("IT", "Italy"); valueMap.put("RS", "Russia"); valueMap.put("BR", "<b>Brazil</b>"); valueMap.put("CA", "Canada"); valueMap.put("MX", "Mexico"); valueMap.put("SP", "Spain"); final SelectItem selectItem = new SelectItem(); selectItem.setTitle("Select"); selectItem.setHint("<nobr>A combobox with icons</nobr>"); selectItem.setValueMap(valueMap); selectItem.setImageURLPrefix("flags/16/"); selectItem.setImageURLSuffix(".png"); LinkedHashMap<String, String> valueIcons = new LinkedHashMap<String, String>(); valueIcons.put("US", "US"); valueIcons.put("CH", "CH"); valueIcons.put("JA", "JA"); valueIcons.put("IN", "IN"); valueIcons.put("GM", "GM"); valueIcons.put("FR", "FR"); valueIcons.put("IT", "IT"); valueIcons.put("RS", "RS"); valueIcons.put("BR", "BR"); valueIcons.put("CA", "CA"); valueIcons.put("MX", "MX"); valueIcons.put("SP", "SP"); selectItem.setValueIcons(valueIcons); SelectItem selectItem2 = new SelectItem(); selectItem2.setTitle("Select"); selectItem2.setHint("<nobr>A combobox with styled entries</nobr>"); selectItem2.setValueMap("<span style='color:#FF0000;'>Red</span>", "<span style='color:#00FF00;'>Green</span>", "<span style='color:#0000FF;'>Blue</span>"); final SelectItem selectItemMultipleGrid = new SelectItem(); selectItemMultipleGrid.setTitle("Select Multiple (Grid)"); selectItemMultipleGrid.setMultiple(true); selectItemMultipleGrid.setMultipleAppearance(MultipleAppearance.GRID); selectItemMultipleGrid.setValueMap("Cat", "Dog", "Giraffe", "Goat", "Marmoset", "Mouse"); final SelectItem selectItemMultiplePickList = new SelectItem(); selectItemMultiplePickList.setTitle("Select Multiple (PickList)"); selectItemMultiplePickList.setMultiple(true); selectItemMultiplePickList.setMultipleAppearance(MultipleAppearance.PICKLIST); selectItemMultiplePickList.setValueMap("Cat", "Dog", "Giraffe", "Goat", "Marmoset", "Mouse"); selectComboForm.setItems(cbItem, selectItem, selectItem2, selectItemMultipleGrid, selectItemMultiplePickList); layout.addMember(selectComboForm); DynamicForm dateForm = new DynamicForm(); dateForm.setWidth(450); dateForm.setColWidths(120, "*"); dateForm.setIsGroup(true); dateForm.setGroupTitle("Date Controls"); DateItem dateItem = new DateItem(); dateItem.setTitle("Date"); dateItem.setHint("<nobr>Picklist based date input</nobr>"); DateItem dateItem2 = new DateItem(); dateItem2.setTitle("Date"); dateItem2.setUseTextField(true); dateItem2.setHint("<nobr>Direct date input</nobr>"); TimeItem timeItem1 = new TimeItem("timeItem", "Time"); TimeItem timeItem2 = new TimeItem("timeItem", "Time"); timeItem2.setHint("Picklist based time input"); timeItem2.setUseTextField(false); DateRangeItem dateRangeItem = new DateRangeItem("dri", "Date Range"); dateRangeItem.setAllowRelativeDates(true); DateRange dateRange = new DateRange(); dateRange.setRelativeStartDate(RelativeDate.TODAY); dateRange.setRelativeEndDate(new RelativeDate("-1m")); dateRangeItem.setValue(dateRange); MiniDateRangeItem miniDateRangeItem = new MiniDateRangeItem("mdri", "Mini Date Range"); RelativeDateItem relativeDateItem = new RelativeDateItem("rdi", "Relative Date"); dateForm.setItems(dateItem, dateItem2, timeItem1, timeItem2, dateRangeItem, miniDateRangeItem, relativeDateItem); layout.addMember(dateForm); return layout; } public String getIntro() { return DESCRIPTION; } }