/** Called when a radio is removed from this group. */ /*package*/ void fixOnRemove(Radio child) { if (child.isSelected()) { _jsel = -1; } else if (_jsel > 0) { //excluding 0 fixSelectedIndex(); } }
/** Called when a radio is added to this group. */ /*package*/ void fixOnAdd(Radio child, boolean external) { if (external && _jsel >= 0 && child.isSelected()) { child.setSelected(false); //it will call fixSelectedIndex } else { fixSelectedIndex(); } }
/** Make sure only one of them is checked. */ private void fixSiblings(boolean checked, boolean byclient) { final Radiogroup group = getRadiogroup(); if (group != null) { if (checked) { final Radio sib = group.getSelectedItem(); if (sib != null && sib != this) { if (byclient) { sib._checked = false; } else { sib.setChecked(false); //and fixSelectedIndex return; } } } group.fixSelectedIndex(); group.syncSelectionToModel(); } }