@Override public final void mousePressed(final MouseEvent e) { if (!isEnabled() || !isFocusable()) return; requestFocusInWindow(); caret(true); if (SwingUtilities.isMiddleMouseButton(e)) copy(); final boolean shift = e.isShiftDown(); final boolean selected = editor.selected(); if (SwingUtilities.isLeftMouseButton(e)) { final int c = e.getClickCount(); if (c == 1) { // selection mode if (shift) editor.startSelection(true); select(e.getPoint(), !shift); } else if (c == 2) { editor.selectWord(); } else { editor.selectLine(); } } else if (!selected) { select(e.getPoint(), true); } }
@Override public final void mousePressed(final MouseEvent e) { if (!isEnabled() || !isFocusable()) return; requestFocusInWindow(); cursor(true); if (SwingUtilities.isMiddleMouseButton(e)) copy(); final boolean marking = e.isShiftDown(); final boolean nomark = !text.marked(); if (SwingUtilities.isLeftMouseButton(e)) { final int c = e.getClickCount(); if (c == 1) { // selection mode if (marking && nomark) text.startMark(); rend.select(scroll.pos(), e.getPoint(), marking); } else if (c == 2) { text.selectWord(); } else { text.selectLine(); } } else if (nomark) { rend.select(scroll.pos(), e.getPoint(), false); } }
@Override public final void mouseDragged(final MouseEvent e) { if (!SwingUtilities.isLeftMouseButton(e)) return; // selection mode select(e.getPoint(), false); final int y = Math.max(20, Math.min(e.getY(), getHeight() - 20)); if (y != e.getY()) scroll.pos(scroll.pos() + e.getY() - y); }
@Override public void mousePressed(final MouseEvent e) { requestFocusInWindow(); mouseX = e.getX(); final double w = getWidth() - SLIDERW; final double r = max - min; final double x = (value - min) * w / r; if (mouseX < x || mouseX >= x + SLIDERW) value = (int) (mouseX * r / w + min); oldValue = value; repaint(); }
@Override public void mouseReleased(final MouseEvent e) { if (linkListener == null) return; if (SwingUtilities.isLeftMouseButton(e)) { editor.endSelection(); // evaluate link if (!editor.selected()) { final TextIterator iter = rend.jump(e.getPoint()); final String link = iter.link(); if (link != null) linkListener.linkClicked(link); } } }
@Override public void mouseDragged(final MouseEvent e) { final double prop = (max - min) * (mouseX - e.getX()) / (getWidth() - SLIDERW); final int old = value; value = Math.max(min, Math.min(max, (int) (oldValue - prop))); if (value != old) { if (dialog != null) dialog.action(null); for (final ActionListener al : listenerList.getListeners(ActionListener.class)) { al.actionPerformed(null); } repaint(); } }
@Override public final void mouseMoved(final MouseEvent e) { if (linkListener == null) return; final TextIterator iter = rend.jump(e.getPoint()); gui.cursor(iter.link() != null ? CURSORHAND : CURSORARROW); }
@Override public void mouseMoved(final MouseEvent e) { mouseX = e.getX(); }