1 package de.matthias_burbach.mosaique.swing; 2 3 import javax.swing.JMenu; 4 import javax.swing.JMenuBar; 5 import javax.swing.JMenuItem; 6 7 /*** 8 * Is the Mosaique menu bar. 9 * 10 * @author Matthias Burbach 11 */ 12 public class MosaiqueMenuBar extends JMenuBar { 13 /*** 14 * The file menu definition. '-' represents a separator. 15 */ 16 private String[] fileItems = 17 new String[] { 18 MosaiqueFrame.ACTION_OPEN, 19 "-", 20 MosaiqueFrame.ACTION_EXIT, 21 }; 22 23 /*** 24 * The edit menu definition. '-' represents a separator. 25 */ 26 private String[] editItems = 27 new String[] { 28 }; 29 30 /*** 31 * The view menu definition. '-' represents a separator. 32 */ 33 private String[] viewItems = 34 new String[] { 35 }; 36 37 /*** 38 * The help menu definition. '-' represents a separator. 39 */ 40 private String[] helpItems = 41 new String[] { 42 MosaiqueFrame.ACTION_HOMEPAGE, 43 MosaiqueFrame.ACTION_RELEASE_NOTES, 44 "-", 45 MosaiqueFrame.ACTION_SHOW_ABOUT 46 }; 47 48 /*** 49 * Constructs the mosaique menu bar. 50 * 51 * @param mosaiqueFrame The mosaique frame providing the menu item action 52 * listeners. 53 */ 54 public MosaiqueMenuBar(final MosaiqueFrame mosaiqueFrame) { 55 add(createMenu("File", fileItems, mosaiqueFrame)); 56 add(createMenu("Edit", editItems, mosaiqueFrame)); 57 add(createMenu("View", viewItems, mosaiqueFrame)); 58 add(createMenu("Help", helpItems, mosaiqueFrame)); 59 } 60 61 /*** 62 * Creates a menu. 63 * 64 * @param menuName The name of the menu to appear in the menu bar. 65 * @param menuDefinition The definition of the items in the menu. 66 * @param mosaiqueFrame The mosaique frame providing the action listeners. 67 * @return The menu created. 68 */ 69 private JMenu createMenu( 70 final String menuName, 71 final String[] menuDefinition, 72 final MosaiqueFrame mosaiqueFrame) { 73 JMenu menu = new JMenu(menuName); 74 for (int i = 0; i < menuDefinition.length; i++) { 75 String itemName = menuDefinition[i]; 76 if (itemName.equals("-")) { 77 menu.addSeparator(); 78 } else { 79 JMenuItem item = 80 new JMenuItem(mosaiqueFrame.getAction(itemName)); 81 menu.add(item); 82 } 83 } 84 return menu; 85 } 86 }