public void lPEventItemChanged(ItemChangedEvent eI) throws Throwable {

    ItemChangedEvent e = (ItemChangedEvent) eI;

    if (e.getID() == ItemChangedEvent.ITEM_CHANGED) {
      if (e.getSource() == panelLockMeQP1) {
        Object key = (LockMeDto) panelLockMeQP1.getSelectedId();
        // key 1; IF
        getInternalFrame().setKeyWasForLockMe(key + "");
        // key2; PB
        panelLockMeBottomD1.setKeyWhenDetailPanel(key);
        panelLockMeBottomD1.eventYouAreSelected(false);
        panelLockMeQP1.updateButtons();
      } else if (e.getSource() == panelTheClientQP2) {
        Object key = panelTheClientQP2.getSelectedId();
        getInternalFrame().setKeyWasForLockMe(key + "");
        panelTheClientBottomD2.setKeyWhenDetailPanel(key);
        panelTheClientBottomD2.eventYouAreSelected(false);
        panelTheClientQP2.updateButtons();
      }
    } else if (e.getID() == ItemChangedEvent.ACTION_GOTO_MY_DEFAULT_QP) {
      if (e.getSource() == panelLockMeBottomD1) {
        Object oKey = panelLockMeQP1.getSelectedId();
        // holt sich alten key wieder
        getInternalFrame().setKeyWasForLockMe(oKey == null ? null : oKey + "");
        panelLockMeSP1.eventYouAreSelected(false); // refresh auf das
        // gesamte 1:n panel
      } else if (e.getSource() == panelTheClientBottomD2) {
        Object oKey = panelTheClientQP2.getSelectedId();
        // holt sich alten key wieder
        getInternalFrame().setKeyWasForLockMe(oKey == null ? null : oKey + "");
        panelTheClientSP2.eventYouAreSelected(false); // refresh auf das
        // gesamte 1:n
        // panel
      }
    } else if (eI.getID() == ItemChangedEvent.ACTION_UPDATE) {
      // hier kommt man nach upd im D bei einem 1:n hin.
      if (eI.getSource() == panelLockMeBottomD1) {
        // 2 im QP die Buttons in den Zustand neu setzen.
        panelLockMeQP1.updateButtons(new LockStateValue(PanelBasis.LOCK_FOR_NEW));
        ;
      } else if (eI.getSource() == panelTheClientBottomD2) {
        panelTheClientQP2.updateButtons(new LockStateValue(PanelBasis.LOCK_FOR_NEW));
        ;
      }
    } else if (eI.getID() == ItemChangedEvent.ACTION_PRINT) {

      if (e.getSource().equals(panelTheClientQP2)) {
        getInternalFrame().showReportKriterien(new ReportBenutzerstatistik(getInternalFrame(), ""));
      }
    }
  }
  protected void lPActionEvent(java.awt.event.ActionEvent e) {
    if (e.getSource() == wcbNurAngemeldete) {
      if (null == panelTheClientQP2 || null == panelTheClientSP2) return;

      try {
        panelTheClientQP2.setDefaultFilter(
            isNurAngemeldete()
                ? SystemFilterFactory.getInstance().createFKPanelOnlyLoggedIn()
                : SystemFilterFactory.getInstance().createFKPanelGesperrt());
        panelTheClientSP2.eventYouAreSelected(false);
      } catch (Throwable t) {
      }
    }
  }
  public void dispose() {
    try {

      if (wtfArtikelnummer.getText() != null
          && wtfArtikelnummer.getText().length() > 0
          && artikelDto != null
          && wnfMenge.getBigDecimal() != null) {

        KeyEvent k = new KeyEvent(wnfMenge, 0, 0, 0, KeyEvent.VK_ENTER, ' ');

        keyPressed(k);
      }

    } catch (Throwable ex) {
      panelPositionen.handleException(ex, true);
    }

    super.dispose();
  }
  public void keyPressed(KeyEvent e) {

    if (e.getKeyCode() == KeyEvent.VK_ENTER) {
      if (e.getSource() == wtfArtikelnummer) {

        try {
          artikelDto =
              DelegateFactory.getInstance()
                  .getArtikelDelegate()
                  .artikelFindByCNr(wtfArtikelnummer.getText());

        } catch (Throwable ex) {
          if (ex instanceof ExceptionLP) {
            ExceptionLP exLP = (ExceptionLP) ex;
            if (exLP.getICode() == EJBExceptionLP.FEHLER_BEI_FIND) {
              DialogFactory.showModalDialog(
                  LPMain.getInstance().getTextRespectUISPr("lp.error"),
                  "Artikel konnte nicht gefunden werden.");
              artikelDto = null;
              wtfArtikelnummer.setText(null);
              wtfBezeichnung.setText(null);
              wtfArtikelnummer.requestFocus();
            } else {
              panelPositionen.handleException(ex, true);
            }
          } else {
            panelPositionen.handleException(ex, true);
          }
        }

        if (artikelDto != null) {
          wtfBezeichnung.setText(artikelDto.formatArtikelbezeichnung());

          if (Helper.short2boolean(artikelDto.getBChargennrtragend())
              || Helper.short2boolean(artikelDto.getBSeriennrtragend())) {
            wtfSerienChargennummer.setEnabled(true);
            wtfSerienChargennummer.setText(null);
            wtfSerienChargennummer.requestFocus();
            if (Helper.short2boolean(artikelDto.getBSeriennrtragend())) {
              try {
                wnfMenge.setDouble(new Double(1));
              } catch (ExceptionLP ex2) {
                // wird hoffentlich gehen
              }
            }

          } else {
            wtfSerienChargennummer.setText(null);
            wtfSerienChargennummer.setEnabled(false);
            try {
              wnfMenge.setDouble(null);
            } catch (ExceptionLP ex2) {
              // wird hoffentlich gehen
            }

            wnfMenge.requestFocus();
          }
        }
      } else if (e.getSource() == wtfSerienChargennummer) {
        if (Helper.short2boolean(artikelDto.getBSeriennrtragend())) {
          wtfArtikelnummer.requestFocus();

        } else if (Helper.short2boolean(artikelDto.getBChargennrtragend())) {
          wnfMenge.requestFocus();
        }
      } else if (e.getSource() == wnfMenge) {

        // Auftragsposition speichern

        try {
          if (artikelDto != null && wnfMenge.getBigDecimal() != null) {

            AuftragpositionDto aDto = new AuftragpositionDto();
            aDto.setBelegIId(auftragDto.getIId());
            aDto.setArtikelIId(artikelDto.getIId());
            aDto.setPositionsartCNr(AuftragServiceFac.AUFTRAGPOSITIONART_IDENT);
            aDto.setNMenge(wnfMenge.getBigDecimal());
            aDto.setBNettopreisuebersteuert(Helper.boolean2Short(false));
            aDto.setBMwstsatzuebersteuert(Helper.boolean2Short(false));
            aDto.setBArtikelbezeichnunguebersteuert(Helper.boolean2Short(false));
            aDto.setEinheitCNr(artikelDto.getEinheitCNr());
            aDto.setNOffeneMenge(wnfMenge.getBigDecimal());
            aDto.setTUebersteuerbarerLiefertermin(auftragDto.getDLiefertermin());
            if (wtfSerienChargennummer.getText() != null) {
              aDto.setSeriennrChargennrMitMenge(
                  SeriennrChargennrMitMengeDto.erstelleDtoAusEinerChargennummer(
                      wtfSerienChargennummer.getText(), wnfMenge.getBigDecimal()));
            }
            DelegateFactory.getInstance().getAuftragpositionDelegate().createAuftragposition(aDto);
            wtfArtikelnummer.setText(null);
            wtfBezeichnung.setText(null);
            wtfSerienChargennummer.setText(null);

            wnfMenge.setDouble(null);
          }
        } catch (Throwable ex) {
          panelPositionen.handleException(ex, true);
        }
        wtfArtikelnummer.requestFocus();
      }
    }
  }