#pragma once

#include <apl_gui.h>
#include "apl_api.h"
#include "resource.h"


// CFindPrdInstDlgEx dialog

class CFindPrdInstDlgEx : public CaplTranslateDialog
{
	// Construction
protected:
	void FindToRefusals();
	void FindAllPrdInst();
	void FindInstalledPrdInst();
	void FindNonUsed();
	TFindPrdInstModes m_Mode;
	DWORD			m_UserDw;
	//LPUserFindFunct	m_UserFunct;

	CaplPreExploitationMgr*	m_ExploitationMgr;

	int						m_PlaceColInd;
	int						m_StateColInd;
	UINT					m_Flags;

	// базовые параметры - заданные при инициализации поиска
	// используются для проверки корректности ввода параметров
	CString		m_sBaseName;
	CString		m_sBaseId;

	// проверка корректности введенных параметров поиска
	bool CheckCorrect();

public:
	bool m_bAutoExecute;
	CaplInstance* m_iPlaner;
	CaplInstance* m_SelectedItem;
	CFindPrdInstDlgEx(CaplAPI* api, TFindPrdInstModes Mode, UINT Flags, CWnd* pParent = NULL);   // standard constructor
	//CFindPrdInstDlgEx(CaplAPI* api, TFindPrdInstModes Mode, LPUserFindFunct lpFunct, DWORD dwData, UINT Flags, CWnd* pParent = NULL);   // standard constructor

	BOOL	m_bEnableId;
	BOOL	m_bEnableName;
	BOOL	m_bEnableSN;

	// Dialog Data
	//{{AFX_DATA(CFindPrdInstDlgEx)
	enum { IDD = IDD_FIND_PRDINST };
	CaplButton	m_create_btn;
	CaplButton		m_find_btn;
	CSortListCtrl	m_ResultCtrl;
	CaplButton		m_cancel_btn;
	CaplButton		m_ok_btn;
	CButton			m_check_include_analogs;
	CString			m_sSN;
	CString			m_sName;
	CString			m_sId;
	int				m_bIncludeAnalogs;
	//}}AFX_DATA


	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFindPrdInstDlgEx)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

	// Implementation
protected:
	void FindItemChilds();
	void ShowResult(aplExtent &ext);
	CaplAPI* m_api;

	// Generated message map functions
	//{{AFX_MSG(CFindPrdInstDlgEx)
	virtual BOOL OnInitDialog();
	afx_msg void OnFind();
	virtual void OnOK();
	afx_msg void OnDblclkResult(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnCreate();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:
};
