Home | History | Annotate | Download | only in table
      1 package autotest.common.table;
      2 
      3 import com.google.gwt.event.logical.shared.ValueChangeEvent;
      4 import com.google.gwt.event.logical.shared.ValueChangeHandler;
      5 import com.google.gwt.user.client.ui.HorizontalPanel;
      6 import com.google.gwt.user.client.ui.Panel;
      7 import com.google.gwt.user.client.ui.RadioButton;
      8 import com.google.gwt.user.client.ui.Widget;
      9 
     10 import java.util.Vector;
     11 
     12 public abstract class RadioButtonSetFilter extends Filter implements ValueChangeHandler<Boolean> {
     13     private Panel panel;
     14     private String name;
     15     private Vector<RadioButton> buttons;
     16     private int selected;
     17 
     18     public RadioButtonSetFilter(String name) {
     19         this(new HorizontalPanel(), name);
     20     }
     21 
     22     public RadioButtonSetFilter(Panel panel, String name) {
     23         this.panel = panel;
     24         this.name = name;
     25         buttons = new Vector();
     26     }
     27 
     28     @Override
     29     public Widget getWidget() {
     30         return panel;
     31     }
     32 
     33     public void addRadioButon(String label) {
     34         RadioButton radioButton = new RadioButton(name, label);
     35         int formValue = buttons.size();
     36         radioButton.setFormValue(Integer.toString(formValue));
     37         radioButton.addValueChangeHandler(this);
     38         buttons.add(radioButton);
     39         panel.add(radioButton);
     40     }
     41 
     42     public void setSelectedButton(int index) {
     43         if (index < buttons.size())
     44             selected = index;
     45             buttons.get(index).setChecked(true);
     46     }
     47 
     48     public int getSelectedButtonIndex() {
     49         return selected;
     50     }
     51 
     52     public int getButtonNum() {
     53         return buttons.size();
     54     }
     55 
     56     @Override
     57     public void onValueChange(ValueChangeEvent<Boolean> event) {
     58         selected = Integer.parseInt(((RadioButton) event.getSource()).getFormValue());
     59         notifyListeners();
     60     }
     61 }