package com.akjava.gwt.lib.client.widget; import java.util.ArrayList; import java.util.List; import java.util.Set; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.HorizontalPanel; public class RadioAndLabelGroup extends HorizontalPanel{ List<RadioAndLabel> radios=new ArrayList<RadioAndLabel>(); //TODO future public RadioAndLabelGroup(String key,Set<String> values,String selection){ for(String label:values){ boolean b=false; if(label.equals(selection)){ b=true; } RadioAndLabel rl=new RadioAndLabel(key, label, b); add(rl); radios.add(rl); } if(selection==null){ radios.get(0).setValue(true); } } public void addClickHandler(ClickHandler handler){ for(RadioAndLabel rl:radios){ rl.getRadio().addClickHandler(handler); rl.getLabel().addClickHandler(handler); } } public int getSelectedIndex(){ int index=-1; for(int i=0;i<radios.size();i++){ RadioAndLabel rl=radios.get(i); if(rl.getValue()){ return index; } } return index; } public String getSelectedLabel(){ String ret=null; int index=getSelectedIndex(); if(index!=-1){ return radios.get(index).getLabelText(); } return ret; } }