// visdireckt.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include "Ecopay.h"
#include "visdireckt.h"
#include "MySQLConnector.h"
#include "ausgleichszahlung.h"

// visdireckt

IMPLEMENT_DYNCREATE(visdireckt, CScrollView)

visdireckt::visdireckt()
{

}

visdireckt::~visdireckt()
{
}

BEGIN_MESSAGE_MAP(visdireckt, CScrollView)
END_MESSAGE_MAP()

int konfid2;
int konfigurationsInt2;
// visdireckt-Zeichnung

//void visdireckt::OnInitialUpdate(vector<vector<ergebnis*> > mergeb, bool datenbak)
void visdireckt::OnInitialUpdate()
{
    CScrollView::OnInitialUpdate();
    //massnahmenergeb = mergeb;
    //daten = datenbak;

    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_VIS_Filter, 0);
    wndFilterKontrolleDialog.CenterWindow( this);
    wndFilterKontrolleDialog.ShowWindow( SW_SHOW);
    konfid2 = 0;
    konfigurationsInt2 = 0;
}
visdireckt *visdireckt::GetView()
{
    CFrameWnd * pFrame = (CFrameWnd *) (AfxGetApp()->m_pMainWnd);
//(CTest_SDIDoc*) pFrame->GetActiveDocument();

    CView *pV = pFrame->GetActiveView();

    if( pV == 0)
    {
        // error handling

    }
    return (visdireckt*) pV;
}
void visdireckt::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;
    int bland;
    mysql->holeBlandZwi( bland);

    mysql->holeMassnahmenZwi();

    mysql->holeArtenZwi( pDC);

    //AfxMessageBox("hole Arten",MB_YESNO,0);
    //wndFilterKontrolleDialog.m_combo2.ResetContent();
    wndFilterKontrolleDialog.m_massnahme.ResetContent();

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

        //wndFilterKontrolleDialog.ComboBox->AddString((LPCTSTR)str);
        wndFilterKontrolleDialog.m_massnahme.AddString( nstr);

    }

    nstr.Format( _T( "%d"), mysql->massnahmenfilter[ konfid2]);
    wndFilterKontrolleDialog.m_massnahme.SelectString( 0, nstr);
    if( wndFilterKontrolleDialog.erneuereCombobox == true)
    {
        for( int i = 0; i < mysql->artenanzahl; i++)
        {
            wndFilterKontrolleDialog.addArt( (LPCTSTR) mysql->artennamen[ i]);
            //wndFilterKontrolleDialog.ComboBox2->AddString((LPCTSTR)mysql->ArtenNamen[wndFilterKontrolleDialog.KonfigurationsIndex2][i]);
            wndFilterKontrolleDialog.m_combo_art.SelectString( 0,
                    (LPCTSTR) mysql->artennamen[ 0]);
            wndFilterKontrolleDialog.erneuereCombobox = false;
        }
    }
    //AfxMessageBox("vor dem Zeichnen",MB_YESNO,0);
    // zeichne alles Pixel ohne Ergebnisse

    if( wndFilterKontrolleDialog.zeigeAllgemein)
    {
        mysql->holePixel( pDC, wndFilterKontrolleDialog.Filter, bland);
    }

    // zeichne den Ergebnis Layer darüber
    if( wndFilterKontrolleDialog.zeigeErgebnisse)
    {
        konfid2 = wndFilterKontrolleDialog.massnahme;
        konfigurationsInt2 = mysql->massnahmenfilter[ konfid2];
        CString mvartwahl;
        int nIndex = wndFilterKontrolleDialog.m_combo_art.GetCurSel();
        wndFilterKontrolleDialog.m_combo_art.GetLBText( nIndex, mvartwahl);

        if( wndFilterKontrolleDialog.allemassnahmen)
        {
            if( wndFilterKontrolleDialog.ErgebnisFilter == mysql->GEWINN_FILTER)
            {
                mysql->holeGewinnLayer( pDC,
                        wndFilterKontrolleDialog.ErgebnisFilter, mvartwahl);
            } else
            {
                if( wndFilterKontrolleDialog.ErgebnisFilter
                        == mysql->QUALITAET_FILTER
                        || wndFilterKontrolleDialog.ErgebnisFilter
                                == mysql->GRUENLAND_FILTER)
                    mysql->holeArtenQualitaetLayer( pDC,
                            wndFilterKontrolleDialog.ErgebnisFilter, mvartwahl);
            }

        } else
        {

            if( wndFilterKontrolleDialog.ErgebnisFilter == mysql->GEWINN_FILTER)
            {
                mysql->holeGewinnLayer( pDC,
                        wndFilterKontrolleDialog.ErgebnisFilter, mvartwahl,
                        konfigurationsInt2);
            } else
            {
                if( wndFilterKontrolleDialog.ErgebnisFilter
                        == mysql->QUALITAET_FILTER
                        || wndFilterKontrolleDialog.ErgebnisFilter
                                == mysql->GRUENLAND_FILTER)
                    mysql->holeArtenQualitaetLayer( pDC,
                            wndFilterKontrolleDialog.ErgebnisFilter, mvartwahl,
                            konfigurationsInt2);
            }
        }
    }

    mysql->holeUmriss( pDC, bland);

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

     pDC->SetTextColor(RGB(0, 0, 0));
     pDC->TextOut(870, 30, _T("Massnahmen ID:") );
     pDC->TextOut(1020, 30, str3 );
     
     CString massnahmenString;
     massnahmenString = mysql->holeMassnahme(konfigurationsInt2);
     
     pDC->TextOut(870, 50, massnahmenString );*/
    vector < CString > massnahmenString;
    if( wndFilterKontrolleDialog.allemassnahmen)
        mysql->holeMassnahmenzw( massnahmenString, konfigurationsInt2, false);

    else
        mysql->holeMassnahmenzw( massnahmenString, konfigurationsInt2, true);

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

    // TODO: Hier Code zum Zeichnen einfügen
}

// visdireckt-Diagnose

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

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

// visdireckt-Meldungshandler
