// FilterKontrolle.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include "Visualizer.h"
#include "FilterKontrolle.h"

// FilterKontrolle-Dialogfeld

IMPLEMENT_DYNAMIC(FilterKontrolle, CDialog)

FilterKontrolle::FilterKontrolle(CWnd* pParent /*=NULL*/)
: CDialog(FilterKontrolle::IDD, pParent)
{

}

FilterKontrolle::~FilterKontrolle()
{
}

void FilterKontrolle::DoDataExchange( CDataExchange* pDX)
{
    CDialog::DoDataExchange( pDX);
    DDX_Control( pDX, 1011, m_konfigID);
    DDX_Control( pDX, IDC_COMBO2, m_combo2);
    DDX_Control( pDX, IDC_ALLGEMEIN, m_allepixel);
    DDX_Control( pDX, IDC_ERGEBNIS, m_nurergebnis);
}
/**
 *  Hier wird der Dialog initialisiert. Das heißt hier werden Werte gesetzt die wir bei der Initialisierung setzen wollen.
 * 
 */
BOOL FilterKontrolle::OnInitDialog()
{
    CDialog::OnInitDialog();

    //aktivieren der Buttons
    CButton *kostenRadio = (CButton *) GetDlgItem( IDC_KOSTEN);
    CButton *waldRadio = (CButton *) GetDlgItem( IDC_WALD);
    CButton *ergebnisCheck = (CButton *) GetDlgItem( IDC_ERGEBNIS);
    CButton *allgemeinCheck = (CButton *) GetDlgItem( IDC_ALLGEMEIN);
    // Comboboxen:

    ComboBox2 = (CComboBox *) GetDlgItem( IDC_COMBO2);

    kostenRadio->SetCheck( 1);
    ErgebnisFilter = 9;
    waldRadio->SetCheck( 1);
    Filter = 2;
    ergebnisCheck->SetCheck( 0);
    zeigeErgebnisse = true;
    allgemeinCheck->SetCheck( 1);
    zeigeAllgemein = true;
    speichereBild = false;

    ArtenIndex = 0;
    KonfigurationsIndex2 = 0;
    erneuereCombobox = true;

    return true;
}

BEGIN_MESSAGE_MAP(FilterKontrolle, CDialog)
ON_BN_CLICKED(IDC_SIEDLUNG, &FilterKontrolle::OnBnClickedSiedlung)
ON_BN_CLICKED(IDC_WALD, &FilterKontrolle::OnBnClickedWald)
ON_BN_CLICKED(IDC_HOCHLAND, &FilterKontrolle::OnBnClickedHochland)
//ON_BN_CLICKED(IDC_ENTWAESSERT, &FilterKontrolle::OnBnClickedEntwaessert)
ON_BN_CLICKED(IDC_GRUEN, &FilterKontrolle::OnBnClickedGruenland)
ON_BN_CLICKED(IDC_KOSTEN, &FilterKontrolle::OnBnClickedKosten)
ON_BN_CLICKED(IDC_QUALITAET, &FilterKontrolle::OnBnClickedQualitaet)
ON_BN_CLICKED(IDC_ALLGEMEIN, &FilterKontrolle::OnBnClickedAllgemein)
ON_BN_CLICKED(IDC_ERGEBNIS, &FilterKontrolle::OnBnClickedErgebnis)
ON_BN_CLICKED(IDC_ART, &FilterKontrolle::OnBnClickedArt)
//ON_CBN_SELCHANGE(IDC_COMBO1, &FilterKontrolle::OnCbnSelchangeCombo1)
ON_CBN_SELCHANGE(IDC_COMBO2, &FilterKontrolle::OnCbnSelchangeCombo2)
ON_BN_CLICKED(IDC_SAVE_PIC, &FilterKontrolle::OnBnClickedSavePic)
ON_CBN_SELCHANGE(1011, &FilterKontrolle::OnCbnSelchange1011)
ON_BN_CLICKED(IDC_Bearbeitung, &FilterKontrolle::OnBnClickedBearbeitung)
ON_WM_CLOSE()
END_MESSAGE_MAP()

CView * scroll;

/**
 * Aktualisiert die Visualizer View.
 *
 */
void FilterKontrolle::ViewUpdate()
{
    pActiveFrame = (CMDIChildWnd*) ((CMDIFrameWnd*) (AfxGetApp()->m_pMainWnd))
            ->MDIGetActive();
    try
    {
        pActiveFrame->GetActiveView();
        pActiveFrame->Invalidate( NULL);
    } catch( ...)
    {

    }
}
//#### User Interaktionen abfangen: ####

void FilterKontrolle::OnBnClickedSiedlung()
{
    Filter = 4;
    TRACE0( "\nOnBnClickedSiedlung");
    ViewUpdate();
}

void FilterKontrolle::OnBnClickedWald()
{
    Filter = 2;
    TRACE0( "\nOnBnClickedWald");
    ViewUpdate();
}

void FilterKontrolle::OnBnClickedHochland()
{
    Filter = 1;
    TRACE0( "\nOnBnClickedHochland");
    ViewUpdate();
}
/*
 void FilterKontrolle::OnBnClickedEntwaessert()
 {
 Filter = 3;
 TRACE0("\nOnBnClickedEntwaessert");
 
 ViewUpdate();
 }
 */
void FilterKontrolle::OnBnClickedGruenland()
{

    Filter = 5;
    TRACE0( "\nOnBnClickedGruenland");

    ViewUpdate();
}

void FilterKontrolle::OnBnClickedKosten()
{
    ErgebnisFilter = 9;
    TRACE0( "\nOnBnClickedKosten");
    ViewUpdate();
}

void FilterKontrolle::OnBnClickedQualitaet()
{
    ErgebnisFilter = 7;
    TRACE0( "\nOnBnClickedQualitaet");
    ViewUpdate();
}

/**
 * Checkbox Allgemein, macht Allgemeine Filter sichbtbar oder versteckt sie.
 *
 */
void FilterKontrolle::OnBnClickedAllgemein()
{

    CButton *waldRadio = (CButton *) GetDlgItem( IDC_WALD);
    CButton *hochlandRadio = (CButton *) GetDlgItem( IDC_HOCHLAND);
    CButton *siedlungRadio = (CButton *) GetDlgItem( IDC_SIEDLUNG);
    CButton *bearbeitungRadio = (CButton *) GetDlgItem( IDC_Bearbeitung);
    CButton *gruenlandRadio = (CButton *) GetDlgItem( IDC_GRUEN);

    if( m_allepixel.GetCheck() != BST_CHECKED)
    {
        zeigeAllgemein = false;
        waldRadio->ModifyStyle( 0, WS_DISABLED);
        hochlandRadio->ModifyStyle( 0, WS_DISABLED);
        siedlungRadio->ModifyStyle( 0, WS_DISABLED);
        bearbeitungRadio->ModifyStyle( 0, WS_DISABLED);
        gruenlandRadio->ModifyStyle( 0, WS_DISABLED);
    } else
    {
        zeigeAllgemein = true;
        waldRadio->ModifyStyle( WS_DISABLED, 0);
        hochlandRadio->ModifyStyle( WS_DISABLED, 0);
        siedlungRadio->ModifyStyle( WS_DISABLED, 0);
        bearbeitungRadio->ModifyStyle( WS_DISABLED, 0);
        gruenlandRadio->ModifyStyle( WS_DISABLED, 0);
    }

    waldRadio->Invalidate( FALSE);
    hochlandRadio->Invalidate( FALSE);
    siedlungRadio->Invalidate( FALSE);
    bearbeitungRadio->Invalidate( FALSE);
    gruenlandRadio->Invalidate( FALSE);

    ViewUpdate();
}
/**
 * Checkbox Ergebnis, macht Ergebnis Filter sichbtbar oder versteckt sie.
 *
 */
void FilterKontrolle::OnBnClickedErgebnis()
{
    CButton *kostenRadio = (CButton *) GetDlgItem( IDC_KOSTEN);
    CButton *qualitätRadio = (CButton *) GetDlgItem( IDC_QUALITAET);
    CButton *artRadio = (CButton *) GetDlgItem( IDC_ART);
    CButton *waldRadio = (CButton *) GetDlgItem( IDC_WALD);
    CButton *hochlandRadio = (CButton *) GetDlgItem( IDC_HOCHLAND);
    CButton *siedlungRadio = (CButton *) GetDlgItem( IDC_SIEDLUNG);
    CButton *bearbeitungRadio = (CButton *) GetDlgItem( IDC_Bearbeitung);
    CButton *gruenlandRadio = (CButton *) GetDlgItem( IDC_GRUEN);

    if( m_nurergebnis.GetCheck() != BST_CHECKED)
    {
        zeigeErgebnisse = true;
        /*kostenRadio->ModifyStyle(0,WS_DISABLED);	
         artRadio->ModifyStyle(0,WS_DISABLED);
         qualitätRadio->ModifyStyle(0,WS_DISABLED);*/
        zeigeAllgemein = true;
        waldRadio->ModifyStyle( WS_DISABLED, 0);
        hochlandRadio->ModifyStyle( WS_DISABLED, 0);
        siedlungRadio->ModifyStyle( WS_DISABLED, 0);
        bearbeitungRadio->ModifyStyle( WS_DISABLED, 0);
        gruenlandRadio->ModifyStyle( WS_DISABLED, 0);
    } else
    {
        zeigeErgebnisse = true;
        /*kostenRadio->ModifyStyle(WS_DISABLED,0);
         artRadio->ModifyStyle(WS_DISABLED,0);
         qualitätRadio->ModifyStyle(WS_DISABLED,0);*/
        zeigeAllgemein = false;
        waldRadio->ModifyStyle( 0, WS_DISABLED);
        hochlandRadio->ModifyStyle( 0, WS_DISABLED);
        siedlungRadio->ModifyStyle( 0, WS_DISABLED);
        bearbeitungRadio->ModifyStyle( 0, WS_DISABLED);
        gruenlandRadio->ModifyStyle( 0, WS_DISABLED);

    }
    /*
     qualitätRadio->Invalidate(FALSE);
     kostenRadio->Invalidate(FALSE);
     artRadio->Invalidate(FALSE);*/
    waldRadio->Invalidate( FALSE);
    hochlandRadio->Invalidate( FALSE);
    siedlungRadio->Invalidate( FALSE);
    bearbeitungRadio->Invalidate( FALSE);
    gruenlandRadio->Invalidate( FALSE);

    ViewUpdate();
}

void FilterKontrolle::OnBnClickedArt()
{
    ErgebnisFilter = 8;
    TRACE0( "\nOnBnClickedArt");
    ViewUpdate();
}

/**
 * Combobox für die Konfigurations Ids. 
 */
/*
 void FilterKontrolle::OnCbnSelchangeCombo1()
 {
 UpdateData(TRUE);
 //CComboBox *ComboBox2 = (CComboBox *)GetDlgItem(IDC_COMBO1);
 //CComboBox *ComboBox2 = (CComboBox *)GetDlgItem(1011);
 KonfigurationsIndex2 = ComboBox2->GetCurSel();
 m_configID
 //deletAllCombo();
 UpdateData();
 ViewUpdate();
 }
 */
/**
 * Löscht alle Einträge des Combobox.
 */
void FilterKontrolle::deletAllCombo()
{

    /*
     CComboBox *ComboBox2 = (CComboBox *)GetDlgItem(IDC_COMBO2);
     CComboBox *ComboBox3 = (CComboBox *)GetDlgItem(1011);
     ComboBox2->ResetContent();
     ComboBox3->ResetContent();*/

    m_konfigID.ResetContent();
    m_combo2.ResetContent();

    erneuereCombobox = true;
}
/**
 * Fügt einen Eintrag der Combobox hinzu.
 *
 */
void FilterKontrolle::addArt( CString item)
{
    CComboBox *ComboBox2 = (CComboBox *) GetDlgItem( IDC_COMBO2);

    ComboBox2->AddString( (LPCTSTR) item);
}

/**
 * Combobox für die Arten. 
 */
void FilterKontrolle::OnCbnSelchangeCombo2()
{
    CComboBox *ComboBox2 = (CComboBox *) GetDlgItem( IDC_COMBO2);

    ArtenIndex = ComboBox2->GetCurSel();

    ViewUpdate();
}

/**
 * Button fürs Speichern. Setzt einen Bool auf true, dieser wird in der View umgesetzt. 
 */
void FilterKontrolle::OnBnClickedSavePic()
{
    speichereBild = true;
    ViewUpdate();
}

void FilterKontrolle::OnCbnSelchange1011()
{

    UpdateData (TRUE);
    //CComboBox *ComboBox2 = (CComboBox *)GetDlgItem(IDC_COMBO1);

    //CComboBox *ComboBox2 = (CComboBox *)GetDlgItem(1011);
    KonfigurationsIndex2 = m_konfigID.GetCurSel();
    deletAllCombo();
    UpdateData();
    ViewUpdate();
}

void FilterKontrolle::OnBnClickedBearbeitung()
{

    Filter = 10;
    TRACE0( "\nOnBnClickedBearbeitung");
    ViewUpdate();
}

void FilterKontrolle::OnClose()
{
    // TODO: Add your message handler code here and/or call default
    pActiveFrame = (CMDIChildWnd*) ((CMDIFrameWnd*) (AfxGetApp()->m_pMainWnd))
            ->MDIGetActive();
    pActiveFrame->MDIDestroy();
    CDialog::OnClose();
}
