• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package autotest.afe;
2 
3 import java.util.ArrayList;
4 import java.util.List;
5 
6 public class RadioChooser {
7     public static interface Display {
generateRadioButton(String groupName, String choice)8         public IRadioButton generateRadioButton(String groupName, String choice);
9     }
10 
11     private static int groupNameCounter = 0;
12     private String groupName = getFreshGroupName();
13     private List<IRadioButton> radioButtons = new ArrayList<IRadioButton>();
14     private IRadioButton defaultButton;
15 
16     private Display display;
17 
bindDisplay(Display display)18     public void bindDisplay(Display display) {
19         this.display = display;
20     }
21 
getFreshGroupName()22     private static String getFreshGroupName() {
23         groupNameCounter++;
24         return "group" + Integer.toString(groupNameCounter);
25     }
26 
addChoice(String choice)27     public void addChoice(String choice) {
28         IRadioButton button = display.generateRadioButton(groupName, choice);
29         if (radioButtons.isEmpty()) {
30             // first button in this group
31             defaultButton = button;
32             button.setValue(true);
33         }
34         radioButtons.add(button);
35     }
36 
getSelectedChoice()37     public String getSelectedChoice() {
38         for (IRadioButton button : radioButtons) {
39             if (button.getValue()) {
40                 return button.getText();
41             }
42         }
43         throw new RuntimeException("No radio button selected");
44     }
45 
reset()46     public void reset() {
47         if (defaultButton != null) {
48             defaultButton.setValue(true);
49         }
50     }
51 
setDefaultChoice(String defaultChoice)52     public void setDefaultChoice(String defaultChoice) {
53         defaultButton = findButtonForChoice(defaultChoice);
54     }
55 
setSelectedChoice(String choice)56     public void setSelectedChoice(String choice) {
57         findButtonForChoice(choice).setValue(true);
58     }
59 
findButtonForChoice(String choice)60     private IRadioButton findButtonForChoice(String choice) {
61         for (IRadioButton button : radioButtons) {
62             if (button.getText().equals(choice)) {
63                 return button;
64             }
65         }
66         throw new RuntimeException("No such choice found: " + choice);
67     }
68 }
69