public void mouseReleased(MouseEvent e) {
    logger.fine("Event: mouseReleased");
    // handling click in mouseReleased rather than in mouseClicked
    // provides better interaction. If mouse was slightly moved
    // between pressed and released events, the event clicked
    // is not triggered.
    // The behavior is not tested on Linux.

    // first stop the timer and select the node:
    stopTimerForDelayedSelection();
    c.extendSelection(e);
    // Right mouse <i>press</i> is <i>not</i> a popup trigger for Windows.
    // Only Right mouse release is a popup trigger!
    // OK, but Right mouse <i>press</i> <i>is</i> a popup trigger on Linux.
    c.showPopupMenu(e);
    if (e.isConsumed()) {
      return;
    }

    if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
      // FIXME Dimitry: Double Click comes after Plain Click combining (un)folding with editing
      //            if (e.getClickCount() % 2 == 0) {
      //                c.doubleClick(e);
      //            } else {
      c.plainClick(e);
      //            }
      e.consume();
    }
  }
 public void mousePressed(MouseEvent e) {
   logger.fine("Event: mousePressed");
   // for Linux
   c.showPopupMenu(e);
 }