class RenderDestinationMenu extends MenuBase
{
    public static final String RENDER_DESTINATION_EXPORT = "Export";
    public static final String RENDER_DESTINATION_PRINT = "Print";
    public static final String RENDER_DESTINATION_VIEW = "View";
    
    private static RenderDestinationMenu instance;
    private JRadioButtonMenuItem exportItem;
    private JRadioButtonMenuItem printItem;
    private JRadioButtonMenuItem viewItem;

    /**
     * Constructor.
     */
    private RenderDestinationMenu()
    {
        setMenu(createMenu());
    }
  
    /**
     * Provides the RenderDestination instance.
     * @return RenderDestination instance.
     */
    public static RenderDestinationMenu getInstance()
    {
        if (instance == null)
        {
            instance = new RenderDestinationMenu();
        }
        return instance;
    }

    /**
     * Set the render destination selection.
     * @param selection String instance.
     */
    public void setRenderDestinationSelection(String selection)
    {<FILL_FUNCTION_BODY>}

    public static boolean isRenderDestinationMenu(String actionCommand)
    {
        return RENDER_DESTINATION_EXPORT.equals(actionCommand) || RENDER_DESTINATION_PRINT.equals(actionCommand) ||
                RENDER_DESTINATION_VIEW.equals(actionCommand);
    }
    
    public static RenderDestination getRenderDestination()
    {
        if (instance.printItem.isSelected())
        {
            return RenderDestination.PRINT;
        }
        if (instance.viewItem.isSelected())
        {
            return RenderDestination.VIEW;
        }
        return RenderDestination.EXPORT;
    }

    public static RenderDestination getRenderDestination(String actionCommand)
    {
        switch (actionCommand)
        {
            case RENDER_DESTINATION_EXPORT:
                return RenderDestination.EXPORT;
            case RENDER_DESTINATION_PRINT:
                return RenderDestination.PRINT;
            case RENDER_DESTINATION_VIEW:
                return RenderDestination.VIEW;
            default:
                throw new IllegalArgumentException("Invalid RenderDestination actionCommand: " + actionCommand);
        }
    }

    private JMenu createMenu()
    {
        JMenu menu = new JMenu();
        menu.setText("Render destination");

        exportItem = new JRadioButtonMenuItem();
        printItem = new JRadioButtonMenuItem();
        viewItem = new JRadioButtonMenuItem();
        exportItem.setSelected(true);

        ButtonGroup bg = new ButtonGroup();
        bg.add(exportItem);
        bg.add(printItem);
        bg.add(viewItem);

        exportItem.setText(RENDER_DESTINATION_EXPORT);
        printItem.setText(RENDER_DESTINATION_PRINT);
        viewItem.setText(RENDER_DESTINATION_VIEW);
        
        menu.add(exportItem);
        menu.add(printItem);
        menu.add(viewItem);

        return menu;
    }
}

        switch (selection)
        {
            case RENDER_DESTINATION_EXPORT:
                exportItem.setSelected(true);
                break;
            case RENDER_DESTINATION_PRINT:
                printItem.setSelected(true);
                break;
            case RENDER_DESTINATION_VIEW:
                viewItem.setSelected(true);
                break;
            default:
                throw new IllegalArgumentException("Invalid RenderDestination selection: " + selection);
        }
    
<methods>public void addMenuListeners(java.awt.event.ActionListener) ,public javax.swing.JMenu getMenu() ,public void setEnableMenu(boolean) <variables>private javax.swing.JMenu menu