001    /*
002     * $Header$
003     * $Revision: 1998 $
004     * $Date: 2008-03-06 13:18:03 +0100 (Thu, 06 Mar 2008) $
005     *
006     * Copyright Computer Science Innovations (CSI), 2004. All rights reserved.
007     */
008    package org.springframework.richclient.factory;
009    
010    import javax.swing.JCheckBoxMenuItem;
011    import javax.swing.JMenu;
012    import javax.swing.JMenuBar;
013    import javax.swing.JMenuItem;
014    import javax.swing.JPopupMenu;
015    import javax.swing.JRadioButtonMenuItem;
016    
017    /**
018     * Marker for menu factories.
019     *
020     * @author Keith Donald
021     */
022    public interface MenuFactory {
023    
024        /**
025         * Create a menu.
026         */
027        public JMenu createMenu();
028    
029        /**
030         * Create a menu item.
031         */
032        public JMenuItem createMenuItem();
033    
034        /**
035         * Create a menu item with a checkbox LaF.
036         */
037        public JCheckBoxMenuItem createCheckBoxMenuItem();
038    
039        /**
040         * Create a menu item with a radio button LaF.
041         */
042        public JRadioButtonMenuItem createRadioButtonMenuItem();
043    
044        /**
045         * Create a popup menu most commonly used when with the mouse.
046         */
047        public JPopupMenu createPopupMenu();
048    
049        /**
050         * Create a menu bar.
051         */
052        public JMenuBar createMenuBar();
053    
054    }