/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.samples.client.examples.forms;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.extjs.gxt.samples.resources.client.TestData;
import com.extjs.gxt.samples.resources.client.model.Stock;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Slider;
import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.DateField;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormButtonBinding;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
import com.extjs.gxt.ui.client.widget.form.SliderField;
import com.extjs.gxt.ui.client.widget.form.TextArea;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.TimeField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.google.gwt.user.client.Element;
public class FormsExample extends LayoutContainer {
private VerticalPanel vp;
private FormData formData;
@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
formData = new FormData("-20");
vp = new VerticalPanel();
vp.setSpacing(10);
createForm1();
createForm2();
add(vp);
}
private void createForm1() {
FormPanel simple = new FormPanel();
simple.setHeading("Simple Form");
simple.setFrame(true);
simple.setWidth(350);
LayoutContainer layout = new LayoutContainer();
FormLayout formLayout = new FormLayout(LabelAlign.LEFT);
layout.setLayout(formLayout);
TextField<String> firstName = new TextField<String>();
firstName.setFieldLabel("Name");
firstName.setAllowBlank(false);
layout.add(firstName, formData);
TextField<String> email = new TextField<String>();
email.setFieldLabel("Email");
email.setAllowBlank(false);
layout.add(email, formData);
List<Stock> stocks = TestData.getStocks();
Collections.sort(stocks, new Comparator<Stock>() {
public int compare(Stock arg0, Stock arg1) {
return arg0.getName().compareTo(arg1.getName());
}
});
ListStore<Stock> store = new ListStore<Stock>();
store.add(stocks);
ComboBox<Stock> combo = new ComboBox<Stock>();
combo.setFieldLabel("Company");
combo.setDisplayField("name");
combo.setTriggerAction(TriggerAction.ALL);
combo.setStore(store);
layout.add(combo, formData);
DateField date = new DateField();
date.setFieldLabel("Birthday");
layout.add(date, formData);
TimeField time = new TimeField();
time.setFieldLabel("Time");
layout.add(time, formData);
Slider slider = new Slider();
slider.setMinValue(40);
slider.setMaxValue(90);
slider.setValue(60);
slider.setIncrement(1);
slider.setMessage("{0} inches tall");
final SliderField sf = new SliderField(slider);
sf.setFieldLabel("Size");
layout.add(sf, formData);
CheckBox check1 = new CheckBox();
check1.setBoxLabel("קלאסי");
CheckBox check2 = new CheckBox();
check2.setBoxLabel("רוק");
check2.setValue(true);
CheckBox check3 = new CheckBox();
check3.setBoxLabel("בלוז");
CheckBoxGroup checkGroup = new CheckBoxGroup();
checkGroup.setFieldLabel("Music");
checkGroup.add(check1);
checkGroup.add(check2);
checkGroup.add(check3);
layout.add(checkGroup, formData);
Radio radio = new Radio();
radio.setBoxLabel("אדום");
radio.setValue(true);
Radio radio2 = new Radio();
radio2.setBoxLabel("כחול");
RadioGroup radioGroup = new RadioGroup();
radioGroup.setFieldLabel("Favorite Color");
radioGroup.add(radio);
radioGroup.add(radio2);
layout.add(radioGroup, formData);
TextArea description = new TextArea();
description.setPreventScrollbars(true);
description.setFieldLabel("Description");
layout.add(description, formData);
Radio radio3 = new Radio();
radio3.setBoxLabel("Apple");
radio3.setValue(true);
Radio radio4 = new Radio();
radio4.setBoxLabel("Banana");
RadioGroup radioGroup2 = new RadioGroup();
radioGroup2.setFieldLabel("Favorite Fruit");
radioGroup2.add(radio3);
radioGroup2.add(radio4);
layout.add(radioGroup2, formData);
simple.add(layout);
Button b = new Button("Submit");
simple.addButton(b);
simple.addButton(new Button("Cancel"));
simple.setButtonAlign(HorizontalAlignment.CENTER);
FormButtonBinding binding = new FormButtonBinding(simple);
binding.addButton(b);
vp.add(simple);
}
private void createForm2() {
FormPanel form2 = new FormPanel();
form2.setFrame(true);
form2.setHeading("Simple Form with FieldSets");
form2.setWidth(350);
form2.setLayout(new FlowLayout());
FieldSet fieldSet = new FieldSet();
fieldSet.setHeading("מידע אישי");
fieldSet.setCheckboxToggle(true);
FormLayout layout = new FormLayout();
layout.setLabelWidth(75);
fieldSet.setLayout(layout);
TextField<String> firstName = new TextField<String>();
firstName.setFieldLabel("First Name");
firstName.setAllowBlank(false);
fieldSet.add(firstName, formData);
TextField<String> lastName = new TextField<String>();
lastName.setFieldLabel("Last Name");
fieldSet.add(lastName, formData);
TextField<String> company = new TextField<String>();
company.setFieldLabel("Company");
fieldSet.add(company, formData);
TextField<String> email = new TextField<String>();
email.setFieldLabel("Email");
fieldSet.add(email, formData);
form2.add(fieldSet);
fieldSet = new FieldSet();
fieldSet.setHeading("טלפונים");
fieldSet.setCollapsible(true);
layout = new FormLayout();
layout.setLabelWidth(75);
fieldSet.setLayout(layout);
TextField<String> field = new TextField<String>();
field.setFieldLabel("Home");
fieldSet.add(field, formData);
field = new TextField<String>();
field.setFieldLabel("Business");
fieldSet.add(field, formData);
field = new TextField<String>();
field.setFieldLabel("Mobile");
fieldSet.add(field, formData);
field = new TextField<String>();
field.setFieldLabel("Fax");
fieldSet.add(field, formData);
form2.add(fieldSet);
form2.setButtonAlign(HorizontalAlignment.CENTER);
form2.addButton(new Button("Save"));
form2.addButton(new Button("Cancel"));
vp.add(form2);
}
}