//ROMTEAM Networks (Gabriela Dumitrascu 25/02/98)

///////////////////////////////////////////////////////////////////////////////////////////////////
// Description : ntwdia.hpp 
//   
// header file
///////////////////////////////////////////////////////////////////////////////////////////////////
// inherit from  :	CFormView
///////////////////////////////////////////////////////////////////////////////////////////////////
// Creation date: 1998-02-25                        Author: CPA2 Gabriela Dumitrascu
///////////////////////////////////////////////////////////////////////////////////////////////////
// Modification date:			                      Author: 
///////////////////////////////////////////////////////////////////////////////////////////////////


#ifndef NTWDIA_HPP
#define NTWDIA_HPP

class NtwDia : public CFormView
{
public:
	NtwDia(CWnd* pParent = NULL);	// standard constructor
	DECLARE_DYNCREATE(NtwDia)
	void fn_vInitDialog ( void ); // function to init the dialog

// Form Data
public:
	//{{AFX_DATA(NtwDia)
	enum { IDD = IDD_GRAPH_DIALOG };
	CListBox	m_ConnectList;
	CComboBox	m_WPList;
	CComboBox	m_GraphNameList;
	CString		m_EditGraph;
	CButton		m_Symetric;
// Shaitan NewParam {
//	long	m_lWeight;
//End Shaitan NewParam }
	CString	m_EditWP;
	//}}AFX_DATA

// Attributes
public:
// Shaitan Correction {
//	enum {statusReady, statusNextWP, statusPreviousWP} m_status;
//	WP_tdHandleOfArc m_hSelArc;
//	CPA_List<CPA_SuperObject> ms_oListOfArrows; // list of all the arrow
// End Shaitan Correction }

// Operations
public:
	void fn_vRefreshDialog();

// Shaitan Correction {
	//void fn_vRefreshGraphList(int iGraph = 0, int iNode = 0, int iArc = 0);
	//void fn_vRefreshWPList(int iGraph, int iNode = 0, int iArc = 0);
	//void fn_vRefreshConnectList(int iGraph, int iNode, int iArc = 0);

//	BOOL fn_bSetCrtWaypoint(WayPoint* poWayPoint);
//	BOOL fn_bSetCrtConnection(class Connection* poConnection);
//	BOOL fn_bAddOrDeleteWaypoint(WayPoint* poWayPoint);

//	CPA_SuperObject* fn_pCreateConnection(int iGraph, int iNode, int iArc);
//	void fn_vDestroyAllArrows();
//	void fn_vShowOutLinks ();
//	void fn_vShowInLinks ();
//	void fn_vShowAllLinks ();
//	void fn_vCancelDisplayLinks();
//	void fn_vDefineNextWP();
//	void fn_vDefinePreviousWP();
//	void fn_vDeleteConnection(class Connection* pConnection);
//	void fn_vMove ( MTH3D_tdstVector* pstTranslation = NULL);
//	void fn_vShowAllWP();
//	void fn_vDeleteWP();
// End Shaitan Correction }

// Shaitan Correction  {
	int  GetIndexOfGraph		(Graph *pGraph);
	int	 GetIndexOfNode			(WayPoint *pNode);
	int	 GetIndexOfConnection	(WayPoint *pDstNode);
	
	void fn_vSelectGraph		(Graph *pGraph);
	void fn_vSelectNode			(Graph *pGraph, WayPoint *pNode);
	void fn_vSelectConnection	(Graph *pGraph, WayPoint *pSrcWaypoint, WayPoint *pDstWaypoint);

	void fn_vRefreshGraphList	(Graph *pGraph);
	void fn_vRefreshNodeList	(Graph *pGraph, WayPoint *pNode);
	void fn_vRefreshConnectList	(Graph *pGraph, WayPoint *pSrcWaypoint, WayPoint *pDstWaypoint);
//End Shaitan Correction }

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(NtwDia)
	public:
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	
	// Generated message map functions
	//{{AFX_MSG(NtwDia)
	afx_msg void OnDestroy();
	afx_msg void OnSelchangeGraphName();
	afx_msg void OnSelchangeNtwWp();
// Shaitan Correction {
	afx_msg void OnDblClkNtwWp();
	afx_msg void OnChangeGraphName();
//End Shaitan Correction }
	afx_msg void OnSelchangeConnectList();
	afx_msg void OnGraphInsert();
	afx_msg void OnGraphDelete();
	afx_msg void OnConnectDelete();
	afx_msg void OnConnectInsert();
	afx_msg void OnWpInsert();
	afx_msg void OnWpDelete();
// Shaitan NewParam {
	afx_msg void OnEditNode();
	afx_msg void OnEditConnect();
//	afx_msg void OnDefaultWeight();
	afx_msg void OnDefaultAllWeights();
	afx_msg void OnEditAllConnects();
//	afx_msg void OnChangeWeight();
//	afx_msg void OnCapacity();
//End Shaitan NewParam }
	afx_msg void OnDefault();
// Shaitan Correction  {
	afx_msg void OnSize(UINT, int, int);
//End Shaitan Correction }
	afx_msg void OnSymetric();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

// Shaitan Correction  {
private:
	int m_iSelectedGraph;
	int m_iSelectedNode;
	int m_iSelectedConnection;
	BOOL m_bInitialised;
//End Shaitan Correction }
};

/////////////////////////////////////////////////////////////////////////////

// Shaitan Correction {
class NtwCreationDialog : public CDialog
{
private:
	NtwDia *m_pParentDialog;
	Graph  *m_pEditedGraph;

// Construction
public:
	NtwCreationDialog(CString csDefaultName, NtwDia *pParentDialog, Graph *pGraph, CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(EdActors_ActorNameChangeDialog)
	enum { IDD = IDD_CREATION_DIALOG };
	CString	m_csNewName;
	//}}AFX_DATA


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

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(EdActors_ActorNameChangeDialog)
	virtual void OnOK();
	afx_msg void OnDestroy();
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//End Shaitan Correction }

// Shaitan NewParam {
class NtwParameterDialog : public CDialog
{
private:
	NtwDia		*m_pParentDialog;
	Graph		*m_pEditedGraph;
	WayPoint	*m_pSrcNode;
	WayPoint	*m_pDstNode;
	BOOL		m_bEditConnection;
	BOOL		m_bAll;
	BOOL		m_bSymetric;

// Construction
public:
	NtwParameterDialog(NtwDia *pParentDialog, Graph *pGraph, WayPoint *pSrcNode, WayPoint *pDstNode = NULL, BOOL bAll = FALSE, CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(EdActors_ActorNameChangeDialog)
	enum { IDD = IDD_GRAPH_PARAMETERS };
	CEdit	m_cEditWeight;
	CStatic	m_cStaticWeight;
	CButton m_cDefaultWeight;
	CStatic	m_cStaticType;
	CButton m_cNextOK;
	CButton m_cPrevOK;
	CButton m_cNextCancel;
	CButton m_cPrevCancel;
	CButton m_cNextWPOK;
	CButton m_cPrevWPOK;
	CButton m_cNextWPCancel;
	CButton m_cPrevWPCancel;
	CStatic m_cStaticNode;
	CStatic m_cStaticLink;
	CButton	m_cSymetric;
	//}}AFX_DATA


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

// Implementation
protected:

	void fn_vInitParameters (void);
	void fn_vApplyModifications (void);
	void fn_vUpdateButtons (void);

	// Generated message map functions
	//{{AFX_MSG(EdActors_ActorNameChangeDialog)
	virtual void OnOK();
	afx_msg void OnPrevOK();
	afx_msg void OnNextOK();
	afx_msg void OnPrevCancel();
	afx_msg void OnNextCancel();
	afx_msg void OnPrevWPOK();
	afx_msg void OnNextWPOK();
	afx_msg void OnPrevWPCancel();
	afx_msg void OnNextWPCancel();
	afx_msg void OnDefaultWeight();
	afx_msg void OnDestroy();
	afx_msg void OnSymetric();
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//End Shaitan NewParam }

#endif

//ENDROMTEAM Networks (Gabriela Dumitrascu)

