/** * Manages mouse clicks * * @param e the event * @see javax.swing.text.DefaultCaret#mouseClicked(java.awt.event.MouseEvent) */ public void mouseClicked(MouseEvent e) { if (SwingUtilities.isMiddleMouseButton(e) && e.getClickCount() == 1) { /** * PASTE USING MIDDLE BUTTON ** */ JTextComponent c = (JTextComponent) e.getSource(); if (c != null) { Toolkit tk = c.getToolkit(); Clipboard buffer = tk.getSystemSelection(); if (buffer != null) { Transferable trans = buffer.getContents(null); if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) { try { String pastedText = (String) trans.getTransferData(DataFlavor.stringFlavor); ((JTextPane) getConsole().getConfiguration().getInputCommandView()) .replaceSelection(pastedText); } catch (UnsupportedFlavorException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } } } } } else if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 1) { /** * SEND THE FOCUS TO THE INPUT COMMAND VIEW ** */ ((JTextPane) getConsole().getConfiguration().getInputCommandView()).requestFocus(); ((JTextPane) getConsole().getConfiguration().getInputCommandView()) .getCaret() .setVisible(true); } else { /** * DELEGATE TO THE SYSTEM ** */ super.mouseClicked(e); } }
/** * Perform the goto operation. * * @return whether the dialog should be made invisible or not */ protected boolean performGoto() { JTextComponent c = EditorRegistry.lastFocusedComponent(); if (c != null) { try { int line = Integer.parseInt(getGotoValueText()); // issue 188976 if (line == 0) line = 1; // end of issue 188976 BaseDocument doc = Utilities.getDocument(c); if (doc != null) { int rowCount = Utilities.getRowCount(doc); if (line > rowCount) line = rowCount; // Obtain the offset where to jump int pos = Utilities.getRowStartFromLineOffset(doc, line - 1); BaseKit kit = Utilities.getKit(c); if (kit != null) { Action a = kit.getActionByName(ExtKit.gotoAction); if (a instanceof ExtKit.GotoAction) { pos = ((ExtKit.GotoAction) a).getOffsetFromLine(doc, line - 1); } } if (pos != -1) { Caret caret = c.getCaret(); caret.setDot(pos); } else { c.getToolkit().beep(); return false; } } } catch (NumberFormatException e) { c.getToolkit().beep(); return false; } } return true; }