private void initAccelerator(Class<? extends Action> actionClass, JMenuItem mnuItem) {
    Action action = _session.getApplication().getActionCollection().get(actionClass);

    String accel = (String) action.getValue(Resources.ACCELERATOR_STRING);
    if (null != accel && 0 != accel.trim().length()) {
      mnuItem.setAccelerator(KeyStroke.getKeyStroke(accel));
    }
  }
  /**
   * Due to JDK 1.4 Bug 4465870 this doesn't work with JDK 1.4. when scrollable tabbed pane is used.
   */
  private void createTabPopup() {
    final JPopupMenu popup = new JPopupMenu();

    // i18n[SQLResultExecuterPanel.close=Close]
    String closeLabel = s_stringMgr.getString("SQLResultExecuterPanel.close");
    JMenuItem mnuClose = new JMenuItem(closeLabel);
    initAccelerator(CloseCurrentSQLResultTabAction.class, mnuClose);
    mnuClose.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            closeCurrentResultTab();
          }
        });
    popup.add(mnuClose);

    // i18n[SQLResultExecuterPanel.closeAllButThis=Close all but this]
    String cabtLabel = s_stringMgr.getString("SQLResultExecuterPanel.closeAllButThis");
    JMenuItem mnuCloseAllButThis = new JMenuItem(cabtLabel);
    initAccelerator(CloseAllSQLResultTabsButCurrentAction.class, mnuCloseAllButThis);
    mnuCloseAllButThis.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            closeAllButCurrentResultTabs();
          }
        });
    popup.add(mnuCloseAllButThis);

    // i18n[SQLResultExecuterPanel.closeAll=Close all]
    String caLabel = s_stringMgr.getString("SQLResultExecuterPanel.closeAll");
    JMenuItem mnuCloseAll = new JMenuItem(caLabel);
    initAccelerator(CloseAllSQLResultTabsAction.class, mnuCloseAll);
    mnuCloseAll.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            closeAllSQLResultTabs();
          }
        });
    popup.add(mnuCloseAll);

    // i18n[SQLResultExecuterPanel.toggleSticky=Toggle sticky]
    String tsLabel = s_stringMgr.getString("SQLResultExecuterPanel.toggleSticky");
    JMenuItem mnuToggleSticky = new JMenuItem(tsLabel);
    initAccelerator(ToggleCurrentSQLResultTabStickyAction.class, mnuToggleSticky);
    mnuToggleSticky.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            toggleCurrentSQLResultTabSticky();
          }
        });
    popup.add(mnuToggleSticky);

    _tabbedExecutionsPanel.addMouseListener(
        new MouseAdapter() {
          public void mousePressed(MouseEvent e) {
            maybeShowPopup(e, popup);
          }

          public void mouseReleased(MouseEvent e) {
            maybeShowPopup(e, popup);
          }
        });
  }