中间件标准版5.1git,去除基础模块

GridTrunkMatch.cpp 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. // GridTrunkMatch.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "FirstStep.h"
  5. #include "GridTrunkMatch.h"
  6. #include "TrunkMatch.h"
  7. #include "Config.h"
  8. // CGridTrunkMatch
  9. IMPLEMENT_DYNAMIC(CGridTrunkMatch, CMFCPropertyGridCtrl)
  10. CGridTrunkMatch::CGridTrunkMatch()
  11. {
  12. }
  13. CGridTrunkMatch::~CGridTrunkMatch()
  14. {
  15. }
  16. /*****************************************************************
  17. **【函数名称】 __locate
  18. **【函数功能】 定位中继匹配
  19. **【参数】
  20. **【返回值】
  21. ****************************************************************/
  22. CMFCPropertyGridProperty* CGridTrunkMatch::__locate( UINT TrunkMatchId )
  23. {
  24. int Count = GetPropertyCount();
  25. CMFCPropertyGridProperty* pTrunkMatch = NULL;
  26. for(int i = 0; i < Count; ++i)
  27. {
  28. pTrunkMatch = GetProperty(i);
  29. ASSERT(pTrunkMatch != NULL);
  30. if(pTrunkMatch->GetData() == TrunkMatchId)
  31. return pTrunkMatch;
  32. }
  33. return NULL;
  34. }
  35. /*****************************************************************
  36. **【函数名称】 __add
  37. **【函数功能】 添加指定中继匹配
  38. **【参数】
  39. **【返回值】
  40. ****************************************************************/
  41. void CGridTrunkMatch::__add( TRUNK_MATCH* pTrunkMatch )
  42. {
  43. CString Data;
  44. Data.Format(_T("中继匹配%d"), pTrunkMatch->Id);
  45. CMFCPropertyGridProperty* pTrunkMatchUI = new CMFCPropertyGridProperty(Data, pTrunkMatch->Id);
  46. pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("字冠"), pTrunkMatch->Prefix, NULL, pTrunkMatch->Id));
  47. pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("透传号码"), pTrunkMatch->Caller, NULL, pTrunkMatch->Id));
  48. Data.Format(_T("%d"), pTrunkMatch->TrunkItemId);
  49. pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("中继项ID"), Data, NULL, pTrunkMatch->Id));
  50. Data.Format(_T("%d"), pTrunkMatch->Priority);
  51. CMFCPropertyGridProperty* pPriority = new CMFCPropertyGridProperty(_T("优先级"), Data, _T("相同字冠优先级高的先被匹配"), pTrunkMatch->Id);
  52. pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_NORMAL);
  53. pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGH);
  54. pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGHER);
  55. pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGHEST);
  56. pPriority->AllowEdit(FALSE);
  57. pTrunkMatchUI->AddSubItem(pPriority);
  58. AddProperty(pTrunkMatchUI);
  59. }
  60. /*****************************************************************
  61. **【函数名称】 init
  62. **【函数功能】 初始化
  63. **【参数】
  64. **【返回值】
  65. ****************************************************************/
  66. void CGridTrunkMatch::init( void )
  67. {
  68. EnableHeaderCtrl(FALSE);
  69. SetVSDotNetLook();
  70. CRect rect;
  71. GetClientRect(rect);
  72. HDITEM item;
  73. item.cxy = rect.Width() / 3;
  74. item.mask = HDI_WIDTH;
  75. GetHeaderCtrl().SetItem(0, &item);
  76. CTrunkMatch& TrunkMatch = CConfig::GetInstance().trunkMatch();
  77. POSITION Pos = TrunkMatch.GetHeadPosition();
  78. while(Pos != NULL)
  79. {
  80. TRUNK_MATCH* pMatch = TrunkMatch.GetNext(Pos);
  81. ASSERT(pMatch != NULL);
  82. __add(pMatch);
  83. }
  84. }
  85. /*****************************************************************
  86. **【函数名称】 addTrunkMatch
  87. **【函数功能】 添加TrunkMatch
  88. **【参数】
  89. **【返回值】
  90. ****************************************************************/
  91. bool CGridTrunkMatch::addTrunkMatch( UINT TrunkMatchId )
  92. {
  93. if(__locate(TrunkMatchId) != NULL)
  94. return false;
  95. TRUNK_MATCH Match = { 0 };
  96. Match.Id = TrunkMatchId;
  97. Match.Priority = CONST_TRUNK_MATCH_PRIORITY_HIGHEST;
  98. __add(&Match);
  99. return true;
  100. }
  101. /*****************************************************************
  102. **【函数名称】 delTrunkMatch
  103. **【函数功能】 删除TrunkMatch
  104. **【参数】
  105. **【返回值】
  106. ****************************************************************/
  107. void CGridTrunkMatch::delTrunkMatch( UINT TrunkMatchId )
  108. {
  109. CMFCPropertyGridProperty* pMatch = __locate(TrunkMatchId);
  110. if(pMatch != NULL)
  111. DeleteProperty(pMatch);
  112. }
  113. /*****************************************************************
  114. **【函数名称】 upload
  115. **【函数功能】 上传TrunkMatch信息
  116. **【参数】
  117. **【返回值】
  118. ****************************************************************/
  119. void CGridTrunkMatch::upload( void )
  120. {
  121. CTrunkMatch& TrunkMatch = CConfig::GetInstance().trunkMatch();
  122. TrunkMatch.Free();
  123. TRUNK_MATCH* pMatch = NULL;
  124. CString Value;
  125. CMFCPropertyGridProperty* pMatchOnUI = NULL;
  126. for (int i = 0; i < GetPropertyCount(); ++i)
  127. {
  128. pMatchOnUI = GetProperty(i);
  129. ASSERT(pMatchOnUI != NULL);
  130. pMatch = new TRUNK_MATCH;
  131. ZeroMemory(pMatch, sizeof(TRUNK_MATCH));
  132. pMatch->Id = pMatchOnUI->GetData();
  133. Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_PREFIX)->GetValue();
  134. lstrcpy(pMatch->Prefix, Value);
  135. Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_CALLER)->GetValue();
  136. lstrcpy(pMatch->Caller, Value);
  137. Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_TRUNK_ITEM_ID)->GetValue();
  138. sscanf_s(Value, "%d", &pMatch->TrunkItemId);
  139. Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_PRIORITY)->GetValue();
  140. sscanf_s(Value, "%d", &pMatch->Priority);
  141. TrunkMatch.AddTail(pMatch);
  142. }
  143. }
  144. BEGIN_MESSAGE_MAP(CGridTrunkMatch, CMFCPropertyGridCtrl)
  145. END_MESSAGE_MAP()
  146. // CGridTrunkMatch 消息处理程序