Code:public class XRadioGroup extends RadioGroup { private static int autoId = 0; public XRadioGroup() { this("gxt.RadioGroup." + autoId++); } public XRadioGroup(final String name) { setGroupName(name); messages = new RadioGroupMessages(); setSpacing(5); } public void addField(final Field<?> f) { addInternalField(f); } public void addField(final Radio radio) { setGroup(radio, this); radio.setName(getGroupName()); addInternalField(radio); } private void addInternalField(final Field<?> f) { fields.add(f); final boolean vertical = orientation == Orientation.VERTICAL; TableData data = (TableData) ComponentHelper.getLayoutData(f); if (data == null) { data = new TableData(); } String style = "position: static;"; if (vertical && spacing > 0) { style += "paddingTop:" + spacing + "px;"; } else if (!vertical && spacing > 0) { style += "paddingLeft:" + spacing + "px;"; } data.setStyle(style); lc.add(f, data); lc.layout(); } private native String getGroupName() /*-{ return this.@com.extjs.gxt.ui.client.widget.form.RadioGroup::groupName; }-*/; public boolean removeAllFields() { return lc.removeAll(); } public void removeField(final Field<?> f) { lc.remove(f); lc.layout(); } private native void setGroup(Radio radio, RadioGroup radioGroup) /*-{ radio.@com.extjs.gxt.ui.client.widget.form.Radio::group = radioGroup; }-*/; private native void setGroupName(String groupName) /*-{ this.@com.extjs.gxt.ui.client.widget.form.RadioGroup::groupName = groupName; }-*/; }