mi = menuPatch.add(printAction);
    private static JMenu createPatchMenu(HashMap mnemonics, int mask) {        JMenuItem mi;        JMenu menuPatch = new JMenu("Patch");        mnemonics.put(menuPatch, new Integer(KeyEvent.VK_P));        mi = menuPatch.add(copyAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_COPY, 0));        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, mask));        mi = menuPatch.add(cutAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_CUT, 0));        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, mask));        mi = menuPatch.add(pasteAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PASTE, 0));        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, mask));        mi = menuPatch.add(deleteAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));        menuPatch.addSeparator();        mi = menuPatch.add(sendAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, mask));        menuPatch.add(sendToAction);        menuPatch.add(storeAction);        menuPatch.add(getAction); // phil@muqus.com        menuPatch.addSeparator();        mi = menuPatch.add(editAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, mask));        mi = menuPatch.add(playAction);        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, mask));        menuPatch.addSeparator();        menuPatch.add(reassignAction);        menuPatch.add(extractAction);        menuPatch.addSeparator();        menuPatch.add(newPatchAction);        menuPatch.add(uploadAction);        menuPatch.addMenuListener(new MenuListener() { // need this???            public void menuCanceled(MenuEvent e) {}            public void menuDeselected(MenuEvent e) {}            public void menuSelected(MenuEvent e) {                pasteAction.setEnabled(true);            }        });        return menuPatch;    }