// visualisierung.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include "Ecopay.h"
#include "visualisierung.h"
#include "MySQLConnector.h"

// Cvisualisierung

IMPLEMENT_DYNCREATE(Cvisualisierung, CScrollView)

Cvisualisierung::Cvisualisierung()
{

}

Cvisualisierung::~Cvisualisierung()
{
}

BEGIN_MESSAGE_MAP(Cvisualisierung, CScrollView)
END_MESSAGE_MAP()

// Cvisualisierung-Zeichnung

int konfid1;
int konfigurationsInt1;
void Cvisualisierung::OnInitialUpdate()
{
    CScrollView::OnInitialUpdate();
    GetParent()->ShowWindow( SW_MAXIMIZE);

    CSize sizeTotal;
    // TODO: Gesamte Größe dieser Ansicht berechnen
    sizeTotal.cx = sizeTotal.cy = 700;
    SetScrollSizes( MM_TEXT, sizeTotal);

    // erstellen den Filterkontroll Dialog
    wndFilterKontrolleDialog.Create( IDD_FILTERKONTROLLE, 0);
    wndFilterKontrolleDialog.CenterWindow( this);
    wndFilterKontrolleDialog.ShowWindow( SW_SHOW);
    konfid1 = 0;
    konfigurationsInt1 = 0;

}

void Cvisualisierung::OnDraw( CDC* pDC)
{
    CDocument* pDoc = GetDocument();
    ASSERT_VALID( pDoc);
    if( !pDoc)
        return;
    // TODO: Hier Code zum Zeichnen einfügen
    MySQLConnector *mysql = new MySQLConnector();

    //try{
    CString nstr;
    mysql->holeKonfigurationen();

    mysql->holeArten( pDC, wndFilterKontrolleDialog.ErgebnisFilter);
    //AfxMessageBox("hole Arten",MB_YESNO,0);
    //wndFilterKontrolleDialog.m_combo2.ResetContent();
    wndFilterKontrolleDialog.m_konfigID.ResetContent();

    // fügen Konfigurations IDs der ComboBox hinzu
    for( int i = 0; i < mysql->konfigurationenAnzahl; i++)
    {
        //char konfString[11];
        //_itoa_s(mysql->konfigurationen[i], konfString , 10);
        //CString str(konfString); 
        //nstr.Format(_T("%d"),mysql->konfigurationen[i].ID);

        //wndFilterKontrolleDialog.ComboBox->AddString((LPCTSTR)str);
        wndFilterKontrolleDialog.m_konfigID.AddString(
                mysql->konfigurationen[ i].name);

    }

    //nstr.Format(_T("%d"),mysql->konfigurationen[konfid1]);
    wndFilterKontrolleDialog.m_konfigID.SelectString( 0, nstr);
    if( wndFilterKontrolleDialog.erneuereCombobox == true)
    {
        for( int i = 0;
                i
                        < mysql->artenAnzahl[ wndFilterKontrolleDialog
                                .KonfigurationsIndex2]; i++)
        {
            wndFilterKontrolleDialog.addArt(
                    (LPCTSTR) mysql->ArtenNamen[ wndFilterKontrolleDialog
                            .KonfigurationsIndex2][ i]);
            //wndFilterKontrolleDialog.ComboBox2->AddString((LPCTSTR)mysql->ArtenNamen[wndFilterKontrolleDialog.KonfigurationsIndex2][i]);
            wndFilterKontrolleDialog.m_combo2.SelectString( 0,
                    (LPCTSTR) mysql->ArtenNamen[ wndFilterKontrolleDialog
                            .KonfigurationsIndex2][ 0]);
            wndFilterKontrolleDialog.erneuereCombobox = false;
        }
    }
    //AfxMessageBox("vor dem Zeichnen",MB_YESNO,0);
    // zeichne alles Pixel ohne Ergebnisse
    if( wndFilterKontrolleDialog.zeigeAllgemein)
    {
        mysql->holePixel( pDC, wndFilterKontrolleDialog.Filter,
                mysql->konfigurationen[ wndFilterKontrolleDialog
                        .KonfigurationsIndex2].bundeslandID);
    }

    // zeichne den Ergebnis Layer darüber
    if( wndFilterKontrolleDialog.zeigeErgebnisse)
    {
        konfid1 = wndFilterKontrolleDialog.KonfigurationsIndex2; //platz in Auswahlliste
        konfigurationsInt1 = mysql->konfigurationen[ konfid1].ID;

        if( wndFilterKontrolleDialog.ErgebnisFilter == mysql->ART_FILTER
                || wndFilterKontrolleDialog.ErgebnisFilter
                        == mysql->QUALITAET_FILTER)
        {
            mysql->holeArtenLayer( pDC, wndFilterKontrolleDialog.ErgebnisFilter,
                    konfigurationsInt1,
                    wndFilterKontrolleDialog.KonfigurationsIndex2,
                    wndFilterKontrolleDialog.ArtenIndex);
        } else
        {
            mysql->holeErgebnisLayer( pDC,
                    wndFilterKontrolleDialog.ErgebnisFilter,
                    konfigurationsInt1);
        }
    }
    mysql->holeUmriss( pDC, mysql->konfigurationen[ konfid1].bundeslandID);

    // plottet die Konfigurations ID aus.
    char bufferKonfID[ 33];
    //itoa(konfigurationsInt,bufferKonfID,10);
    //CString str3(bufferKonfID);
    CString str3;
    //str3.Format(_T("%d"),konfigurationsInt1);

    pDC->SetTextColor( RGB( 0, 0, 0));
    pDC->TextOut( 870, 30, _T( "Konfiguration:"));
    pDC->TextOut( 1050, 30, mysql->konfigurationen[ konfid1].name);

    vector < CString > massnahmenString;
    massnahmenString = mysql->holeMassnahmen( konfigurationsInt1);
    vector< CString>::iterator mit;
    int zeile = 0;
    for( mit = massnahmenString.begin(); mit != massnahmenString.end(); mit++)
    {
        pDC->TextOut( 870, 50 + zeile, *mit);
        zeile = zeile + 20;
    }

    // trennen die Datenbank Verbindung

    // falls der speicher Bool gesetzt ist speichern wir die jetzige Ansicht ab
    /*if(wndFilterKontrolleDialog.speichereBild){
     if(wndFilterKontrolleDialog.ErgebnisFilter == mysql->ART_FILTER || wndFilterKontrolleDialog.ErgebnisFilter == mysql->QUALITAET_FILTER){
     this->speicherBildAb(pDC,konfigurationsInt,wndFilterKontrolleDialog.Filter,mysql->ArtenNamen[wndFilterKontrolleDialog.KonfigurationsIndex2][wndFilterKontrolleDialog.ArtenIndex]);
     }else{
     this->speicherBildAb(pDC,konfigurationsInt,wndFilterKontrolleDialog.Filter,_T("-1"));
     }
     wndFilterKontrolleDialog.speichereBild = false;
     }
     */
    //	mysql->closeConnection();

    /*}catch(sql::SQLException &e) {
     int code =  e.getErrorCode();
     string error = e.what();
     char er[1000];
     lstrcpy(er, error.c_str());
     AfxMessageBox(er,MB_YESNO,0);
     }*/

}

// Cvisualisierung-Diagnose

#ifdef _DEBUG
void Cvisualisierung::AssertValid() const
{
    CScrollView::AssertValid();
}

#ifndef _WIN32_WCE
void Cvisualisierung::Dump(CDumpContext& dc) const
{
    CScrollView::Dump(dc);
}
#endif
#endif //_DEBUG

// Cvisualisierung-Meldungshandler
