class RadioBoxListItemRenderer<V> extends ListItemRenderer<V,RadioBoxList<V>> {
        @Override
        public int getHotSpotPositionOnLine(int selectedIndex) {
            return 1;
        }

        protected String getItemText(RadioBoxList<V> listBox, int index, V item) {
            return (item != null ? item : "<null>").toString();
        }
        
        @Override
        public String getLabel(RadioBoxList<V> listBox, int index, V item) {
            String check = " ";
            if(listBox.checkedIndex == index)
                check = "o";

            String text = getItemText(listBox, index, item);
            return "<" + check + "> " + text;
        }

        @Override
        public void drawItem(TextGUIGraphics graphics, RadioBoxList<V> listBox, int index, V item, boolean selected, boolean focused) {<FILL_FUNCTION_BODY>}
    }

            ThemeDefinition themeDefinition = listBox.getTheme().getDefinition(RadioBoxList.class);
            ThemeStyle itemStyle;
            if(selected && !focused) {
                itemStyle = themeDefinition.getSelected();
            }
            else if(selected) {
                itemStyle = themeDefinition.getActive();
            }
            else if(focused) {
                itemStyle = themeDefinition.getInsensitive();
            }
            else {
                itemStyle = themeDefinition.getNormal();
            }

            if(themeDefinition.getBooleanProperty("CLEAR_WITH_NORMAL", false)) {
                graphics.applyThemeStyle(themeDefinition.getNormal());
                graphics.fill(' ');
                graphics.applyThemeStyle(itemStyle);
            }
            else {
                graphics.applyThemeStyle(itemStyle);
                graphics.fill(' ');
            }

            String brackets = themeDefinition.getCharacter("LEFT_BRACKET", '<') +
                    " " +
                    themeDefinition.getCharacter("RIGHT_BRACKET", '>');
            if(themeDefinition.getBooleanProperty("FIXED_BRACKET_COLOR", false)) {
                graphics.applyThemeStyle(themeDefinition.getPreLight());
                graphics.putString(0, 0, brackets);
                graphics.applyThemeStyle(itemStyle);
            }
            else {
                graphics.putString(0, 0, brackets);
            }

            String text = getItemText(listBox, index, item);
            graphics.putString(4, 0, text);

            boolean itemChecked = listBox.checkedIndex == index;
            char marker = themeDefinition.getCharacter("MARKER", 'o');
            if(themeDefinition.getBooleanProperty("MARKER_WITH_NORMAL", false)) {
                graphics.applyThemeStyle(themeDefinition.getNormal());
            }
            if(selected && focused && themeDefinition.getBooleanProperty("HOTSPOT_PRELIGHT", false)) {
                graphics.applyThemeStyle(themeDefinition.getPreLight());
            }
            graphics.setCharacter(1, 0, (itemChecked ? marker : ' '));
        
<methods>public synchronized RadioBoxList<V> addItem(V) ,public synchronized RadioBoxList<V> clearItems() ,public synchronized V getItemAt(int) ,public synchronized int getItemCount() ,public synchronized List<V> getItems() ,public int getSelectedIndex() ,public synchronized V getSelectedItem() ,public synchronized com.googlecode.lanterna.gui2.Interactable.Result handleKeyStroke(com.googlecode.lanterna.input.KeyStroke) ,public synchronized int indexOf(V) ,public synchronized boolean isEmpty() ,public boolean isFocusable() ,public synchronized V removeItem(int) ,public synchronized RadioBoxList<V> setListItemRenderer(ListItemRenderer<V,RadioBoxList<V>>) ,public synchronized RadioBoxList<V> setSelectedIndex(int) <variables>private final non-sealed List<V> items,private ListItemRenderer<V,RadioBoxList<V>> listItemRenderer,protected com.googlecode.lanterna.TerminalPosition scrollOffset,private int selectedIndex