Beispiel #1
0
  @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);
    }
  }
Beispiel #2
0
 /**
  * Assigns the specified list entries and selects the first entry.
  *
  * @param elements result elements
  * @param srch content search string
  */
 void setElements(final TokenSet elements, final String srch) {
   SwingUtilities.invokeLater(
       new Runnable() {
         @Override
         public void run() {
           // set new values and selections
           final int is = elements.size();
           final String[] list = new String[is];
           for (int i = 0; i < is; i++) list[i] = Token.string(elements.key(i + 1));
           if (changed(list)) {
             // check which old values had been selected
             final List<String> values = getSelectedValuesList();
             final IntList il = new IntList();
             for (final String value : values) {
               final byte[] val = Token.token(value);
               for (int i = 0; i < is; i++) {
                 if (Token.eq(val, elements.key(i + 1))) {
                   il.add(i);
                   break;
                 }
               }
             }
             setListData(list);
             setSelectedIndices(il.finish());
           }
           search = srch;
         }
       });
 }
Beispiel #3
0
  @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);
  }
Beispiel #4
0
  @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);
      }
    }
  }
Beispiel #5
0
 @Override
 public void mouseClicked(final MouseEvent e) {
   if (!SwingUtilities.isMiddleMouseButton(e)) return;
   new PasteCmd().execute(gui);
 }