コード例 #1
0
ファイル: TextPanel.java プロジェクト: dimitarp/basex
  @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);
    }
  }
コード例 #2
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
  @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);
    }
  }
コード例 #3
0
 protected void uninstallListeners(JFileChooser fc) {
   if (propertyChangeListener != null) {
     fc.removePropertyChangeListener(propertyChangeListener);
   }
   fc.removePropertyChangeListener(getModel());
   SwingUtilities.replaceUIInputMap(fc, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null);
   SwingUtilities.replaceUIActionMap(fc, null);
 }
コード例 #4
0
  protected void installListeners(JFileChooser fc) {
    propertyChangeListener = createPropertyChangeListener(fc);
    if (propertyChangeListener != null) {
      fc.addPropertyChangeListener(propertyChangeListener);
    }
    fc.addPropertyChangeListener(getModel());

    InputMap inputMap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    SwingUtilities.replaceUIInputMap(fc, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
    ActionMap actionMap = getActionMap();
    SwingUtilities.replaceUIActionMap(fc, actionMap);
  }
コード例 #5
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
 @Override
 public void mouseClicked(final MouseEvent e) {
   if (!SwingUtilities.isMiddleMouseButton(e)) return;
   if (!paste()) return;
   finish();
   repaint();
 }
コード例 #6
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
  /**
   * Sets the output text.
   *
   * @param t output text
   * @param s text size
   */
  public final void setText(final byte[] t, final int s) {
    // remove invalid characters and compare old with new string
    int ns = 0;
    final int ts = text.size();
    final byte[] tt = text.text();
    boolean eq = true;
    for (int r = 0; r < s; ++r) {
      final byte b = t[r];
      // support characters, highlighting codes, tabs and newlines
      if (b >= ' ' || b <= TokenBuilder.MARK || b == 0x09 || b == 0x0A) {
        t[ns++] = t[r];
      }
      eq &= ns < ts && ns < s && t[ns] == tt[ns];
    }
    eq &= ns == ts;

    // new text is different...
    if (!eq) {
      text = new BaseXTextTokens(Arrays.copyOf(t, ns));
      rend.setText(text);
      scroll.pos(0);
    }
    if (undo != null) undo.store(t.length != ns ? Arrays.copyOf(t, ns) : t, 0);
    SwingUtilities.invokeLater(calc);
  }
コード例 #7
0
ファイル: TerminalPanel.java プロジェクト: bitekas/jediterm
  public Dimension requestResize(
      final Dimension newSize,
      final RequestOrigin origin,
      int cursorY,
      JediTerminal.ResizeHandler resizeHandler) {
    if (!newSize.equals(myTermSize)) {
      myTerminalTextBuffer.lock();
      try {
        myTerminalTextBuffer.resize(newSize, origin, cursorY, resizeHandler, mySelection);
        myTermSize = (Dimension) newSize.clone();

        final Dimension pixelDimension = new Dimension(getPixelWidth(), getPixelHeight());

        setPreferredSize(pixelDimension);
        if (myTerminalPanelListener != null) {
          myTerminalPanelListener.onPanelResize(pixelDimension, origin);
        }
        SwingUtilities.invokeLater(
            new Runnable() {
              @Override
              public void run() {
                updateScrolling();
              }
            });
      } finally {
        myTerminalTextBuffer.unlock();
      }
    }

    return new Dimension(getPixelWidth(), getPixelHeight());
  }
コード例 #8
0
ファイル: TextPanel.java プロジェクト: dimitarp/basex
  @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);
  }
コード例 #9
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
 /** Jumps to the end of the text. */
 public final void scrollToEnd() {
   SwingUtilities.invokeLater(
       new Runnable() {
         @Override
         public void run() {
           text.pos(text.size());
           text.setCaret();
           showCursor(2);
         }
       });
 }
コード例 #10
0
ファイル: TerminalPanel.java プロジェクト: bitekas/jediterm
  public void setScrollingEnabled(boolean scrollingEnabled) {
    myScrollingEnabled = scrollingEnabled;

    SwingUtilities.invokeLater(
        new Runnable() {
          @Override
          public void run() {
            updateScrolling();
          }
        });
  }
コード例 #11
0
ファイル: JEditTextArea.java プロジェクト: zeph/grinder
    public void adjustmentValueChanged(final AdjustmentEvent evt) {
      if (!scrollBarsInitialized) return;

      // If this is not done, mousePressed events accumilate
      // and the result is that scrolling doesn't stop after
      // the mouse is released
      SwingUtilities.invokeLater(
          new Runnable() {
            public void run() {
              if (evt.getAdjustable() == vertical) setFirstLine(vertical.getValue());
              else setHorizontalOffset(-horizontal.getValue());
            }
          });
    }
コード例 #12
0
ファイル: TextPanel.java プロジェクト: dimitarp/basex
  @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);
      }
    }
  }
コード例 #13
0
  public void init() {

    win = JSObject.getWindow(this);
    toCopy = this.getParameter("tocopy");
    try {
      SwingUtilities.invokeAndWait(
          new Runnable() {
            public void run() {
              JButton copyButton = new JButton("Copy to Clipboard");
              copyButton.addActionListener(new CopyToClipboard());
              add(copyButton);
            }
          });
    } catch (Exception e) {
      System.err.println("Error initializing ClipboardApplet.");
    }
  }
コード例 #14
0
    public void mouseClicked(MouseEvent evt) {
      // Note: we can't depend on evt.getSource() because of backward
      // compatability
      if (list != null && SwingUtilities.isLeftMouseButton(evt) && (evt.getClickCount() % 2 == 0)) {

        int index = SwingUtilities2.loc2IndexFileList(list, evt.getPoint());
        if (index >= 0) {
          File f = (File) list.getModel().getElementAt(index);
          try {
            // Strip trailing ".."
            f = ShellFolder.getNormalizedFile(f);
          } catch (IOException ex) {
            // That's ok, we'll use f as is
          }
          if (getFileChooser().isTraversable(f)) {
            list.clearSelection();
            changeDirectory(f);
          } else {
            getFileChooser().approveSelection();
          }
        }
      }
    }
コード例 #15
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
 @Override
 public final void componentResized(final ComponentEvent e) {
   scroll.pos(0);
   SwingUtilities.invokeLater(calc);
 }
コード例 #16
0
ファイル: BaseXEditor.java プロジェクト: godmar/basex
 @Override
 public void mouseReleased(final MouseEvent e) {
   if (SwingUtilities.isLeftMouseButton(e)) rend.stopSelect();
 }
コード例 #17
0
ファイル: TextPanel.java プロジェクト: dimitarp/basex
 @Override
 public void mouseClicked(final MouseEvent e) {
   if (!SwingUtilities.isMiddleMouseButton(e)) return;
   new PasteCmd().execute(gui);
 }
コード例 #18
0
 private boolean shouldIgnore(MouseEvent e) {
   return e.isConsumed() || (!(SwingUtilities.isLeftMouseButton(e) && table.isEnabled()));
 }