115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luopackage autotest.common.table; 215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.event.logical.shared.ValueChangeEvent; 415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.event.logical.shared.ValueChangeHandler; 515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.user.client.ui.HorizontalPanel; 615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.user.client.ui.Panel; 715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.user.client.ui.RadioButton; 815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport com.google.gwt.user.client.ui.Widget; 915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 1015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luoimport java.util.Vector; 1115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 1215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luopublic abstract class RadioButtonSetFilter extends Filter implements ValueChangeHandler<Boolean> { 1315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo private Panel panel; 1415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo private String name; 1515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo private Vector<RadioButton> buttons; 1615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo private int selected; 1715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 1815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public RadioButtonSetFilter(String name) { 1915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo this(new HorizontalPanel(), name); 2015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 2115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 2215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public RadioButtonSetFilter(Panel panel, String name) { 2315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo this.panel = panel; 2415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo this.name = name; 2515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo buttons = new Vector(); 2615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 2715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 2815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo @Override 2915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public Widget getWidget() { 3015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo return panel; 3115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 3215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 3315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public void addRadioButon(String label) { 3415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo RadioButton radioButton = new RadioButton(name, label); 3515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo int formValue = buttons.size(); 3615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo radioButton.setFormValue(Integer.toString(formValue)); 3715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo radioButton.addValueChangeHandler(this); 3815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo buttons.add(radioButton); 3915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo panel.add(radioButton); 4015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 4115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 4215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public void setSelectedButton(int index) { 4315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo if (index < buttons.size()) 4415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo selected = index; 4515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo buttons.get(index).setChecked(true); 4615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 4715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 4815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public int getSelectedButtonIndex() { 4915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo return selected; 5015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 5115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 5215cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public int getButtonNum() { 5315cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo return buttons.size(); 5415cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 5515cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo 5615cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo @Override 5715cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo public void onValueChange(ValueChangeEvent<Boolean> event) { 5815cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo selected = Integer.parseInt(((RadioButton) event.getSource()).getFormValue()); 5915cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo notifyListeners(); 6015cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo } 6115cbf37cebd87112bb493d12330e123d1b007c23Jiaxi Luo}