// steckbrief_laden.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include <string>
#include <sstream> 
#include "Ecopay.h"
#include "steckbrief_laden.h"
#include "steckbrief_schmetterling_neu.h"
#include "steckbrief_lebensraum_neu.h"
#include "steckbrief_vogel_neu.h"
#include "art.h"
#include "ergebnis.h"
#include "modell.h"
#include "gruenland.h"
#include "massnahme.h"
#include "datenbank.h"
//#include "testfenster.h"

using namespace std;
// steckbrief_laden-Dialogfeld

IMPLEMENT_DYNAMIC(steckbrief_laden, CDialog)

steckbrief_laden::steckbrief_laden(CWnd* pParent /*=NULL*/)
: CDialog(steckbrief_laden::IDD, pParent)
, name(_T(""))
, savetime(_T(""))
{

}

steckbrief_laden::~steckbrief_laden()
{
}

BOOL steckbrief_laden::OnInitDialog()
{
    CDialog::OnInitDialog();

    return TRUE;
}
void steckbrief_laden::DoDataExchange( CDataExchange* pDX)
{
    CDialog::DoDataExchange( pDX);
    DDX_Control( pDX, IDC_ART_AUSWAHL, m_combo_art_auswahl);
}

BEGIN_MESSAGE_MAP(steckbrief_laden, CDialog)
ON_CBN_SELCHANGE(IDC_ART_AUSWAHL, &steckbrief_laden::OnCbnSelchangeArtAuswahl)
ON_BN_CLICKED(IDOK, &steckbrief_laden::OnBnClickedOk)
END_MESSAGE_MAP()

// steckbrief_laden-Meldungshandler

void steckbrief_laden::OnCbnSelchangeArtAuswahl()
{

    CString artauswahl;
    int nIndex = m_combo_art_auswahl.GetCurSel();
    if (nIndex != CB_ERR)

    {
        m_combo_art_auswahl.GetLBText(nIndex,artauswahl);
        // aus dem string artauswahl muss der Name und die savetime ausgelesen werden.

    }

    string::size_type posA, posB, posC;

    string line(artauswahl);

    // Find first non-whitespace character.
    posA = line.find_first_not_of( " \t", 0);
    posC = line.find_first_of( "/", 0);
    //posC = line.find_first_not_of( " \t", posD);

    // Find first whitespace after that (i.e. end of token).
    posB = line.find_first_of( ",", posC+1);

    // Iterate this until the end of the line.
    // while( string::npos != posA || string::npos != posB)
    // {
    // Extract the token.
    name = line.substr( posC+1, posB - (posC+1));

    CString bname(name.c_str());
    //AfxMessageBox(bname,MB_YESNO,0);

    //... do something with the token ...

    // Find next token same way as before.
    posA = line.find_first_not_of( " \t", posB+1);

    posB = line.find_first_of( ",t", posA);
    savetime = line.substr( posA, posB - posA);
    //CString btime(savetime.c_str());
    //AfxMessageBox(btime,MB_YESNO,0);

    //}

}

void steckbrief_laden::OnBnClickedOk()
{


    if( name != "" && savetime != "")
    {
        nart = nart->get_art_from_database( name, savetime);

        CString gruppe = nart->get_gruppe();
        CString mv;
        //AfxMessageBox(gruppe,MB_YESNO,0);
        /*
         testfenster* fensterDlg;
         fensterDlg = new testfenster();
         BOOL r = fensterDlg->Create(IDD_DIALOG2);
         fensterDlg->ShowWindow(SW_SHOW);*/

        if( gruppe == "Vogel")
        {
            steckbrief_vogel_neu* artenVogelDlg;
            artenVogelDlg = new steckbrief_vogel_neu();
            //Check if new succeeded and we got a valid pointer to a dialog object
            if( artenVogelDlg != NULL)
            {
                BOOL ret = artenVogelDlg->Create( IDD_DIALOG_Steckbrief_Vogel);
                if( !ret) //Create failed.

                    AfxMessageBox( "Error creating Dialog", MB_YESNO, 0);

                artenVogelDlg->ShowWindow( SW_SHOW);
                artenVogelDlg->SetWindowTextA( nart->get_m_name());
                artenVogelDlg->SetDlgItemTextA( IDC_Vogelname,
                        nart->get_m_name());
                mv.Format( _T( "%.1f"), nart->get_monatsviertel9() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL9, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel10() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL10, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel11() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL11, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel12() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL12, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel13() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL13, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel14() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL14, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel15() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL15, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel16() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL16, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel17() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL17, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel18() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL18, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel19() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL91, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel20() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL20, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel21() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL21, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel22() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL22, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel23() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL23, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel24() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL24, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel24() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL25, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel25() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL26, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel27() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL27, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel28() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL28, mv);
                mv.Format( _T( "%.1f"), nart->get_monatsviertel29() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_MONATSVIERTEL29, mv);
                mv.Format( _T( "%.1f"), nart->get_ersatzbrut_erfolg() * 100);
                artenVogelDlg->SetDlgItemTextA( IDC_EBRUTERFOLG, mv);
                int erb = nart->get_monatsviertel_ersatzbrut() - 9;
                artenVogelDlg->m_comb_ersatzbrut.ShowDropDown( TRUE);
                artenVogelDlg->m_comb_ersatzbrut.SetCurSel( erb);

                mv.Format( _T( "%.d"), nart->get_reproduktion_gesammt());
                artenVogelDlg->SetDlgItemTextA( IDC_GREPRODUKTIONSPHASE, mv);
                mv.Format( _T( "%.d"), nart->get_reproduktion_kritisch());
                artenVogelDlg->SetDlgItemTextA( IDC_Kritrep, mv);

                mv.Format( _T( "%.1f"), nart->get_ausbreitungsradius());
                artenVogelDlg->SetDlgItemTextA( IDC_AUSBREITUNGSRADIUS, mv);
                // mv.Format(_T("%.1f"),nart->get_mobilitaetsradius());
                // artenVogelDlg->SetDlgItemTextA(IDC_MRADIUS, mv);

                // mv.Format(_T("%.1f"),nart->get_individuen_flaeche());
                // artenVogelDlg->SetDlgItemTextA(IDC_IDIVIDUEN, mv);

                double anspruch = nart->get_anspruch_wald();
                if( anspruch == 1)
                {
                    artenVogelDlg->CheckDlgButton( IDC_WALD_E, 1);
                    artenVogelDlg->CheckDlgButton( IDC_WALD_F, 0);
                    artenVogelDlg->CheckDlgButton( IDC_WALD_N, 0);
                } else
                {
                    if( anspruch == 0.5)
                    {
                        artenVogelDlg->CheckDlgButton( IDC_WALD_F, 1);
                        artenVogelDlg->CheckDlgButton( IDC_WALD_N, 0);
                        artenVogelDlg->CheckDlgButton( IDC_WALD_E, 0);
                    } else
                    {
                        artenVogelDlg->CheckDlgButton( IDC_WALD_N, 1);
                        artenVogelDlg->CheckDlgButton( IDC_WALD_E, 0);
                        artenVogelDlg->CheckDlgButton( IDC_WALD_F, 0);
                    }
                }

                anspruch = nart->get_anspruch_siedlung();
                if( anspruch == 1)
                {
                    artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_E, 1);
                    artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_F, 0);
                    artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_N, 0);
                } else
                {
                    if( anspruch == 0.5)
                    {
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_F, 1);
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_N, 0);
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_E, 0);
                    } else
                    {
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_N, 1);
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_E, 0);
                        artenVogelDlg->CheckDlgButton( IDC_SIEDLUNG_F, 0);
                    }
                }

                anspruch = nart->get_anspruch_wasser();
                if( anspruch == 1)
                {
                    artenVogelDlg->CheckDlgButton( IDC_WASSER_E, 1);
                    artenVogelDlg->CheckDlgButton( IDC_WASSER_F, 0);
                    artenVogelDlg->CheckDlgButton( IDC_WASSER_N, 0);
                } else
                {
                    if( anspruch == 0.5)
                    {
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_F, 1);
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_N, 0);
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_E, 0);
                    } else
                    {
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_N, 1);
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_E, 0);
                        artenVogelDlg->CheckDlgButton( IDC_WASSER_F, 0);
                    }
                }

                mv.Format( _T( "%.1f"), nart->get_hoehe_hoch());
                artenVogelDlg->SetDlgItemTextA( IDC_HOEHEH, mv);
                mv.Format( _T( "%.1f"), nart->get_hoehe_mittel());
                artenVogelDlg->SetDlgItemTextA( IDC_HOEHEM, mv);
                mv.Format( _T( "%.1f"), nart->get_hoehe_kurz());
                artenVogelDlg->SetDlgItemTextA( IDC_HOEHEK, mv);

                mv.Format( _T( "%.1f"), nart->get_feuchte_trocken());
                artenVogelDlg->SetDlgItemTextA( IDC_FEUCHTETROCKEN, mv);
                mv.Format( _T( "%.1f"), nart->get_feuchte_frisch());
                artenVogelDlg->SetDlgItemTextA( IDC_FEUCHTEFRISCH, mv);
                mv.Format( _T( "%.1f"), nart->get_feuchte_feucht());
                artenVogelDlg->SetDlgItemTextA( IDC_FEUCHTEFEUCHT, mv);
                mv.Format( _T( "%.2f"), nart->praedation);
                artenVogelDlg->SetDlgItemTextA( IDC_Praedation, mv);

                artenVogelDlg->SetDlgItemTextA( IDC_Vogelnamelatein,
                        nart->get_m_name_latein());
                artenVogelDlg->SetDlgItemTextA( IDC_Person,
                        nart->get_person_name());

                artenVogelDlg->GetDlgItem( IDC_Datenbearbeiten)->ShowWindow(
                        TRUE);
                artenVogelDlg->GetDlgItem( IDC_Datena)->ShowWindow( TRUE);
                artenVogelDlg->GetDlgItem( IDOK)->ShowWindow( FALSE);
                artenVogelDlg->GetDlgItem( IDCANCEL)->ShowWindow( FALSE);

                //artenVogelDlg->GetDlgItem(IDC_Vogelname)->EnableWindow(FALSE);
                /*
                 modell mod;
                 ergebnis*  er;
                 er = new ergebnis;
                 CString str;
                 
                 AfxMessageBox("Rufe jetzt das Modell auf",MB_YESNO,0);
                 er = mod.create_oekologiemodell(nart);
                 for (int i = 0; i<130000; i++)
                 {
                 str.Format(_T("%.5f"),er->qualitaet[i]);
                 fensterDlg->m_liste.AddString(str);
                 //if (i == 134)
                 //fensterDlg->m_liste.AddString("neuer Pixel");
                 str.Format(_T("%d"),er->massnahmen[i].massnahmeID);
                 fensterDlg->m_masliste.AddString(str);
                 

                 }
                 
                 
                 for (i = 0; i<30;i++)
                 {
                 str.Format(_T("%.5f"),er->qualitaet[i]);
                 //AfxMessageBox(str,MB_YESNO,0);
                 }
                 */

            } else
                AfxMessageBox( "Error Creating Dialog Object", MB_YESNO, 0);

        } else
        {
            if( gruppe == "Schmetterling")
            {
                steckbrief_schmetterling_neu* artenSchmetterlingDlg;
                artenSchmetterlingDlg = new steckbrief_schmetterling_neu();
                //Check if new succeeded and we got a valid pointer to a dialog object
                if( artenSchmetterlingDlg != NULL)
                {
                    BOOL ret = artenSchmetterlingDlg->Create(
                            IDD_DIALOG_Steckbrief_Schmetterling);
                    if( !ret) //Create failed.
                        AfxMessageBox( "Error creating Dialog", MB_YESNO, 0);

                    artenSchmetterlingDlg->ShowWindow( SW_SHOW);
                    artenSchmetterlingDlg->SetWindowTextA( nart->get_m_name());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_Name_deutsch,
                            nart->get_m_name());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_Name_latein,
                            nart->get_m_name_latein());

                    mv.Format( _T( "%.1f"), nart->get_monatsviertel7() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1Mai, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel8() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2Mai, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel9() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M3Mai, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel20() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M4Mai, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel21() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1Juni, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel22() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2Juni, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel23() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M3Juni, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel24() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M4Juni, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel25() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1Juli, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel26() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2Juli, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel27() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M3Juli, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel28() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M4Juli, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel29() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1August, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel30() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2August, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel31() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M3August, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel32() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M4August, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel33() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1September,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel34() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2September,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel35() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M3September,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel36() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M4September,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel37() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M1Oktober, mv);
                    mv.Format( _T( "%.1f"), nart->get_monatsviertel38() * 100);
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_M2Oktober, mv);

                    mv.Format( _T( "%d"), nart->get_reproduktion_gesammt());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_GesamtRep, mv);
                    if( nart->get_reproduktion_gesammt2() != 0)
                    {
                        mv.Format( _T( "%d"),
                                nart->get_reproduktion_gesammt2());
                        artenSchmetterlingDlg->SetDlgItemTextA( IDC_GesamtRep2,
                                mv);
                        int erb = nart->get_zweitegeneration() - 13;
                        artenSchmetterlingDlg->m_s2anfang.SetCurSel( erb);
                        erb = nart->get_zweitegeneration_ende() - 13;
                        artenSchmetterlingDlg->m_s2ende.SetCurSel( erb);

                    } else
                    {
                        artenSchmetterlingDlg->m_s2anfang.EnableWindow( false);
                        artenSchmetterlingDlg->m_s2ende.EnableWindow( false);
                    }

                    mv.Format( _T( "%d"), nart->get_reproduktion_kritisch());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_KritischeRep,
                            mv);

                    mv.Format( _T( "%.1f"), nart->get_ausbreitungsradius());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_Aradius, mv);

                    mv.Format( _T( "%.1f"), nart->get_hoehe_hoch());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_HoeheHoch, mv);
                    mv.Format( _T( "%.1f"), nart->get_hoehe_mittel());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_HoeheMittel,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_hoehe_kurz());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_HoeheKurz, mv);

                    mv.Format( _T( "%.1f"), nart->get_feuchte_trocken());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_FEUCHTETROCKEN,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_feuchte_frisch());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_FEUCHTEFRISCH,
                            mv);
                    mv.Format( _T( "%.1f"), nart->get_feuchte_feucht());
                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_FEUCHTEFEUCHT,
                            mv);

                    artenSchmetterlingDlg->SetDlgItemTextA( IDC_Person,
                            nart->get_person_name());

                    vector< gruenland>::iterator git;

                    char ma[ 100];
                    int mv;

                    stringstream returnstring;
                    for( git = nart->gruen.begin(); git != nart->gruen.end();
                            git++)
                    {
                        returnstring.str( "");
                        returnstring.clear();

                        string mager;
                        if( (*git).mager == true)
                            mager = "schwachwüchsig";
                        else
                            mager = "starkwüchsig";
                        returnstring << (*git).name_deutsch << "/" << mager
                                << ", " << (*git).savetime << ", "
                                << (*git).name_benutzer;
                        string result = returnstring.str();
                        lstrcpy( ma, result.c_str());

                        artenSchmetterlingDlg->m_liste_gruen.AddString( ma);
                    }

                    artenSchmetterlingDlg->GetDlgItem( IDC_Datenbearbeiten)
                            ->ShowWindow( TRUE);
                    artenSchmetterlingDlg->GetDlgItem( IDC_Datena)->ShowWindow(
                            TRUE);
                    artenSchmetterlingDlg->GetDlgItem( IDOK)->ShowWindow(
                            FALSE);
                    artenSchmetterlingDlg->GetDlgItem( IDCANCEL)->ShowWindow(
                            FALSE);
                    artenSchmetterlingDlg->m_auswahl_gruen.EnableWindow( false);

                    //artenSchmetterlingDlg->SetDlgItemTextA(IDC_Vogelname, "Schmetterling");
                    /*
                     modell mod;
                     ergebnis*  er;
                     er = new ergebnis;
                     CString str;
                     
                     AfxMessageBox("Rufe jetzt das Modell auf",MB_YESNO,0);
                     er = mod.create_oekologiemodell(nart);
                     for (int i = 0; i<100; i++)
                     {
                     str.Format(_T("%.5f"),er->qualitaet[i]);
                     fensterDlg->m_liste.AddString(str);
                     //if (i == 134)
                     //fensterDlg->m_liste.AddString("neuer Pixel");
                     

                     }
                     */

                } else
                    AfxMessageBox( "Error Creating Dialog Object", MB_YESNO, 0);

            } else
            {
                steckbrief_lebensraum_neu* artenLebensraumDlg;
                artenLebensraumDlg = new steckbrief_lebensraum_neu();
                //Check if new succeeded and we got a valid pointer to a dialog object
                if( artenLebensraumDlg != NULL)
                {
                    BOOL ret = artenLebensraumDlg->Create(
                            IDD_DIALOG_Steckbrief_Lebensraum);
                    if( !ret) //Create failed.
                        AfxMessageBox( "Error creating Dialog", MB_YESNO, 0);
                    artenLebensraumDlg->ShowWindow( SW_SHOW);
					*(artenLebensraumDlg->nart) = *nart;
                    artenLebensraumDlg->SetWindowTextA( nart->get_m_name());
                    artenLebensraumDlg->SetDlgItemTextA( IDC_name,
                            nart->get_m_name());
					artenLebensraumDlg->gruen_schwach->name_deutsch = nart->get_m_name();
					artenLebensraumDlg->gruen_stark->name_deutsch = nart->get_m_name();
					
                    artenLebensraumDlg->SetDlgItemTextA( IDC_lnamelatein,
                            nart->get_m_name_latein());
					artenLebensraumDlg->gruen_schwach->name_latein = nart->get_m_name_latein();
					artenLebensraumDlg->gruen_stark->name_latein = nart->get_m_name_latein();
					
                    artenLebensraumDlg->SetDlgItemTextA( IDC_Person,
                            nart->get_person_name());
					artenLebensraumDlg->gruen_schwach->name_benutzer = nart->get_person_name();
					artenLebensraumDlg->gruen_stark->name_benutzer = nart->get_person_name();
                    mv.Format( _T( "%d"), nart->get_Lebensraumnr());
                    artenLebensraumDlg->SetDlgItemTextA( IDC_Nummer, mv);
					artenLebensraumDlg->gruen_schwach->nummer = nart->get_Lebensraumnr();
					artenLebensraumDlg->gruen_stark->nummer = nart->get_Lebensraumnr();
                    mv.Format( _T( "%.1f"), nart->get_feuchte_trocken());
                    artenLebensraumDlg->SetDlgItemTextA( IDC_trocken, mv);
					artenLebensraumDlg->gruen_schwach->trocken = nart->get_feuchte_trocken();
					artenLebensraumDlg->gruen_stark->trocken = nart->get_feuchte_trocken();
                    mv.Format( _T( "%.1f"), nart->get_feuchte_frisch());
                    artenLebensraumDlg->SetDlgItemTextA( IDC_frisch, mv);
					artenLebensraumDlg->gruen_schwach->frisch = nart->get_feuchte_frisch();
					artenLebensraumDlg->gruen_stark->frisch = nart->get_feuchte_frisch();
                    mv.Format( _T( "%.1f"), nart->get_feuchte_feucht());
                    artenLebensraumDlg->SetDlgItemTextA( IDC_feucht, mv);
					artenLebensraumDlg->gruen_schwach->feucht = nart->get_feuchte_feucht();
					artenLebensraumDlg->gruen_stark->feucht = nart->get_feuchte_feucht();


					
					


                    vector < gruenland > gr;
                    vector< gruenland>::iterator git;
                    vector< massnahme>::iterator mit;
                    //vector < massnahme > m_schwach;
                    //vector < massnahme > m_stark;
                    datenbank daten;
                    CString str;
                    char ma[ 1000];
                    stringstream returnstring;
                    string result;
                    daten.getgruenland( gr, nart->get_artID());

                    if( gr.size() != 0)
                    {
						artenLebensraumDlg->gruen_schwach->hoch = gr.front().hoch;
						artenLebensraumDlg->gruen_stark->hoch = gr.front().hoch;
						artenLebensraumDlg->gruen_schwach->tief = gr.front().tief;
						artenLebensraumDlg->gruen_stark->tief = gr.front().tief;

                        if( gr.front().hoch == true)
                        {
                            if( gr.front().tief == true)
                                artenLebensraumDlg->CheckDlgButton( IDC_Egal,
                                        1);
                            else
                                artenLebensraumDlg->CheckDlgButton( IDC_Hoch,
                                        1);
                        } else
                            artenLebensraumDlg->CheckDlgButton( IDC_Tief, 1);

                        for( git = gr.begin(); git != gr.end(); git++)
                        {
                            if( (*git).mager == true)
                            {
                                daten.get_massnahmen_for_gruenland( artenLebensraumDlg->mliste_schwach,
                                        (*git).gruenlandID);
                                for( mit = artenLebensraumDlg->mliste_schwach.begin();
                                        mit != artenLebensraumDlg->mliste_schwach.end(); mit++)
                                {
                                    returnstring.str( "");
                                    returnstring.clear();
                                    returnstring << mit->name << ", "
                                            << mit->mv1massnahme << "/"
											<< mit->abstand2massnahme << "/"
                                            << mit->abstand3massnahme << ",";
                                    if( (mit->grossvieheinheit != 0)
                                            && (mit->grossvieheinheit != 99))
                                        returnstring << mit->grossvieheinheit
                                                << " (GV), ";

                                    returnstring << mit->duengung << " (D)";
                                    result = returnstring.str();
                                    lstrcpy( ma, result.c_str());
                                    artenLebensraumDlg
                                            ->m_liste_gmassnahme_schwach
                                            .AddString( ma);
                                }
                            } else
                            {
                                daten.get_massnahmen_for_gruenland( artenLebensraumDlg->mliste_stark,
                                        (*git).gruenlandID);
                                for( mit = artenLebensraumDlg->mliste_stark.begin();
                                        mit != artenLebensraumDlg->mliste_stark.end(); mit++)
                                {
                                    returnstring.str( "");
                                    returnstring.clear();
                                    returnstring << mit->name << ", "
                                            << mit->mv1massnahme << "/"
											<< mit->abstand2massnahme << "/"
                                            << mit->abstand3massnahme << ",";
                                    if( (mit->grossvieheinheit != 0)
                                            && (mit->grossvieheinheit != 99))
                                        returnstring << mit->grossvieheinheit
                                                << " (GV), ";

                                    returnstring << mit->duengung << " (D)";
                                    result = returnstring.str();
                                    lstrcpy( ma, result.c_str());
                                    artenLebensraumDlg->m_liste_gmassnahme_stark
                                            .AddString( ma);
                                }
                            }
                        }
                    }

                    // if( nart->

                    artenLebensraumDlg->m_d_ja.EnableWindow( false);
                    artenLebensraumDlg->m_d_nein.EnableWindow( false);
                    artenLebensraumDlg->m_massnahmeGV.EnableWindow( false);
                    artenLebensraumDlg->m_massnahmenabstand.EnableWindow(
                            false);
                    artenLebensraumDlg->m_massnahmenart.EnableWindow( false);
                    artenLebensraumDlg->m_massnahmenstart.EnableWindow( false);
                    artenLebensraumDlg->m_massnahmetierart.EnableWindow( false);
                    artenLebensraumDlg->m_schwach.EnableWindow( false);
                    artenLebensraumDlg->m_stark.EnableWindow( false);
					artenLebensraumDlg->button_erase_schwach.EnableWindow( false);
					artenLebensraumDlg->button_erase_stark.EnableWindow( false);
                    artenLebensraumDlg->GetDlgItem( IDC_Datenbearbeiten)
                            ->ShowWindow( TRUE);
                    artenLebensraumDlg->GetDlgItem( IDC_Datena)->ShowWindow(
                            TRUE);
                    artenLebensraumDlg->GetDlgItem( IDOK)->ShowWindow( FALSE);
                    artenLebensraumDlg->GetDlgItem( IDCANCEL)->ShowWindow(
                            FALSE);
                    //artenLebensraumDlg->SetDlgItemTextA(IDC_Vogelname, "Lebensraum");
                } else
                    AfxMessageBox( "Error Creating Dialog Object", MB_YESNO, 0);
            }
        }
        OnOK();
    } else
        AfxMessageBox( "Bitte treffen Sie erst eine Auswahl!", MB_YESNO, 0);

}
