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();
      }
    }
  }