///////////////////////////////////////////////////////////
// Author:			Stefan Liersch
// Contact:			stefan.liersch@googlemail.com,
//					stefan.liersch@ufz.de
//
// Date:			2008-04-15
// last modified:	2008-04-15
//
//---------------------------------------------------------
// DESCRIPTION
//---------------------------------------------------------
//
//---------------------------------------------------------
// ToDo
//---------------------------------------------------------
//	- 
///////////////////////////////////////////////////////////

//---------------------------------------------------------------------

#ifndef __PG_SOIL_SALINITY_CREATE_CONGRUENCE_MAP_DLG_H_
#define __PG_SOIL_SALINITY_CREATE_CONGRUENCE_MAP_DLG_H_

//#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
//    #pragma interface "pg_soil_salinity_create_congruence_map_dlg.h"
//#endif
//
// Include wxWidgets' headers
#ifndef WX_PRECOMP
    #include <wx/wx.h>
#endif

#include <vector>

#include "saga_api/saga_api.h"
#include "saga_gui/wksp_simplefeature.h"

typedef std::vector<int> vector_int;
//---------------------------------------------------------------------

enum ESG_SSCCM {
	ID_SSCCM_TEXT = 13000,
	ID_SSCCM_COMBO_ASSESSMENT_MAP,
	ID_SSCCM_COMBO_YEAR_ASSESSMENT,
	ID_SSCCM_COMBO_PERIOD,
	ID_SSCCM_COMBO_RISK_MAP,
	ID_SSCCM_COMBO_YEAR_RISK,
	ID_SSCCM_COMBO_SEASON,
	ID_SSCCM_BUTTON_OVERLAY
};
//---------------------------------------------------------------------

class CSoilSalinity_CongruenceMap : public wxDialog
{
public:
	CSoilSalinity_CongruenceMap(void);

	CSoilSalinity_CongruenceMap(wxWindow *parent, wxWindowID id, const wxString &title);

	~CSoilSalinity_CongruenceMap(void);

protected:

private:

	void						_Create_Dialog();
	void						_Delete_Controls();

	wxArrayString				_Get_SoilSalinityMaps(TSG_SF_CATEGORY category, vector_int& map);

	CSG_SimpleFeature*			_Get_Map(int Item);

	void						_On_Overlay(wxCommandEvent& event);

	CSG_SimpleFeature*			_Create_CongruenceMap(CSG_SimpleFeature* pSF_AssessmentMap, CSG_SimpleFeature* pSF_RiskMap);

	void						_Add_Specific_Congruence_Attributes(CSG_SimpleFeature* pSF_CongruenceMap);

	void						_Calculate_Congruence(CSG_SimpleFeature* pSF_CongruenceMap, CSG_SimpleFeature* pSF_AssessmentMap, CSG_SimpleFeature* pSF_RiskMap);

	float						_Get_Congruence_Value(float assessment, float risk);

	//CWKSP_SimpleFeature*		_Get_WKSP_SimpleFeature(CSG_SimpleFeature* pSimpleFeature);

	//-----------------------------------------------------------------
	//	CONTROLS
	//-----------------------------------------------------------------
	wxComboBox*					m_pComboAssessmentMap;
	wxComboBox*					m_pComboYearAssessment;
	wxComboBox*					m_pComboPeriod;

	wxComboBox*					m_pComboRiskMap;
	wxComboBox*					m_pComboYearRisk;
	wxComboBox*					m_pComboSeason;

	wxButton*					m_pButton_Overlay;
	//-----------------------------------------------------------------

	vector_int					m_Item_AssessmentMap;
	vector_int					m_Item_RiskMap;

	DECLARE_EVENT_TABLE()

};


#endif /* __PG_SOIL_SALINITY_CREATE_CONGRUENCE_MAP_DLG_H_ */