private void initKeyMap() { InputMap map = this.getInputMap(); int shift = InputEvent.SHIFT_MASK; int ctrl = InputEvent.CTRL_MASK; map.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, shift), SikuliEditorKit.deIndentAction); map.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, ctrl), SikuliEditorKit.deIndentAction); }
/** * Convenience method to create a key mask for menu's. * * @param aKeyStroke the key stroke to create a menu key mask for; * @param aMasks the (optional) mask modifiers to use. * @return a keystroke instance. */ public static final KeyStroke createMenuKeyMask(final int aKeyStroke, final int... aMasks) { int modifiers = getMenuShortcutKeyMask(); for (int aMask : aMasks) { modifiers |= aMask; } return KeyStroke.getKeyStroke(aKeyStroke, modifiers); }
public void unbindKey(String keySequence) { KeyStroke ks = KeyStroke.getKeyStroke(keySequence); if (ks == null) { throw new Error("Invalid key sequence \"" + keySequence + "\""); } textView.getKeymap().removeKeyStrokeBinding(ks); }
/** * Convenience method to create a key mask. * * @param aKeyStroke the key stroke to create a key mask for; * @param aMasks the (optional) mask modifiers to use. * @return a keystroke instance. */ public static final KeyStroke createKeyMask(final int aKeyStroke, final int... aMasks) { int modifiers = 0; for (int aMask : aMasks) { modifiers |= aMask; } return KeyStroke.getKeyStroke(aKeyStroke, modifiers); }
// Adds a new keybinding equal to the character provided and the default super key (ctrl/cmd) private static void bind(int Character) { frame .getRootPane() .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put( KeyStroke.getKeyStroke(Character, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "console"); }
public void bindKeyToCommand(String keySequence, LispExpr cmd) { // see Java API for info on keySequence format KeyStroke ks = KeyStroke.getKeyStroke(keySequence); if (ks == null) { throw new Error("Invalid key sequence \"" + keySequence + "\""); } textView.getKeymap().addActionForKeyStroke(ks, new KeyAction(cmd)); }
public static void main(String[] args) { JFrame frame = new JFrame("Plot"); frame.getContentPane().setLayout(new BorderLayout()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel commandPanel = new JPanel(new FlowLayout()); JButton openButton = new JButton("Open Ctrl-O"); JButton plotButton = new JButton("Plot Ctrl-P"); JButton quitButton = new JButton("Quit Ctrl-Q"); quitButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); commandPanel.registerKeyboardAction( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }, KeyStroke.getKeyStroke("control Q"), JComponent.WHEN_IN_FOCUSED_WINDOW); commandPanel.add(openButton); commandPanel.add(plotButton); commandPanel.add(quitButton); frame.getContentPane().add(commandPanel, "North"); GraphPanel graphpanel = new GraphPanel(frame); plotButton.addActionListener(graphpanel); commandPanel.registerKeyboardAction( graphpanel, KeyStroke.getKeyStroke("control P"), JComponent.WHEN_IN_FOCUSED_WINDOW); openButton.addActionListener(graphpanel.getDataPanel()); commandPanel.registerKeyboardAction( graphpanel.getDataPanel(), KeyStroke.getKeyStroke("control O"), JComponent.WHEN_IN_FOCUSED_WINDOW); frame.setVisible(true); frame.pack(); }
// create the menu bar (changed to private) private static JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); menuBar.add(menu); JMenuItem saveItem = new JMenuItem(" Save... "); saveItem.addActionListener(std); saveItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); menu.add(saveItem); return menuBar; }
// ------------------------------------------------------------------ // from Java Swing 1.2 Orielly - Robert Eckstein // ------------------------------------------------------------------ protected JTextComponent updateKeymapForWord(JTextComponent textComp) { // create a new child keymap Keymap map = JTextComponent.addKeymap("NslmMap", textComp.getKeymap()); // define the keystrokeds to be added KeyStroke next = KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, InputEvent.CTRL_MASK, false); // add the new mappings used DefaultEditorKit actions map.addActionForKeyStroke(next, getAction(DefaultEditorKit.nextWordAction)); KeyStroke prev = KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(prev, getAction(DefaultEditorKit.previousWordAction)); KeyStroke selNext = KeyStroke.getKeyStroke( KeyEvent.VK_RIGHT, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(selNext, getAction(DefaultEditorKit.selectionNextWordAction)); KeyStroke selPrev = KeyStroke.getKeyStroke( KeyEvent.VK_LEFT, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(selPrev, getAction(DefaultEditorKit.selectionPreviousWordAction)); KeyStroke find = KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(find, getAction("find")); KeyStroke findAgain = KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(findAgain, getAction("findAgain")); // set the keymap for the text component textComp.setKeymap(map); return (textComp); } // end updateKeymapForWord
// Private helper methods private void createMenuBar() { menuBar = new JMenuBar(); fileMenu = new JMenu("File"); miOpen = new JMenuItem("Open..."); miOpen.setAccelerator( KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.Event.META_MASK)); fileMenu.add(miOpen).setEnabled(false); miOpen.addActionListener(new MenuActionListener()); miSave = new JMenuItem("Save Selected..."); miSave.setAccelerator( KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.Event.META_MASK)); fileMenu.add(miSave).setEnabled(false); miSave.addActionListener(new MenuActionListener()); miSaveAll = new JMenuItem("Save All..."); fileMenu.add(miSaveAll).setEnabled(false); miSaveAll.addActionListener(new MenuActionListener()); menuBar.add(fileMenu); }
public MainFrame() { setContentPane(contentPane); getRootPane().setDefaultButton(buttonOK); buttonOK.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { onOK(); } }); buttonCancel.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }); // call onCancel() when cross is clicked setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { onCancel(); } }); // call onCancel() on ESCAPE contentPane.registerKeyboardAction( new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); btnInput.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { chooseFileFor(btnInput); } }); btnOutput.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { chooseFileFor(btnOutput); } }); }
/** * Returns a keystroke for the specified string. * * @param cmd command * @return keystroke */ public static KeyStroke keyStroke(final GUICommand cmd) { final Object sc = cmd.shortcuts(); if (sc == null) return null; final String scut; if (sc instanceof BaseXKeys[]) { final BaseXKeys[] scs = (BaseXKeys[]) sc; if (scs.length == 0) return null; scut = scs[0].shortCut(); } else { scut = Util.info(sc, META); } final KeyStroke ks = KeyStroke.getKeyStroke(scut); if (ks == null) Util.errln("Could not assign shortcut: " + sc + " / " + scut); return ks; }
public static void makeMenuBar(JFrame frame, final AirspaceBuilderController controller) { JMenuBar menuBar = new JMenuBar(); final JCheckBoxMenuItem resizeNewShapesItem; final JCheckBoxMenuItem enableEditItem; JMenu menu = new JMenu("File"); { JMenuItem item = new JMenuItem("Open..."); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(OPEN); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Open URL..."); item.setActionCommand(OPEN_URL); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Save..."); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(SAVE); item.addActionListener(controller); menu.add(item); menu.addSeparator(); item = new JMenuItem("Load Demo Shapes"); item.setActionCommand(OPEN_DEMO_AIRSPACES); item.addActionListener(controller); menu.add(item); } menuBar.add(menu); menu = new JMenu("Shape"); { JMenu subMenu = new JMenu("New"); for (final AirspaceFactory factory : defaultAirspaceFactories) { JMenuItem item = new JMenuItem(factory.toString()); item.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { controller.createNewEntry(factory); } }); subMenu.add(item); } menu.add(subMenu); resizeNewShapesItem = new JCheckBoxMenuItem("Fit new shapes to viewport"); resizeNewShapesItem.setActionCommand(SIZE_NEW_SHAPES_TO_VIEWPORT); resizeNewShapesItem.addActionListener(controller); resizeNewShapesItem.setState(controller.isResizeNewShapesToViewport()); menu.add(resizeNewShapesItem); enableEditItem = new JCheckBoxMenuItem("Enable shape editing"); enableEditItem.setActionCommand(ENABLE_EDIT); enableEditItem.addActionListener(controller); enableEditItem.setState(controller.isEnableEdit()); menu.add(enableEditItem); } menuBar.add(menu); menu = new JMenu("Selection"); { JMenuItem item = new JMenuItem("Deselect"); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(CLEAR_SELECTION); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Delete"); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); item.setActionCommand(REMOVE_SELECTED); item.addActionListener(controller); menu.add(item); } menuBar.add(menu); frame.setJMenuBar(menuBar); controller.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { if (SIZE_NEW_SHAPES_TO_VIEWPORT.equals((e.getPropertyName()))) { resizeNewShapesItem.setSelected(controller.isResizeNewShapesToViewport()); } else if (ENABLE_EDIT.equals(e.getPropertyName())) { enableEditItem.setSelected(controller.isEnableEdit()); } } }); }
public GUI() { setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK); buttonOK.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) {} }); btA.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bA) { binary++; bA = true; btA.setBackground(Color.RED); } else { bA = false; binary--; btA.setBackground(Color.white); } set(); } }); btB.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bB) { binary += 10; bB = true; btB.setBackground(Color.RED); } else { bB = false; binary -= 10; btB.setBackground(Color.white); } set(); } }); btC.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bC) { binary += 100; bC = true; btC.setBackground(Color.RED); } else { bC = false; binary -= 100; btC.setBackground(Color.white); } set(); } }); btD.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bD) { binary += 1000; bD = true; btD.setBackground(Color.RED); } else { bD = false; binary -= 1000; btD.setBackground(Color.white); } set(); } }); btE.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bE) { binary += 10000; bE = true; btE.setBackground(Color.RED); } else { bE = false; binary -= 10000; btE.setBackground(Color.white); } set(); } }); btF.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bF) { binary += 100000; bF = true; btF.setBackground(Color.RED); } else { bF = false; binary -= 100000; btF.setBackground(Color.white); } set(); } }); btG.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (!bG) { binary += 1000000; bG = true; btG.setBackground(Color.RED); } else { bG = false; binary -= 1000000; btG.setBackground(Color.white); } set(); } }); buttonCancel.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // call onCancel() when cross is clicked setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { onCancel(); } }); // call onCancel() on ESCAPE contentPane.registerKeyboardAction( new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); }
private void initMenu() { JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); // File Menu JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); JMenuItem fileNewItem = new JMenuItem("New", KeyEvent.VK_N); fileNewItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK)); fileMenu.add(fileNewItem); JMenuItem fileOpenItem = new JMenuItem("Open...", KeyEvent.VK_O); fileOpenItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK)); fileMenu.add(fileOpenItem); JMenuItem fileOpenAdjacencyItem = new JMenuItem("Open Adjacency File..."); fileMenu.add(fileOpenAdjacencyItem); JMenuItem fileOpenWeightedAdjacencyItem = new JMenuItem("Open Weighted Adjacency File..."); fileMenu.add(fileOpenWeightedAdjacencyItem); JMenuItem fileOpenXMLItem = new JMenuItem("Open XML File..."); fileMenu.add(fileOpenXMLItem); JMenuItem fileSaveItem = new JMenuItem("Save", KeyEvent.VK_S); fileSaveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); fileMenu.add(fileSaveItem); JMenuItem fileSaveAsItem = new JMenuItem("Save As..."); fileMenu.add(fileSaveAsItem); JMenuItem fileSaveSimpleItem = new JMenuItem("Save Simple Graph..."); fileMenu.add(fileSaveSimpleItem); JMenuItem fileSaveXMLItem = new JMenuItem("Save XML File..."); fileMenu.add(fileSaveXMLItem); JMenuItem filePNGItem = new JMenuItem("Export to png"); fileMenu.add(filePNGItem); JMenuItem fileExitItem = new JMenuItem("Exit", KeyEvent.VK_X); fileExitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.ALT_MASK)); fileMenu.add(fileExitItem); fileExitItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileExit(); } }); fileNewItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileNew(); } }); fileOpenItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileOpen(); } }); fileOpenXMLItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileOpenXML(); } }); fileSaveItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileSave(); } }); fileSaveAsItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileSaveAs(); } }); fileSaveSimpleItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileSaveSimple(); } }); fileSaveXMLItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { fileSaveXML(); } }); filePNGItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { filePNG(); } }); // Edit Menu JMenu editMenu = new JMenu("Edit"); editMenu.setMnemonic(KeyEvent.VK_E); menuBar.add(editMenu); JMenuItem editNodesItem = new JMenuItem("Edit Selected Nodes...", KeyEvent.VK_N); editNodesItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.SHIFT_MASK)); editMenu.add(editNodesItem); JMenuItem editEdgesItem = new JMenuItem("Edit Selected Edges...", KeyEvent.VK_E); editEdgesItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.SHIFT_MASK)); editMenu.add(editEdgesItem); JMenuItem editEdgeTypesItem = new JMenuItem("Edit Edge Types..."); editMenu.add(editEdgeTypesItem); JMenuItem editNodeTypesItem = new JMenuItem("Edit Node Types..."); editMenu.add(editNodeTypesItem); JMenuItem editMoveGraphItem = new JMenuItem("Move Graph..."); editMenu.add(editMoveGraphItem); JMenuItem editAddEdgeBendItem = new JMenuItem("Add Edge Bend"); editMenu.add(editAddEdgeBendItem); JMenuItem editRemoveEdgeBendsItem = new JMenuItem("Remove Edge Bends"); editMenu.add(editRemoveEdgeBendsItem); JMenuItem editSelectAllItem = new JMenuItem("Select All", KeyEvent.VK_A); editSelectAllItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); editMenu.add(editSelectAllItem); editNodesItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.editNodes(gp.getSelection().getNodes()); } }); editEdgesItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.editEdges(gp.getSelection().getEdges()); } }); editEdgeTypesItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.editEdgeTypes(); } }); editNodeTypesItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.editNodeTypes(); } }); editMoveGraphItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.moveGraph(); } }); editAddEdgeBendItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.addEdgeBend(); } }); editRemoveEdgeBendsItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { gp.removeEdgeBends(); } }); editSelectAllItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { editSelectAll(); } }); // View Menu JMenu viewMenu = new JMenu("View"); viewMenu.setMnemonic(KeyEvent.VK_V); menuBar.add(viewMenu); for (GraphView v : gp.getGraphViewList()) { JMenuItem menuItem = new JMenuItem(v.getMenuText(), v.getMnemonicKey()); menuItem.setAccelerator(KeyStroke.getKeyStroke(v.getAcceleratorKey(), 0)); menuItem.addActionListener(this); viewMenu.add(menuItem); } // Experiment Menu JMenu experimentsMenu = new JMenu("Experiments"); experimentsMenu.setMnemonic(KeyEvent.VK_E); menuBar.add(experimentsMenu); for (GraphExperiment ge : gp.getGraphExperimentList()) { JMenuItem menuItem = new JMenuItem(ge.getMenuText(), ge.getMnemonicKey()); menuItem.setAccelerator(KeyStroke.getKeyStroke(ge.getAcceleratorKey(), 0)); menuItem.addActionListener(this); experimentsMenu.add(menuItem); } // Utilities Menu JMenu utilitiesMenu = new JMenu("Utilities"); utilitiesMenu.setMnemonic(KeyEvent.VK_U); menuBar.add(utilitiesMenu); for (GraphUtility u : gp.getGraphUtilityList()) { JMenuItem menuItem = new JMenuItem(u.getMenuText(), u.getMnemonicKey()); menuItem.setAccelerator(KeyStroke.getKeyStroke(u.getAcceleratorKey(), 0)); menuItem.addActionListener(this); utilitiesMenu.add(menuItem); } JMenu layoutMenu = new JMenu("Layout"); layoutMenu.setMnemonic(KeyEvent.VK_L); menuBar.add(layoutMenu); for (GraphDrawer d : gp.getGraphDrawerList()) { JMenuItem menuItem = new JMenuItem(d.getMenuText(), d.getMnemonicKey()); menuItem.setAccelerator(KeyStroke.getKeyStroke(d.getAcceleratorKey(), 0)); menuItem.addActionListener(this); layoutMenu.add(menuItem); } }
public ReverseFlashCard() { // basic init setTitle("WayMemo -Reverse Flash Card Mode"); this.setSize(800, 600); paneCenter = new JPanel(new GridLayout(7, 1)); add(ln, "North"); add(paneCenter, "Center"); add(b2, "West"); add(bReset, "South"); add(b1, "East"); paneCenter.add(l1); paneCenter.add(l2); paneCenter.add(l3); paneCenter.add(l4); paneCenter.add(l5); paneCenter.add(b3); paneCenter.add(pMark); pMark.add(bMark); pMark.add(bUnMark); pMark.add(lt); // text area init Utility.initTextAreaView(l1); Utility.initTextAreaView(l2); Utility.initTextAreaView(l3); Utility.initTextAreaView(l4); Utility.initTextAreaView(l5); // action // Action actionNext = new AbstractAction() { public void actionPerformed(ActionEvent e) { num++; wordDisplay(); } }; b1.getInputMap().put(KeyStroke.getKeyStroke("C"), "pressed"); b1.getActionMap().put("released", actionNext); // Action actionBack = new AbstractAction() { public void actionPerformed(ActionEvent e) { num--; wordDisplay(); } }; b2.getInputMap().put(KeyStroke.getKeyStroke("Z"), "pressed"); b2.getActionMap().put("released", actionBack); // Action actionShow = new AbstractAction() { public void actionPerformed(ActionEvent e) { l1.setText(dtr[num]); l3.setText(d2[num]); l4.setText(d3[num]); l5.setText(d4[num]); } }; b3.getInputMap().put(KeyStroke.getKeyStroke("X"), "pressed"); b3.getActionMap().put("released", actionShow); // // Action actionMark = new AbstractAction() { public void actionPerformed(ActionEvent e) { d1[num] = "[MARKED*]" + d1[num]; l2.setText(d1[num]); } }; bMark.getInputMap().put(KeyStroke.getKeyStroke("S"), "pressed"); bMark.getActionMap().put("released", actionMark); // // // Action actionUnmark = new AbstractAction() { public void actionPerformed(ActionEvent e) { d1[num] = od1[num]; l2.setText(d1[num]); } }; bUnMark.getInputMap().put(KeyStroke.getKeyStroke("F2"), "pressed"); bUnMark.getActionMap().put("released", actionUnmark); // // Action actionReset = new AbstractAction() { public void actionPerformed(ActionEvent e) { num = 0; wordDisplay(); } }; bReset.getInputMap().put(KeyStroke.getKeyStroke("r"), "pressed"); bReset.getActionMap().put("released", actionReset); // // b1.setMnemonic(KeyEvent.VK_C); b2.setMnemonic(KeyEvent.VK_Z); b3.setMnemonic(KeyEvent.VK_X); bMark.setMnemonic(KeyEvent.VK_S); bUnMark.setMnemonic(KeyEvent.VK_D); bReset.setMnemonic(KeyEvent.VK_R); b1.addActionListener(actionNext); b2.addActionListener(actionBack); b3.addActionListener(actionShow); bReset.addActionListener(actionReset); bMark.addActionListener(actionMark); bUnMark.addActionListener(actionUnmark); // // try { this.fileScan(new OpenFileDTR().getPathDTR()); } catch (IOException e) { } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public Viewport(CConn cc_) { cc = cc_; updateTitle(); setFocusable(false); setFocusTraversalKeysEnabled(false); setIconImage(VncViewer.frameImage); UIManager.getDefaults() .put("ScrollPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {})); sp = new JScrollPane(); sp.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); sp.getViewport().setBackground(Color.BLACK); InputMap im = sp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); int ctrlAltShiftMask = Event.SHIFT_MASK | Event.CTRL_MASK | Event.ALT_MASK; if (im != null) { im.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, ctrlAltShiftMask), "unitScrollUp"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, ctrlAltShiftMask), "unitScrollDown"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, ctrlAltShiftMask), "unitScrollLeft"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, ctrlAltShiftMask), "unitScrollRight"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, ctrlAltShiftMask), "scrollUp"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, ctrlAltShiftMask), "scrollDown"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, ctrlAltShiftMask), "scrollLeft"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_END, ctrlAltShiftMask), "scrollRight"); } tb = new Toolbar(cc); add(tb, BorderLayout.PAGE_START); getContentPane().add(sp); if (VncViewer.os.startsWith("mac os x")) { macMenu = new MacMenuBar(cc); setJMenuBar(macMenu); if (VncViewer.getBooleanProperty("turbovnc.lionfs", true)) enableLionFS(); } // NOTE: If Lion FS mode is enabled, then the viewport is only created once // as a non-full-screen viewport, so we tell showToolbar() to ignore the // full-screen state. showToolbar(cc.showToolbar, canDoLionFS); addWindowFocusListener( new WindowAdapter() { public void windowGainedFocus(WindowEvent e) { if (sp.getViewport().getView() != null) sp.getViewport().getView().requestFocusInWindow(); if (isVisible() && keyboardTempUngrabbed) { vlog.info("Keyboard focus regained. Re-grabbing keyboard."); grabKeyboardHelper(true); keyboardTempUngrabbed = false; } } public void windowLostFocus(WindowEvent e) { if (cc.keyboardGrabbed && isVisible()) { vlog.info("Keyboard focus lost. Temporarily ungrabbing keyboard."); grabKeyboardHelper(false); keyboardTempUngrabbed = true; } } }); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { cc.close(); } }); addComponentListener( new ComponentAdapter() { public void componentResized(ComponentEvent e) { if (cc.opts.scalingFactor == Options.SCALE_AUTO || cc.opts.scalingFactor == Options.SCALE_FIXEDRATIO) { if ((sp.getSize().width != cc.desktop.scaledWidth) || (sp.getSize().height != cc.desktop.scaledHeight)) { cc.desktop.setScaledSize(); sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); sp.validate(); if (getExtendedState() != JFrame.MAXIMIZED_BOTH && !cc.opts.fullScreen) { sp.setSize(new Dimension(cc.desktop.scaledWidth, cc.desktop.scaledHeight)); int w = cc.desktop.scaledWidth + VncViewer.insets.left + VncViewer.insets.right; int h = cc.desktop.scaledHeight + VncViewer.insets.top + VncViewer.insets.bottom; if (tb.isVisible()) h += tb.getHeight(); if (cc.opts.scalingFactor == Options.SCALE_FIXEDRATIO) setSize(w, h); } } } else if (cc.opts.desktopSize.mode == Options.SIZE_AUTO && !cc.firstUpdate && !cc.pendingServerResize) { Dimension availableSize = cc.viewport.getAvailableSize(); if (availableSize.width >= 1 && availableSize.height >= 1 && (availableSize.width != cc.desktop.scaledWidth || availableSize.height != cc.desktop.scaledHeight)) { sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); sp.validate(); if (timer != null) timer.stop(); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) { Dimension availableSize = cc.viewport.getAvailableSize(); if (availableSize.width < 1 || availableSize.height < 1) throw new ErrorException("Unexpected zero-size component"); cc.sendDesktopSize(availableSize.width, availableSize.height, true); } }; timer = new Timer(500, actionListener); timer.setRepeats(false); timer.start(); } } else { sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); sp.validate(); } if (cc.desktop.cursor != null) { Cursor cursor = cc.desktop.cursor; if (cursor.hotspot != null) // hotspot will be null until the first cursor update is received // from the server. cc.setCursor( cursor.width(), cursor.height(), cursor.hotspot, (int[]) cursor.data, cursor.mask); } if (((sp.getSize().width > cc.desktop.scaledWidth) || (sp.getSize().height > cc.desktop.scaledHeight)) && cc.opts.desktopSize.mode != Options.SIZE_AUTO) { int w = sp.getSize().width - adjustWidth; int h = sp.getSize().height - adjustHeight; dx = (w <= cc.desktop.scaledWidth) ? 0 : (int) Math.floor((w - cc.desktop.scaledWidth) / 2); dy = (h <= cc.desktop.scaledHeight) ? 0 : (int) Math.floor((h - cc.desktop.scaledHeight) / 2); } else { dx = dy = 0; } repaint(); } }); }
private void setUpMenuBar() { // Set Up Menu Bar JMenuBar menu = new JMenuBar(); // Game Menu JMenu gameMenu = new JMenu("Game"); menu.add(gameMenu); JMenuItem newRandom = new JMenuItem("New Game"); gameMenu.add(newRandom); newRandom.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); newRandom.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { newGame(); } }); gameMenu.addSeparator(); ButtonGroup bg = new ButtonGroup(); JRadioButtonMenuItem size4 = new JRadioButtonMenuItem("4x4 board"); size4.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { myBoardSize = 4; } }); size4.setSelected(true); bg.add(size4); gameMenu.add(size4); JRadioButtonMenuItem size5 = new JRadioButtonMenuItem("5x5 board"); size5.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { myBoardSize = 5; } }); bg.add(size5); gameMenu.add(size5); gameMenu.addSeparator(); JMenuItem gameTime = new JMenuItem("Time (secs)"); gameMenu.add(gameTime); gameTime.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String secs = JOptionPane.showInputDialog(BoggleGUI.this, "time in seconds"); try { int len = Integer.parseInt(secs); myGameLength = len; myProgress.setMaximum(myGameLength); } catch (NumberFormatException e1) { if (secs != null) { showError(secs + " not valid integer value"); } } } }); gameMenu.addSeparator(); JMenuItem quitGame = new JMenuItem("Quit"); gameMenu.add(quitGame); quitGame.setMnemonic('Q'); quitGame.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // Help menu JMenu helpMenu = new JMenu("Help"); menu.add(helpMenu); helpMenu.setMnemonic(KeyEvent.VK_H); JMenuItem aboutGame = new JMenuItem("About..."); helpMenu.add(aboutGame); aboutGame.setMnemonic(KeyEvent.VK_A); aboutGame.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog( BoggleGUI.this, "Compsci Boggle, brought to you\n" + "by educators and students\n" + "including, of course, you.", "About Game", JOptionPane.PLAIN_MESSAGE); } }); setJMenuBar(menu); }
public BundleOptionsFrame(String displayName, String instanceName, List<OptionGroup> options) { setResizable(false); this.displayName = displayName; content = (JComponent) getContentPane(); content.setLayout(new GridBagLayout()); final BundleOptionsFrame frame = this; // Close button Action closeAction = new AbstractAction("Close") { @Override public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }; JButton close_button = new JButton(closeAction); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = currentRow++; c.anchor = GridBagConstraints.LINE_START; c.insets = new Insets(2, 2, 2, 2); content.add(close_button, c); // Escape key binding JComponent root = frame.getRootPane(); root.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close"); root.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke("ctrl W"), "close"); root.getActionMap().put("close", closeAction); if (instanceName != null) { // Predicate name StringOption opt = new StringOption(); opt.setDisplayName("Predicate name"); opt.setDefault(instanceName); instanceNameField = new StringField(opt); instanceNameField.addChangeListener( new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { updateTitle(); } }); addField(instanceNameField); JTextField tf = (JTextField) instanceNameField.getComponent(); tf.selectAll(); tf.requestFocusInWindow(); } else { // We're a codec; no instance name instanceNameField = null; } updateTitle(); // Options ExampleField example = null; for (OptionGroup group : options) { addSeparator(group.getDisplayName()); for (Option option : group.getOptions()) { OptionField field; if (option instanceof BooleanOption) { field = new BooleanField((BooleanOption) option); } else if (option instanceof StringOption) { field = new StringField((StringOption) option); } else if (option instanceof NumberOption) { field = new NumberField((NumberOption) option); } else if (option instanceof ChoiceOption) { field = new ChoiceField((ChoiceOption) option); } else if (option instanceof ExampleOption) { if (example != null) { throw new IllegalArgumentException("Cannot display more than one ExampleOption"); } example = new ExampleField((ExampleOption) option); field = example; } else { throw new IllegalArgumentException("Unknown option type"); } addField(field); optionFields.add(field); } } this.exampleField = example; pack(); }
public JChat() { this.setSize(500, 600); this.setResizable(false); this.setLayout(new BorderLayout()); JPanel topPanel = new JPanel(); topPanel.setLayout(new GridLayout(2, 1)); // set up buttons openChat = new JButton("Open to chat"); openChat.addActionListener(new OpenChat()); chatWith = new JButton("Chat with"); chatWith.addActionListener(new ChatWith()); send = new JButton("send"); send.addActionListener(new Send()); send.setEnabled(false); InputMap inputMap = send.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW); KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); inputMap.put(enter, "ENTER"); send.getActionMap().put("ENTER", new ClickAction(send)); // set up labels pickPort = new JLabel(); pickPort.setText("Pick your port number:"); desPort = new JLabel(); desPort.setText("Or enter a destinaltion port number:"); // set up text fields pickText = new JTextField(); pickText.setPreferredSize(new Dimension(150, 30)); desText = new JTextField(); desText.setPreferredSize(new Dimension(150, 30)); chatText = new JTextField(); chatText.setPreferredSize(new Dimension(400, 30)); chatText.setEnabled(false); JPanel top1 = new JPanel(); top1.add(pickPort); top1.add(pickText); top1.add(openChat); JPanel top2 = new JPanel(); top2.add(desPort); top2.add(desText); top2.add(chatWith); topPanel.add(top1); topPanel.add(top2); chatField = new JTextArea(); chatField.setAutoscrolls(true); chatField.setDragEnabled(true); chatField.setEditable(false); chatField.setAlignmentY(TOP_ALIGNMENT); JPanel bottomPanel = new JPanel(); bottomPanel.add(chatText); bottomPanel.add(send); this.add(topPanel, BorderLayout.NORTH); this.add(chatField, BorderLayout.CENTER); this.add(bottomPanel, BorderLayout.SOUTH); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
// ------------------------------------------------------------------ // from Java Swing 1.2 Orielly - Robert Eckstein // ------------------------------------------------------------------ protected JTextComponent updateKeymapForEmacs(JTextComponent textComp) { // note: it does not look like a key can do more than one action // thus no modes. // todo: not all of these are correct. such as ctrlK // todo: add saving - ctrlXS // create a new child keymap Keymap map = JTextComponent.addKeymap("NslmMap", textComp.getKeymap()); KeyStroke selNext = KeyStroke.getKeyStroke( KeyEvent.VK_RIGHT, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(selNext, getAction(DefaultEditorKit.selectionNextWordAction)); KeyStroke selPrev = KeyStroke.getKeyStroke( KeyEvent.VK_LEFT, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(selPrev, getAction(DefaultEditorKit.selectionPreviousWordAction)); KeyStroke next = KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(next, getAction(DefaultEditorKit.forwardAction)); KeyStroke prev = KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(prev, getAction(DefaultEditorKit.backwardAction)); KeyStroke selectionDown = KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(selectionDown, getAction(DefaultEditorKit.downAction)); KeyStroke selectionUp = KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(selectionUp, getAction(DefaultEditorKit.upAction)); KeyStroke pageDown = KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(pageDown, getAction(DefaultEditorKit.pageDownAction)); KeyStroke pageUp = KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(pageUp, getAction(DefaultEditorKit.pageUpAction)); KeyStroke endDoc = KeyStroke.getKeyStroke( KeyEvent.VK_GREATER, InputEvent.META_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(endDoc, getAction(DefaultEditorKit.endAction)); KeyStroke beginingDoc = KeyStroke.getKeyStroke( KeyEvent.VK_LESS, InputEvent.META_MASK | InputEvent.SHIFT_MASK, false); map.addActionForKeyStroke(beginingDoc, getAction(DefaultEditorKit.beginAction)); // the VK_SPACE and VK_W not working as in Emacs - space deleting // KeyStroke // selectionStart=KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,InputEvent.CTRL_MASK,false); // map.addActionForKeyStroke(selectionStart,getAction(DefaultEditorKit.selectionForwardAction)); // //todo: setCharPosAction // this is doing nothing because only one char to can be assigned to cut // KeyStroke cut1=KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK,false); // map.addActionForKeyStroke(cut1,getAction(DefaultEditorKit.cutAction)); // if we do save as XS, this will have to change KeyStroke cut = KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(cut, getAction(DefaultEditorKit.cutAction)); KeyStroke paste = KeyStroke.getKeyStroke(KeyEvent.VK_Y, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(paste, getAction(DefaultEditorKit.pasteAction)); KeyStroke moveToEndLine = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(moveToEndLine, getAction(DefaultEditorKit.endLineAction)); // not emacs like KeyStroke selWord = KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(selWord, getAction(DefaultEditorKit.selectWordAction)); KeyStroke selLine = KeyStroke.getKeyStroke(KeyEvent.VK_K, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(selLine, getAction(DefaultEditorKit.selectLineAction)); KeyStroke delNext = KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(delNext, getAction(DefaultEditorKit.deleteNextCharAction)); KeyStroke insertLine = KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(insertLine, getAction(DefaultEditorKit.insertBreakAction)); KeyStroke searchBackward = KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(searchBackward, getAction("findAgain")); KeyStroke searchForward = KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK, false); map.addActionForKeyStroke(searchForward, getAction("findAgain")); // set the keymap for the text component textComp.setKeymap(map); return (textComp); } // end updateKeymapForEmacs
/** 程式的GUI畫面配置,並登入按鈕、選項監聽。 */ private void GUI() { JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("File"); menuBar.add(fileMenu); JMenuItem file_newMenuItem = new JMenuItem("New"); file_newMenuItem.setIcon( new ImageIcon( DocumentEditGUI.class.getResource("/javax/swing/plaf/metal/icons/ocean/file.gif"))); file_newMenuItem.addActionListener(new SystemFileNew()); fileMenu.add(file_newMenuItem); JMenuItem file_openMenuItem = new JMenuItem("Open File..."); file_openMenuItem.setIcon( new ImageIcon( DocumentEditGUI.class.getResource( "/com/sun/java/swing/plaf/windows/icons/TreeOpen.gif"))); file_openMenuItem.addActionListener(new SystemFileOpen()); fileMenu.add(file_openMenuItem); JMenu file_saveMenu = new JMenu("Save"); fileMenu.add(file_saveMenu); JMenuItem file_save_saveMenuItem = new JMenuItem("Save"); file_save_saveMenuItem.setIcon( new ImageIcon( DocumentEditGUI.class.getResource( "/com/sun/java/swing/plaf/windows/icons/FloppyDrive.gif"))); file_save_saveMenuItem.addActionListener(new SystemFileSave()); file_save_saveMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK)); file_saveMenu.add(file_save_saveMenuItem); JMenuItem file_save_save_asMenuItem = new JMenuItem("Save as"); file_save_save_asMenuItem.addActionListener(new SystemFileSaveAS()); file_saveMenu.add(file_save_save_asMenuItem); JMenuItem file_save_save_allMenuItem = new JMenuItem("Save all"); file_save_save_allMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK)); file_save_save_allMenuItem.addActionListener(new SystemFileSaveAll()); file_saveMenu.add(file_save_save_allMenuItem); JMenu file_closeMenu = new JMenu("Close"); fileMenu.add(file_closeMenu); JMenuItem file_close_closeMenuItem = new JMenuItem("Close File"); file_close_closeMenuItem.addActionListener(new SystemFileClose()); file_closeMenu.add(file_close_closeMenuItem); JMenuItem file_close_close_all_fileMenuItem = new JMenuItem("Close all File"); file_close_close_all_fileMenuItem.addActionListener(new SystemFileCloseAll()); file_closeMenu.add(file_close_close_all_fileMenuItem); JMenuItem file_exitMenuItem = new JMenuItem("Exit"); file_exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, InputEvent.ALT_MASK)); file_exitMenuItem.addActionListener(new SystemExit()); fileMenu.add(file_exitMenuItem); JMenu editMenu = new JMenu("Edit"); menuBar.add(editMenu); replace_searchMenuItem.addActionListener(replace_search); replace_searchMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK)); editMenu.add(replace_searchMenuItem); SystemEditCut_Copy_Paste cut_copy_paste = new SystemEditCut_Copy_Paste(); cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); cutMenuItem.addActionListener(cut_copy_paste); editMenu.add(cutMenuItem); copyMenutem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); copyMenutem.addActionListener(cut_copy_paste); editMenu.add(copyMenutem); pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); pasteMenuItem.addActionListener(cut_copy_paste); editMenu.add(pasteMenuItem); JMenuItem pathMenuItem = new JMenuItem("Default AutoSave-Path"); pathMenuItem.addActionListener(new SystemEditSetPath()); editMenu.add(pathMenuItem); JMenu helpMenu = new JMenu("Help"); menuBar.add(helpMenu); JMenuItem HelpMenuItem = new JMenuItem("Help"); HelpMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, help, "Help!", JOptionPane.INFORMATION_MESSAGE); } }); helpMenu.add(HelpMenuItem); JMenuItem AboutNewMenuItem = new JMenuItem("About"); AboutNewMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, about, "About...", JOptionPane.INFORMATION_MESSAGE); } }); helpMenu.add(AboutNewMenuItem); JToolBar toolBar = new JToolBar(); getContentPane().add(toolBar, BorderLayout.NORTH); scrollPane.setViewportView(td); JButton newFileButton = new JButton("New"); newFileButton.setIcon( new ImageIcon( DocumentEditGUI.class.getResource("/javax/swing/plaf/metal/icons/ocean/file.gif"))); newFileButton.setToolTipText("New File."); newFileButton.addActionListener(new SystemFileNew()); toolBar.add(newFileButton); JButton openFileButton = new JButton("Open"); openFileButton.setIcon( new ImageIcon( DocumentEditGUI.class.getResource( "/javax/swing/plaf/metal/icons/ocean/directory.gif"))); openFileButton.setToolTipText("Open File."); openFileButton.addActionListener(new SystemFileOpen()); toolBar.add(openFileButton); JButton save_asFileButton = new JButton("Save as"); save_asFileButton.setToolTipText("Save as File."); save_asFileButton.addActionListener(new SystemFileSaveAS()); toolBar.add(save_asFileButton); JButton saveFileButton = new JButton("Save"); saveFileButton.setIcon( new ImageIcon( DocumentEditGUI.class.getResource("/javax/swing/plaf/metal/icons/ocean/floppy.gif"))); saveFileButton.setToolTipText("Savet his File."); saveFileButton.addActionListener(new SystemFileSave()); toolBar.add(saveFileButton); JButton save_allFileButton = new JButton("Save all"); save_allFileButton.setToolTipText("Save all File."); save_allFileButton.addActionListener(new SystemFileSaveAll()); toolBar.add(save_allFileButton); JButton closeButton = new JButton("Close"); closeButton.setToolTipText("Close this file."); closeButton.addActionListener(new SystemFileClose()); toolBar.add(closeButton); JButton close_allButton = new JButton("Close all"); close_allButton.setToolTipText("Close al File."); close_allButton.addActionListener(new SystemFileCloseAll()); toolBar.add(close_allButton); }
/** * Constructor, initialises the editor components. * * @param initialText The initial text to be displayed in the editor. * @param handler The GUI handler for this component. */ public GUITextModelEditor(String initialText, GUIMultiModelHandler handler) { this.handler = handler; setLayout(new BorderLayout()); // Setup the editor with it's custom editor kits. To switch between // editor kits just use setContentType() for the desired content type. editor = new JEditorPane() { @Override public String getToolTipText(MouseEvent event) { if (parseError != null) { try { int offset = this.viewToModel(new Point(event.getX(), event.getY())); int startOffset = computeDocumentOffset(parseError.getBeginLine(), parseError.getBeginColumn()); int endOffset = computeDocumentOffset(parseError.getEndLine(), parseError.getEndColumn()) + 1; if (offset >= startOffset && offset <= endOffset) return parseError.getMessage(); } catch (BadLocationException e) { } } return null; } }; editor.setToolTipText("dummy"); editor.setEditorKitForContentType("text/prism", new PrismEditorKit(handler)); editor.setEditorKitForContentType("text/pepa", new PepaEditorKit(handler)); // The default editor kit is the Prism one. editor.setContentType("text/prism"); editor.setBackground(Color.white); editor.addMouseListener(editorMouseListener); editor.setEditable(true); editor.setText(initialText); editor.getDocument().addDocumentListener(this); editor.addCaretListener( new CaretListener() { public void caretUpdate(CaretEvent e) { GUITextModelEditor.this .handler .getGUIPlugin() .getSelectionChangeHandler() .notifyListeners(new GUIEvent(1)); } }); editor.getDocument().putProperty(PlainDocument.tabSizeAttribute, new Integer(4)); editor.addMouseListener(this); errorHighlightPainter = new DefaultHighlighter.DefaultHighlightPainter(new Color(255, 192, 192)); undoManager = new GUIUndoManager(GUIPrism.getGUI()); undoManager.setLimit(200); // Setup the scrollpane editorScrollPane = new JScrollPane(editor); add(editorScrollPane, BorderLayout.CENTER); gutter = new GUITextModelEditorGutter(editor); // Get the 'show line numbers' setting to determine // if the line numbers should be shown. showLineNumbersSetting = handler .getGUIPlugin() .getPrism() .getSettings() .getBoolean(PrismSettings.MODEL_SHOW_LINE_NUMBERS); if (showLineNumbersSetting) { editorScrollPane.setRowHeaderView(gutter); } // Add a Prism settings listener to catch changes made to the // 'show line numbers' setting. handler .getGUIPlugin() .getPrism() .getSettings() .addSettingsListener( new PrismSettingsListener() { public void notifySettings(PrismSettings settings) { // Check if the setting has changed. if (settings.getBoolean(PrismSettings.MODEL_SHOW_LINE_NUMBERS) != showLineNumbersSetting) { showLineNumbersSetting = !showLineNumbersSetting; if (showLineNumbersSetting) { editorScrollPane.setRowHeaderView(gutter); } else { editorScrollPane.setRowHeaderView(null); } } } }); // initialize the actions for the context menu initActions(); // method to initialize the context menu popup initContextMenu(); InputMap inputMap = editor.getInputMap(); inputMap.clear(); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_undo"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_undo"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_redo"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_selectall"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_delete"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_cut"); inputMap.put( KeyStroke.getKeyStroke( KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | java.awt.event.InputEvent.SHIFT_MASK), "prism_redo"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_paste"); inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "prism_jumperr"); ActionMap actionMap = editor.getActionMap(); actionMap.put("prism_undo", GUIPrism.getClipboardPlugin().getUndoAction()); actionMap.put("prism_redo", GUIPrism.getClipboardPlugin().getRedoAction()); actionMap.put("prism_selectall", GUIPrism.getClipboardPlugin().getSelectAllAction()); actionMap.put("prism_cut", GUIPrism.getClipboardPlugin().getCutAction()); actionMap.put("prism_copy", GUIPrism.getClipboardPlugin().getCopyAction()); actionMap.put("prism_paste", GUIPrism.getClipboardPlugin().getPasteAction()); actionMap.put("prism_delete", GUIPrism.getClipboardPlugin().getDeleteAction()); actionMap.put("prism_jumperr", actionJumpToError); // Attempt to programmatically allow all accelerators /*ArrayList plugins = ((GUIMultiModel)handler.getGUIPlugin()).getGUI().getPlugins(); Iterator it = plugins.iterator(); while (it.hasNext()) { GUIPlugin plugin = ((GUIPlugin)it.next()); System.out.println(plugin.getName()); JMenu firstMenu = plugin.getMenu(); Stack<MenuElement> menuStack = new Stack<MenuElement>(); menuStack.add(firstMenu); while (!menuStack.empty()) { MenuElement menu = menuStack.pop(); if (menu instanceof JMenuItem) { JMenuItem menuItem = ((JMenuItem)menu); KeyStroke accelerator = menuItem.getAccelerator(); Action action = menuItem.getAction(); if (action != null && accelerator != null && menuItem.getText() != null) { System.out.println(menuItem.getText() + " " + menuItem.getName()); inputMap.put(accelerator, "prism_" + menuItem.getText()); actionMap.put("prism_" + menuItem.getText(), action); } } MenuElement[] subelements = menu.getSubElements(); if (subelements != null) { for (int i = 0; i < subelements.length; i++) menuStack.push(subelements[i]); } } }*/ editor.getDocument().addUndoableEditListener(undoManager); editor .getDocument() .addUndoableEditListener( new UndoableEditListener() { public void undoableEditHappened(UndoableEditEvent e) { System.out.println("adding undo edit"); } }); }
/** The graphic handling and deployment. */ private void initComponents() { jDesktopPane1 = new javax.swing.JDesktopPane(); jInternalFrame1 = new javax.swing.JInternalFrame(); tf = new javax.swing.JTextField(); b1 = new javax.swing.JButton(); jInternalFrame3 = new javax.swing.JInternalFrame(); ta = new javax.swing.JTextArea(); jsp_ta = new javax.swing.JScrollPane(ta); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem3 = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JSeparator(); jMenuItem4 = new javax.swing.JMenuItem(); jInternalFrame1 .getContentPane() .setLayout( new javax.swing.BoxLayout( jInternalFrame1.getContentPane(), javax.swing.BoxLayout.X_AXIS)); jInternalFrame1.setIconifiable(true); jInternalFrame1.setMaximizable(true); jInternalFrame1.setResizable(true); jInternalFrame1.setTitle("Message editor"); jInternalFrame1.setToolTipText( "Move and resize all of these to make the chat room appearance match your preferences."); jInternalFrame1.setVisible(true); tf.setFont(new java.awt.Font("Lucida Sans", 0, 12)); jInternalFrame1.getContentPane().add(tf); b1.setText("Send Message"); jInternalFrame1.getContentPane().add(b1); jInternalFrame1.setBounds(10, 10, 440, 60); jDesktopPane1.add(jInternalFrame1, javax.swing.JLayeredPane.DEFAULT_LAYER); jInternalFrame3.setIconifiable(true); jInternalFrame3.setMaximizable(true); jInternalFrame3.setResizable(true); jInternalFrame3.setTitle("Messages"); jInternalFrame3.setToolTipText( "Move and resize all of these to make the chat room appearance match your preferences."); jInternalFrame3.setVisible(true); ta.setBackground(new Color(255, 255, 255)); ta.setEditable(false); ta.setFont(new java.awt.Font("Lucida Sans", 0, 12)); // jsp_ta.setAutoscrolls(true); jsp_ta.setDoubleBuffered(true); jInternalFrame3.getContentPane().add(jsp_ta, java.awt.BorderLayout.CENTER); jInternalFrame3.setBounds(10, 80, 420, 240); jDesktopPane1.add(jInternalFrame3, javax.swing.JLayeredPane.DEFAULT_LAYER); getContentPane().add(jDesktopPane1, java.awt.BorderLayout.CENTER); jMenu1.setText("Private room options"); jMenu1.setMnemonic(KeyEvent.VK_O); jMenu1.setToolTipText("Choose some options."); jMenuItem3.setText("Save conversation"); jMenuItem3.setMnemonic(KeyEvent.VK_S); jMenuItem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); jMenu1.add(jMenuItem3); jMenu1.add(jSeparator1); jMenuItem4.setText("Exit"); jMenuItem4.setMnemonic(KeyEvent.VK_E); jMenuItem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK)); jMenu1.add(jMenuItem4); jMenuBar1.add(jMenu1); setJMenuBar(jMenuBar1); this.pack(); b1.addActionListener(this); tf.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); posx = (int) Math.random() * 640; posy = (int) Math.random() * 480; this.pack(); this.setSize(dimx, dimy); this.setLocation(posx, posy); this.show(); }
/** Helper method to initialize the actions used for the buttons. */ private void initActions() { /*actionUndo = new AbstractAction() { public void actionPerformed(ActionEvent ae) { try { // do redo undoManager.undo(); // notify undo manager/toolbar of change GUIPrism.getGUI().notifyEventListeners( new GUIClipboardEvent(GUIClipboardEvent.UNDOMANAGER_CHANGE, GUIPrism.getGUI().getFocussedPlugin().getFocussedComponent())); } catch (CannotUndoException ex) { //GUIPrism.getGUI().getMultiLogger().logMessage(PrismLogLevel.PRISM_ERROR, ex.getMessage()); } } }; actionUndo.putValue(Action.LONG_DESCRIPTION, "Undo the most recent action."); actionUndo.putValue(Action.NAME, "Undo"); actionUndo.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallUndo.png")); actionRedo = new AbstractAction() { public void actionPerformed(ActionEvent ae) { try { // do redo undoManager.redo(); // notify undo manager/toolbar of change GUIPrism.getGUI().notifyEventListeners( new GUIClipboardEvent(GUIClipboardEvent.UNDOMANAGER_CHANGE, GUIPrism.getGUI().getFocussedPlugin().getFocussedComponent())); } catch (CannotRedoException ex) { //GUIPrism.getGUI().getMultiLogger().logMessage(PrismLogLevel.PRISM_ERROR, ex.getMessage()); } } }; actionRedo.putValue(Action.LONG_DESCRIPTION, "Redos the most recent undo"); actionRedo.putValue(Action.NAME, "Redo"); actionRedo.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallRedo.png")); */ actionJumpToError = new AbstractAction() { public void actionPerformed(ActionEvent ae) { jumpToError(); } }; actionJumpToError.putValue(Action.NAME, "Jump to error"); actionJumpToError.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("tinyError.png")); actionJumpToError.putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( KeyEvent.VK_E, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); // search and replace action actionSearch = new AbstractAction() { public void actionPerformed(ActionEvent ae) { /* // System.out.println("search button pressed"); if (GUIMultiModelHandler.isDoingSearch()) { } else { try { GUIMultiModelHandler.setDoingSearch(true); FindReplaceForm.launch(GUIPrism.getGUI().getMultiModel()); } catch (PluginNotFoundException pnfe) { GUIPrism.getGUI().getMultiLogger().logMessage(prism.log.PrismLogLevel.PRISM_ERROR, pnfe.getMessage()); } } */ } }; actionSearch.putValue(Action.LONG_DESCRIPTION, "Opens a find and replace dialog."); // actionSearch.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("find.png")); actionSearch.putValue(Action.NAME, "Find/Replace"); // actionSearch.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_R, // Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); insertDTMC = new AbstractAction() { public void actionPerformed(ActionEvent ae) { int caretPosition = editor.getCaretPosition(); try { editor.getDocument().insertString(caretPosition, "dtmc", new SimpleAttributeSet()); } catch (BadLocationException ble) { // todo log? } } }; insertDTMC.putValue( Action.LONG_DESCRIPTION, "Marks this model as a \"Discrete-Time Markov Chain\""); // actionSearch.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("find.png")); insertDTMC.putValue(Action.NAME, "Probabilistic (DTMC)"); insertCTMC = new AbstractAction() { public void actionPerformed(ActionEvent ae) { int caretPosition = editor.getCaretPosition(); try { editor.getDocument().insertString(caretPosition, "ctmc", new SimpleAttributeSet()); } catch (BadLocationException ble) { // todo log? } } }; insertCTMC.putValue( Action.LONG_DESCRIPTION, "Marks this model as a \"Continous-Time Markov Chain\""); // actionSearch.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("find.png")); insertCTMC.putValue(Action.NAME, "Stochastic (CTMC)"); insertMDP = new AbstractAction() { public void actionPerformed(ActionEvent ae) { int caretPosition = editor.getCaretPosition(); try { editor.getDocument().insertString(caretPosition, "mdp", new SimpleAttributeSet()); } catch (BadLocationException ble) { // todo log? } } }; insertMDP.putValue( Action.LONG_DESCRIPTION, "Marks this model as a \"Markov Decision Process\""); // actionSearch.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("find.png")); insertMDP.putValue(Action.NAME, "Non-deterministic (MDP)"); }
EditFrame(RopeFrame parent) { super(parent); // Implement a smarter way to set the initial frame position and size setLocation(0, 0); setSize(670, 705); try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } sourceArea.addCaretListener(this); browseButton.addActionListener(this); optionsButton.addActionListener(this); assembleButton.addActionListener(this); saveButton.addActionListener(this); messageList.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent event) { highlightError(messageList.locationToIndex(event.getPoint())); } }); undoMgr = new CompoundUndoManager(sourceArea); undoAction = undoMgr.getUndoAction(); redoAction = undoMgr.getRedoAction(); undoMgr.updateUndoAction = new UpdateUndoAction(); undoMgr.updateRedoAction = new UpdateRedoAction(); document = sourceArea.getDocument(); ActionMap am = sourceArea.getActionMap(); InputMap im = sourceArea.getInputMap(JComponent.WHEN_FOCUSED); // Remove automatic key bindings because we want them controlled by menu items im.put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, RopeHelper.modifierMaks), "none"); im.put( KeyStroke.getKeyStroke(KeyEvent.VK_Z, RopeHelper.modifierMaks + InputEvent.SHIFT_MASK), "none"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, RopeHelper.modifierMaks), "none"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, RopeHelper.modifierMaks), "none"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, RopeHelper.modifierMaks), "none"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, RopeHelper.modifierMaks), "none"); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_L, RopeHelper.modifierMaks), "none"); // Set custom binding action for tab key String action = "tabKeyAction"; im.put(KeyStroke.getKeyStroke("TAB"), action); am.put( action, new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { try { int caretPos = sourceArea.getCaretPosition(); int lineNum = sourceArea.getLineOfOffset(caretPos); int startLine = sourceArea.getLineStartOffset(lineNum); int endLine = sourceArea.getLineEndOffset(lineNum); int linePos = caretPos - startLine; if (linePos >= 39 && linePos < 79) { caretPos = startLine + linePos + 10 - ((linePos + 1) % 10); } else if (linePos >= 20 && linePos <= 39) { caretPos = startLine + 39; } else if (linePos >= 15 && linePos <= 19) { caretPos = startLine + 20; } else if (linePos >= 5 && linePos <= 14) { caretPos = startLine + 15; } else { caretPos = startLine + 5; } // If the line is shorter than the new position fo the caret add enough spaces... if (caretPos > endLine) { StringBuilder str = new StringBuilder(); int size = caretPos - endLine; while (size-- >= 0) { str.append(' '); } document.insertString(endLine - 1, str.toString(), null); } sourceArea.setCaretPosition(caretPos); } catch (BadLocationException ex) { ex.printStackTrace(); } } }); // Set custom binding action for return/enter key String actionKey = "backspaceKeyAction"; im.put(KeyStroke.getKeyStroke("BACK_SPACE"), actionKey); am.put( actionKey, new AbstractAction() // How can I get the original action? { private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { try { int caretPos = sourceArea.getCaretPosition(); int lineNum = sourceArea.getLineOfOffset(caretPos); int startLine = sourceArea.getLineStartOffset(lineNum); int endLine = sourceArea.getLineEndOffset(lineNum); int linePos = caretPos - startLine; if (linePos == 15) { int endPos = 5; int charPos = linePos; for (; charPos > endPos; charPos--) { char ch = sourceArea.getText().charAt((startLine + charPos) - 1); if (!Character.isWhitespace(ch)) { break; } } sourceArea.setCaretPosition(startLine + charPos); } else { int startSel = sourceArea.getSelectionStart(); int endSel = sourceArea.getSelectionEnd(); if (startSel == endSel) { startSel = caretPos - 1; endSel = caretPos; } StringBuilder sb = new StringBuilder(sourceArea.getText()); sb.replace(startSel, endSel, ""); sourceArea.setText(sb.toString()); sourceArea.setCaretPosition(startSel); } } catch (BadLocationException ex) { ex.printStackTrace(); } } }); // Set custom binding action for return/enter key action = "enterKeyAction"; im.put(KeyStroke.getKeyStroke("ENTER"), action); am.put( action, new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { try { int caretPos = sourceArea.getCaretPosition(); int lineNum = sourceArea.getLineOfOffset(caretPos); int startLine = sourceArea.getLineStartOffset(lineNum); int linePos = caretPos - startLine; if (linePos >= 5) { document.insertString(caretPos, "\n ", null); } else { document.insertString(caretPos, "\n", null); } } catch (BadLocationException ex) { ex.printStackTrace(); } } }); document.addDocumentListener( new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { setSourceChanged(true); } @Override public void removeUpdate(DocumentEvent e) { setSourceChanged(true); } @Override public void changedUpdate(DocumentEvent e) { setSourceChanged(true); } }); }
/** Adds the menu items to the menuber. */ protected void arrangeMenu() { // Build the first menu. fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); viewMenu = new JMenu("View"); viewMenu.setMnemonic(KeyEvent.VK_V); menuBar.add(viewMenu); runMenu = new JMenu("Run"); runMenu.setMnemonic(KeyEvent.VK_R); menuBar.add(runMenu); // Build the second menu. helpMenu = new JMenu("Help"); helpMenu.setMnemonic(KeyEvent.VK_H); menuBar.add(helpMenu); programMenuItem = new JMenuItem("Load Program", KeyEvent.VK_O); programMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { programMenuItem_actionPerformed(); } }); fileMenu.add(programMenuItem); scriptMenuItem = new JMenuItem("Load Script", KeyEvent.VK_P); scriptMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scriptMenuItem_actionPerformed(); } }); fileMenu.add(scriptMenuItem); fileMenu.addSeparator(); exitMenuItem = new JMenuItem("Exit", KeyEvent.VK_X); exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK)); exitMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { exitMenuItem_actionPerformed(); } }); fileMenu.add(exitMenuItem); viewMenu.addSeparator(); ButtonGroup animationRadioButtons = new ButtonGroup(); animationSubMenu = new JMenu("Animate"); animationSubMenu.setMnemonic(KeyEvent.VK_A); viewMenu.add(animationSubMenu); partAnimMenuItem = new JRadioButtonMenuItem("Program flow"); partAnimMenuItem.setMnemonic(KeyEvent.VK_P); partAnimMenuItem.setSelected(true); partAnimMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { partAnimMenuItem_actionPerformed(); } }); animationRadioButtons.add(partAnimMenuItem); animationSubMenu.add(partAnimMenuItem); fullAnimMenuItem = new JRadioButtonMenuItem("Program & data flow"); fullAnimMenuItem.setMnemonic(KeyEvent.VK_D); fullAnimMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { fullAnimMenuItem_actionPerformed(); } }); animationRadioButtons.add(fullAnimMenuItem); animationSubMenu.add(fullAnimMenuItem); noAnimMenuItem = new JRadioButtonMenuItem("No Animation"); noAnimMenuItem.setMnemonic(KeyEvent.VK_N); noAnimMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { noAnimMenuItem_actionPerformed(); } }); animationRadioButtons.add(noAnimMenuItem); animationSubMenu.add(noAnimMenuItem); ButtonGroup additionalDisplayRadioButtons = new ButtonGroup(); additionalDisplaySubMenu = new JMenu("View"); additionalDisplaySubMenu.setMnemonic(KeyEvent.VK_V); viewMenu.add(additionalDisplaySubMenu); scriptDisplayMenuItem = new JRadioButtonMenuItem("Script"); scriptDisplayMenuItem.setMnemonic(KeyEvent.VK_S); scriptDisplayMenuItem.setSelected(true); scriptDisplayMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scriptDisplayMenuItem_actionPerformed(); } }); additionalDisplayRadioButtons.add(scriptDisplayMenuItem); additionalDisplaySubMenu.add(scriptDisplayMenuItem); outputMenuItem = new JRadioButtonMenuItem("Output"); outputMenuItem.setMnemonic(KeyEvent.VK_O); outputMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { outputMenuItem_actionPerformed(); } }); additionalDisplayRadioButtons.add(outputMenuItem); additionalDisplaySubMenu.add(outputMenuItem); compareMenuItem = new JRadioButtonMenuItem("Compare"); compareMenuItem.setMnemonic(KeyEvent.VK_C); compareMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { compareMenuItem_actionPerformed(); } }); additionalDisplayRadioButtons.add(compareMenuItem); additionalDisplaySubMenu.add(compareMenuItem); noAdditionalDisplayMenuItem = new JRadioButtonMenuItem("Screen"); noAdditionalDisplayMenuItem.setMnemonic(KeyEvent.VK_N); noAdditionalDisplayMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { noAdditionalDisplayMenuItem_actionPerformed(); } }); additionalDisplayRadioButtons.add(noAdditionalDisplayMenuItem); additionalDisplaySubMenu.add(noAdditionalDisplayMenuItem); ButtonGroup formatRadioButtons = new ButtonGroup(); numericFormatSubMenu = new JMenu("Format"); numericFormatSubMenu.setMnemonic(KeyEvent.VK_F); viewMenu.add(numericFormatSubMenu); decMenuItem = new JRadioButtonMenuItem("Decimal"); decMenuItem.setMnemonic(KeyEvent.VK_D); decMenuItem.setSelected(true); decMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { decMenuItem_actionPerformed(); } }); formatRadioButtons.add(decMenuItem); numericFormatSubMenu.add(decMenuItem); hexaMenuItem = new JRadioButtonMenuItem("Hexadecimal"); hexaMenuItem.setMnemonic(KeyEvent.VK_H); hexaMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { hexaMenuItem_actionPerformed(); } }); formatRadioButtons.add(hexaMenuItem); numericFormatSubMenu.add(hexaMenuItem); binMenuItem = new JRadioButtonMenuItem("Binary"); binMenuItem.setMnemonic(KeyEvent.VK_B); binMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { binMenuItem_actionPerformed(); } }); formatRadioButtons.add(binMenuItem); numericFormatSubMenu.add(binMenuItem); viewMenu.addSeparator(); singleStepMenuItem = new JMenuItem("Single Step", KeyEvent.VK_S); singleStepMenuItem.setAccelerator(KeyStroke.getKeyStroke("F11")); singleStepMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { singleStepMenuItem_actionPerformed(); } }); runMenu.add(singleStepMenuItem); ffwdMenuItem = new JMenuItem("Run", KeyEvent.VK_F); ffwdMenuItem.setAccelerator(KeyStroke.getKeyStroke("F5")); ffwdMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { ffwdMenuItem_actionPerformed(); } }); runMenu.add(ffwdMenuItem); stopMenuItem = new JMenuItem("Stop", KeyEvent.VK_T); stopMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F5")); stopMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { stopMenuItem_actionPerformed(); } }); runMenu.add(stopMenuItem); rewindMenuItem = new JMenuItem("Reset", KeyEvent.VK_R); rewindMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { rewindMenuItem_actionPerformed(); } }); runMenu.add(rewindMenuItem); runMenu.addSeparator(); breakpointsMenuItem = new JMenuItem("Breakpoints", KeyEvent.VK_B); breakpointsMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { breakpointsMenuItem_actionPerformed(); } }); runMenu.add(breakpointsMenuItem); profilerMenuItem = new JMenuItem("Profiler", KeyEvent.VK_I); profilerMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { showProfiler(); } }); profilerMenuItem.setEnabled(false); runMenu.add(profilerMenuItem); usageMenuItem = new JMenuItem("Usage", KeyEvent.VK_U); usageMenuItem.setAccelerator(KeyStroke.getKeyStroke("F1")); usageMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { usageMenuItem_actionPerformed(); } }); helpMenu.add(usageMenuItem); aboutMenuItem = new JMenuItem("About ...", KeyEvent.VK_A); aboutMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { aboutMenuItem_actionPerformed(); } }); helpMenu.add(aboutMenuItem); }
// Rebuild the contents of the menu based on current program state public void UpdateMenuBar() { JMenu menu; int i; menuBar.removeAll(); // Build the first menu. menu = new JMenu("File"); menu.setMnemonic(KeyEvent.VK_F); menuBar.add(menu); buttonOpenFile = new JMenuItem("Open File...", KeyEvent.VK_O); buttonOpenFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.ALT_MASK)); buttonOpenFile.getAccessibleContext().setAccessibleDescription("Open a g-code file..."); buttonOpenFile.addActionListener(this); menu.add(buttonOpenFile); menu.addSeparator(); // list recent files if (recentFiles != null && recentFiles.length > 0) { // list files here for (i = 0; i < recentFiles.length; ++i) { if (recentFiles[i] == null || recentFiles[i].length() == 0) break; buttonRecent[i] = new JMenuItem((1 + i) + " " + recentFiles[i], KeyEvent.VK_1 + i); if (buttonRecent[i] != null) { buttonRecent[i].addActionListener(this); menu.add(buttonRecent[i]); } } if (i != 0) menu.addSeparator(); } buttonExit = new JMenuItem("Exit", KeyEvent.VK_Q); buttonExit.getAccessibleContext().setAccessibleDescription("Goodbye..."); buttonExit.addActionListener(this); menu.add(buttonExit); menuBar.add(menu); // settings menu menu = new JMenu("Settings"); menu.setMnemonic(KeyEvent.VK_T); menu.getAccessibleContext().setAccessibleDescription("Adjust the robot settings."); JMenu subMenu = new JMenu("Port"); subMenu.setMnemonic(KeyEvent.VK_P); subMenu.getAccessibleContext().setAccessibleDescription("What port to connect to?"); subMenu.setEnabled(!running); ButtonGroup group = new ButtonGroup(); ListSerialPorts(); buttonPorts = new JRadioButtonMenuItem[portsDetected.length]; for (i = 0; i < portsDetected.length; ++i) { buttonPorts[i] = new JRadioButtonMenuItem(portsDetected[i]); if (recentPort.equals(portsDetected[i]) && portOpened) { buttonPorts[i].setSelected(true); } buttonPorts[i].addActionListener(this); group.add(buttonPorts[i]); subMenu.add(buttonPorts[i]); } subMenu.addSeparator(); buttonRescan = new JMenuItem("Rescan", KeyEvent.VK_N); buttonRescan.getAccessibleContext().setAccessibleDescription("Rescan the available ports."); buttonRescan.addActionListener(this); subMenu.add(buttonRescan); menu.add(subMenu); buttonConfig = new JMenuItem("Configure limits", KeyEvent.VK_L); buttonConfig.getAccessibleContext().setAccessibleDescription("Adjust the robot & paper shape."); buttonConfig.addActionListener(this); buttonConfig.setEnabled(portConfirmed && !running); menu.add(buttonConfig); buttonJogMotors = new JMenuItem("Jog Motors", KeyEvent.VK_J); buttonJogMotors.addActionListener(this); buttonJogMotors.setEnabled(portConfirmed && !running); menu.add(buttonJogMotors); buttonDrive = new JMenuItem("Drive Manually", KeyEvent.VK_R); buttonDrive.getAccessibleContext().setAccessibleDescription("Etch-a-sketch style driving"); buttonDrive.addActionListener(this); buttonDrive.setEnabled(portConfirmed && !running); menu.add(buttonDrive); menuBar.add(menu); // Draw menu menu = new JMenu("Draw"); menu.setMnemonic(KeyEvent.VK_D); menu.getAccessibleContext().setAccessibleDescription("Start & Stop progress"); buttonStart = new JMenuItem("Start", KeyEvent.VK_S); buttonStart.getAccessibleContext().setAccessibleDescription("Start sending g-code"); buttonStart.addActionListener(this); buttonStart.setEnabled(portConfirmed && !running); menu.add(buttonStart); buttonPause = new JMenuItem("Pause", KeyEvent.VK_P); buttonPause.getAccessibleContext().setAccessibleDescription("Pause sending g-code"); buttonPause.addActionListener(this); buttonPause.setEnabled(portConfirmed && running); menu.add(buttonPause); buttonHalt = new JMenuItem("Halt", KeyEvent.VK_H); buttonHalt.getAccessibleContext().setAccessibleDescription("Halt sending g-code"); buttonHalt.addActionListener(this); buttonHalt.setEnabled(portConfirmed && running); menu.add(buttonHalt); menuBar.add(menu); // tools menu menu = new JMenu("Tools"); buttonZoomOut = new JMenuItem("Zoom -"); buttonZoomOut.addActionListener(this); buttonZoomOut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, ActionEvent.ALT_MASK)); menu.add(buttonZoomOut); buttonZoomIn = new JMenuItem("Zoom +", KeyEvent.VK_EQUALS); buttonZoomIn.addActionListener(this); buttonZoomIn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, ActionEvent.ALT_MASK)); menu.add(buttonZoomIn); menuBar.add(menu); // Help menu menu = new JMenu("Help"); menu.setMnemonic(KeyEvent.VK_H); menu.getAccessibleContext().setAccessibleDescription("Get help"); buttonAbout = new JMenuItem("About", KeyEvent.VK_A); menu.getAccessibleContext().setAccessibleDescription("Find out about this program"); buttonAbout.addActionListener(this); menu.add(buttonAbout); buttonCheckForUpdate = new JMenuItem("Check for updates", KeyEvent.VK_U); menu.getAccessibleContext().setAccessibleDescription("Is there a newer version available?"); buttonCheckForUpdate.addActionListener(this); buttonCheckForUpdate.setEnabled(false); menu.add(buttonCheckForUpdate); menuBar.add(menu); // finish menuBar.updateUI(); }
public static void main(String[] args) { System.setProperty("com.apple.mrj.application.apple.menu.about.name", "What's Wrong ..."); changeUI(USE_SYSTEM_UI); final NLPCanvas canvas = new NLPCanvas(); // create the filter pipeline EdgeTokenFilter edgeTokenFilter = new EdgeTokenFilter(); EdgeLabelFilter edgeLabelFilter = new EdgeLabelFilter(); TokenFilter tokenFilter = new TokenFilter(); EdgeTypeFilter edgeTypeFilter = new EdgeTypeFilter(); FilterPipeline filterPipeline = new FilterPipeline(tokenFilter, edgeTypeFilter, edgeLabelFilter, edgeTokenFilter); // set filter of canvas to be the pipeline canvas.setFilter(filterPipeline); int canvasWidth = 900; int canvasHeight = 300; int canvasX = 50; int canvasY = 50; int canvasBottom = canvasHeight + canvasY; final CorpusLoader gold = new CorpusLoader("Select Gold"); final CorpusLoader guess = new CorpusLoader("Select Guess"); gold.loadProperties(properties); guess.loadProperties(properties); // Menu JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("File"); JMenuItem exportEps = new JMenuItem("Export EPS"); final JFileChooser fc = new JFileChooser(); exportEps.setAccelerator(KeyStroke.getKeyStroke('E', java.awt.event.InputEvent.ALT_MASK)); exportEps.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { int returnVal = fc.showSaveDialog(canvas); if (returnVal == JFileChooser.APPROVE_OPTION) try { canvas.exportToEPS(fc.getSelectedFile()); } catch (IOException e1) { e1.printStackTrace(); } } }); file.add(exportEps); file.setMnemonic('F'); JMenuItem quit = new JMenuItem("Quit"); // quit.setMnemonic('Q'); file.add(quit); quit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); JMenu window = new JMenu("Window"); menuBar.add(file); menuBar.add(window); // Toolbar JToolBar toolBar = new JToolBar("Blub"); toolBar.add(new JButton("Test")); // dummy Frame // JFrame dummy = new JFrame(); // dummy.setVisible(false); // canvas frame JFrame canvasFrame = new JFrame("What's Wrong With My NLP?"); canvasFrame.setSize(canvasWidth, canvasHeight); canvasFrame.getContentPane().setLayout(new BorderLayout()); canvasFrame.getContentPane().add(new JScrollPane(canvas), BorderLayout.CENTER); canvasFrame.setJMenuBar(menuBar); // canvasFrame.getContentPane().add(toolBar, BorderLayout.NORTH); canvasFrame.setLocation(canvasX, canvasY); canvasFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // window.add(new WindowMenuItem(canvasFrame,"Canvas")); // desktop.add(canvasFrame); // file selection frame final ControllerDialog fileWindow = new ControllerDialog("File Selection", USE_SYSTEM_UI); fileWindow .getContentPane() .setLayout(new BoxLayout(fileWindow.getContentPane(), BoxLayout.Y_AXIS)); fileWindow.getContentPane().add(gold); fileWindow.getContentPane().add(new JSeparator()); fileWindow.getContentPane().add(guess); fileWindow.setLocation(canvasX + 20, canvasBottom + 20); fileWindow.pack(); fileWindow.setVisible(USE_SYSTEM_UI); // fileWindow.toBack(); window.add(new WindowMenuItem(fileWindow)); // fileFrame.setResizable(false); // desktop.add(fileFrame); // filter frame ControllerDialog filterWindow = new ControllerDialog("Edge Filters", false); filterWindow .getContentPane() .setLayout(new BoxLayout(filterWindow.getContentPane(), BoxLayout.Y_AXIS)); filterWindow.getContentPane().add(new EdgeTypeFilterPanel(canvas, edgeTypeFilter)); filterWindow.getContentPane().add(new JSeparator()); filterWindow .getContentPane() .add(new DependencyFilterPanel(canvas, edgeLabelFilter, edgeTokenFilter)); filterWindow.pack(); filterWindow.setLocation(canvasX + 250, canvasBottom + 15); filterWindow.setVisible(USE_SYSTEM_UI); window.add(new WindowMenuItem(filterWindow)); // token filter frame ControllerDialog tokenFilterWindow = new ControllerDialog("Token Filters", false); tokenFilterWindow .getContentPane() .setLayout(new BoxLayout(tokenFilterWindow.getContentPane(), BoxLayout.Y_AXIS)); tokenFilterWindow.getContentPane().add(new TokenFilterPanel(canvas, tokenFilter)); tokenFilterWindow.pack(); tokenFilterWindow.setLocation(canvasX + 360, canvasBottom + 230); tokenFilterWindow.setVisible(USE_SYSTEM_UI); window.add(new WindowMenuItem(tokenFilterWindow)); // appearance ControllerDialog appearance = new ControllerDialog("Appearance", false); appearance .getContentPane() .setLayout(new BoxLayout(appearance.getContentPane(), BoxLayout.Y_AXIS)); appearance.getContentPane().add(new AppearancePanel(canvas)); appearance.pack(); appearance.setLocation(canvasX + 500, canvasBottom + 25); appearance.setVisible(USE_SYSTEM_UI); window.add(new WindowMenuItem(appearance)); // description ControllerDialog description = new ControllerDialog("Description", true); // description.getContentPane().setLayout(new BoxLayout(appearance.getContentPane(), // BoxLayout.Y_AXIS)); JTextArea text = new JTextArea(15, 40); description.getContentPane().add(new JScrollPane(text)); description.pack(); description.setLocation(canvasX + 700, canvasBottom + 25); description.setVisible(USE_SYSTEM_UI); canvas.setTextArea(text); window.add(new WindowMenuItem(description)); // navigator ControllerDialog navigatorWindow = new ControllerDialog("Search Corpus", USE_SYSTEM_UI); navigatorWindow .getContentPane() .setLayout(new BoxLayout(navigatorWindow.getContentPane(), BoxLayout.Y_AXIS)); CorpusNavigator navigator = new CorpusNavigator(canvas, gold, guess, edgeTypeFilter); navigatorWindow.getContentPane().add(navigator); navigatorWindow.pack(); navigatorWindow.setMinimumSize(navigatorWindow.getSize()); navigatorWindow.setLocation(canvasX + 800, canvasBottom + 20); navigatorWindow.setVisible(USE_SYSTEM_UI); window.add(new WindowMenuItem(navigatorWindow, "Navigator")); // statusbar JPanel statusBar = new JPanel(); JLabel status = new JLabel("What's Wrong With My NLP version " + VERSION); status.setForeground(Color.LIGHT_GRAY); statusBar.setLayout(new GridBagLayout()); statusBar.setBorder(BorderFactory.createEmptyBorder(1, 10, 1, 10)); statusBar.add(status); statusBar.add(navigator.getSpinnerPanel(), new SimpleGridBagConstraints(0, USE_SYSTEM_UI)); statusBar.add( navigator.getSpinnerPanel(), new SimpleGridBagConstraints(1, 0, 1.0, 0.0, EAST, NONE)); // final preparation of canvas canvasFrame.getContentPane().add(statusBar, BorderLayout.SOUTH); canvasFrame.setVisible(USE_SYSTEM_UI); canvasFrame.requestFocus(); // canvasFrame.requestFocusInWindow(); Runtime.getRuntime() .addShutdownHook( new Thread( new Runnable() { public void run() { gold.saveProperties(properties); guess.saveProperties(properties); try { properties.store( new FileOutputStream(System.getProperty("user.home") + "/.whatswrong"), "Whats wrong with you NLP properties"); } catch (IOException e) { e.printStackTrace(); } } })); }