@Override
    protected void showPopupMenu(MouseEvent ev) {
      // first select/deselect the row:
      int iRow = tblTasks.rowAtPoint(ev.getPoint());

      // Nur, wenn nicht selektiert, selektieren:
      if (!tblTasks.isRowSelected(iRow)) {
        if ((ev.getModifiers() & MouseEvent.CTRL_MASK) != 0) {
          // Control gedr\u00fcckt:
          // Zeile zur Selektion hinzuf\u00fcgen:
          tblTasks.addRowSelectionInterval(iRow, iRow);
        } else {
          // Sonst nur diese Zeile selektieren:
          tblTasks.setRowSelectionInterval(iRow, iRow);
        }
      } // if

      // enable/disable menu items
      final int iSelectedRow = this.tblTasks.getSelectedRow();
      final TimelimitTaskTableModel model = timelimittaskview.getTimelimitTaskTableModel();
      model.getTimelimitTask(iSelectedRow);

      // todo: there should be a better place for that...
      final boolean bPerformEnabled =
          existsRelatedObjectsFor(getSelectedTimelimitTasks(timelimittaskview));
      actPerformTask.setEnabled(bPerformEnabled);
      // this.popupTimelimitTasks.miPerform.setEnabled(bPerformEnabled);

      final boolean bFinished = areTasksCompleted(getSelectedTimelimitTasks(timelimittaskview));
      this.popupTimelimitTasks.miFinish.setState(bFinished);

      super.showPopupMenu(ev);
    }