PropParam.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. #pragma once
  2. #include "PropItem.h"
  3. #include "PartSTDData.h"
  4. #include "PartSizeFile.h"
  5. #include "ReportProjFile.h"
  6. #include "OTSParticle.h"
  7. namespace OTSMODEL {
  8. using namespace OTSDATA;
  9. typedef enum class __declspec(dllexport) DISPLAY_PICTURE_TYPE
  10. {
  11. INVALID = -1,
  12. MIN = 0,
  13. IMAGE = 0,
  14. TABLE = 1,
  15. CHART = 2,
  16. MAX = 2
  17. }RETORT_PROP_GRID_PARAM_TYPE;
  18. typedef enum class __declspec(dllexport) DATA_SOURCE_TYPE
  19. {
  20. INVALID = -1,
  21. MIN = 0,
  22. ALL = 0,
  23. SELECTION = 1,
  24. MAX = 1
  25. }DATA_SOURCE_TYPE;
  26. typedef enum class __declspec(dllexport) IMAGE_DISPLAY_TYPE
  27. {
  28. INVALID = -1,
  29. MIN = 0,
  30. GENERAL = 0,
  31. IMAGE_GRID = 1,
  32. MAX = 1
  33. }IMAGE_DISPLAY_TYPE;
  34. typedef enum class __declspec(dllexport) MEASURE_DATA_TYPE
  35. {
  36. INVALID = -1,
  37. MIN = 0,
  38. ALL_PARTICLE = 0,
  39. ANYLYSIS_PARTICLE = 1,
  40. PARTICALE_SIZE_DISTRIBUTION = 2,
  41. MAX = 2
  42. }MEASURE_DATA_TYPE;
  43. typedef enum class __declspec(dllexport) IMAGE_TYPE
  44. {
  45. INVALID = -1,
  46. MIN = 0,
  47. BSE = 0,
  48. CLASSIFIED = 1,
  49. MAX = 1
  50. }IMAGE_TYPE;
  51. typedef enum class __declspec(dllexport) CALCULATE_TABLE_TYPE
  52. {
  53. INVALID = -1,
  54. MIN = 0,
  55. MEASURE_INFO = 0,
  56. PARTICALE_GENE_INFO = 1,
  57. PARTICALE_COMP = 2,
  58. ELEMENT_COMP = 3,
  59. PARTICALE_SIZE_DISTRIBUTION =4,
  60. AVE_ELEMENT_COMP = 5,
  61. GB_Method1 = 6,
  62. GB_Method2 = 7,
  63. ASTM = 8,
  64. DIN = 9,
  65. MAX = 9
  66. }CALCULATE_TABLE_TYPE;
  67. typedef enum class __declspec(dllexport) CALCULATE_CHART_TYPE
  68. {
  69. INVALID = -1,
  70. MIN = 0,
  71. COMMON_FIVE = 0,
  72. PARTICALE_COMP = 1,
  73. ELEMENT_COMP = 2,
  74. PARTICALE_SIZE_DISTRIBUTION = 3,
  75. TRIO_CHART = 4,
  76. MAX = 4
  77. }CALCULATE_CHART_TYPE;
  78. typedef enum class __declspec(dllexport) PARTICLE_TYPE
  79. {
  80. INVALID = -1,
  81. MIN = 0,
  82. ALL = 0,
  83. /*GRAY_LEVEL_FILTERED = 1,
  84. LOW_COUNT = 2,
  85. NO_INTERESTING_ELEMENTS = 3,*/
  86. ANALYSISED = 1,
  87. MAX = 1
  88. }PARTICLE_TYPE;
  89. typedef enum class __declspec(dllexport) STD_ID_DEFUALT
  90. {
  91. INVALID = -1,
  92. MIN = 0,
  93. ALL = 0,
  94. UMKNOWN = 1,
  95. MAX = 1
  96. } STD_ID_DEFUALT;
  97. typedef enum class __declspec(dllexport) SIZE_CLASS_DEFUALT
  98. {
  99. INVALID = -1,
  100. MIN = 0,
  101. ALL = 0,
  102. USER_DEFINDED = 1,
  103. MAX = 1
  104. } SIZE_CLASS_DEFUALT;
  105. typedef enum class __declspec(dllexport) SIZE_CAL_METHOD_TYPE
  106. {
  107. INVALID = -1,
  108. MIN = 0,
  109. LENGTH = 0,
  110. WIDTH = 1,
  111. AREA = 2,
  112. CIRCLE = 3,
  113. FLTD = 4,
  114. MAX = 4
  115. }SIZE_CAL_METHOD_TYPE;
  116. typedef enum class __declspec(dllexport) SIZE_GRID_CAL_METHOD_TYPE
  117. {
  118. INVALID = -1,
  119. MIN = 0,
  120. PARTICLE_NUM = 0,
  121. PECENT = 1,
  122. ACCUM_PERCENT = 2,
  123. MAX = 2
  124. }SIZE_GRID_CAL_METHOD_TYPE;
  125. class __declspec(dllexport) CPropParam
  126. {
  127. public:
  128. // constructor
  129. CPropParam(); // constructor
  130. CPropParam(const CPropParam&); // copy constructor
  131. CPropParam(CPropParam*); // copy constructor
  132. CPropParam& operator=(const CPropParam&); // =operator
  133. BOOL operator==(const CPropParam&); // ==operator
  134. virtual ~CPropParam(); // destructor
  135. // type
  136. DISPLAY_PICTURE_TYPE GetType() { return m_nType; }
  137. void SetType(DISPLAY_PICTURE_TYPE a_nType) { m_nType = a_nType; }
  138. // property items list
  139. CPropItemsList& GetPropItemsList() { return m_listPropItems; }
  140. virtual void SetPropertyItems() = 0;;
  141. // data source id
  142. std::vector<CString>& GetDataSourceList() { return m_listDataSource; }
  143. BOOL SetDataSourceList(std::vector<CString> a_listDataSource);
  144. int GetDataSourceId() { return m_nDataSourceId; }
  145. BOOL SetDataSourceId(int a_nDataSourceId);
  146. // data source type
  147. DATA_SOURCE_TYPE GetDataSourceType() { return m_nDataSourceType; }
  148. BOOL SetDataSourceType(DATA_SOURCE_TYPE a_nDataSourceType);
  149. // image type
  150. IMAGE_TYPE GetImageType() { return m_nImageType; }
  151. BOOL SetImageType(IMAGE_TYPE a_nImageType);
  152. // image display type
  153. IMAGE_DISPLAY_TYPE GetImageDisplayType() { return m_nImageDisplayType; }
  154. BOOL SetImageDisplayType(IMAGE_DISPLAY_TYPE a_nImageDisplayType);
  155. // measure data type
  156. MEASURE_DATA_TYPE GetMeasureDataType() { return m_nMeasureDataType; }
  157. BOOL SetMeasureDataType(MEASURE_DATA_TYPE a_nMeasureDataType);
  158. // calculate table type
  159. CALCULATE_TABLE_TYPE GetCalTableType() { return m_nCalTableType; }
  160. BOOL SetCalTableType(CALCULATE_TABLE_TYPE a_nCalTableType);
  161. // calculate chart type
  162. CALCULATE_CHART_TYPE GetCalChartType() { return m_nCalChartType; }
  163. BOOL SetCalChartType(CALCULATE_CHART_TYPE a_nCalChartType);
  164. // particle type
  165. PARTICLE_TYPE GetPartType() { return m_nPartType; }
  166. BOOL SetPartType(PARTICLE_TYPE a_nPartType);
  167. // STD index
  168. CPartSTDDataPtr GetWorkingSTDLib() { return m_pWorkingSTDLib; }
  169. BOOL SetWorkingSTDLib(CPartSTDDataPtr a_pWorkingSTDLib);
  170. int GetSTDId() { return m_nSTDId; }
  171. BOOL SetSTDId(int a_nSTDId);
  172. // size class id
  173. CPartSizeFilePtr GetWorkingSizeFile();
  174. CPartSizeFileList GetSizeFileList();
  175. BOOL SetWorkingSizeFile(CPartSizeFilePtr a_pWorkingSizeFile);
  176. int GetSizeItemId() { return m_nSizeItemId; }
  177. BOOL SetSizeItemId(int a_nSizeItemId);
  178. BOOL SetSizeClassTableId(int a_nSizeClassId);
  179. int GetSizeClassTableId(){ return m_nSizeClassTableId; }
  180. // grain size min
  181. double GetGrainSizeMin() { return m_dGrainSizeMin; }
  182. BOOL SetGrainSizeMin(double a_dGrainSizeMin);
  183. // grain size max
  184. double GetGrainSizeMax() { return m_dGrainSizeMax; }
  185. BOOL SetGrainSizeMax(double a_dGrainSizeMax);
  186. // size calculation method type
  187. SIZE_CAL_METHOD_TYPE GetSizeCalMethodType() { return m_nSizeCalMethodType; }
  188. BOOL SetSizeCalMethodType(SIZE_CAL_METHOD_TYPE a_nSizeCalMethodType);
  189. // trio chart name
  190. CString GetTrioChartName() { return m_strTrioChartName; }
  191. BOOL SetTrioChartName(CString a_strTrioChartName);
  192. BOOL SetTrioChartType(int a_TrioChartType);
  193. int GetTrioChartType() { return m_TrioChartType; }
  194. // combo data
  195. BOOL GetPropComboData(OTS_RETORT_PROP_GRID_ITEMS a_nId, int& a_nValue);
  196. BOOL SetPropComboData(OTS_RETORT_PROP_GRID_ITEMS a_nId, int a_nValue);
  197. BOOL GetPropComboStrings(OTS_RETORT_PROP_GRID_ITEMS a_nId, std::vector<CString>& a_listComboStrings);
  198. // double data
  199. BOOL GetPropDoubleData(OTS_RETORT_PROP_GRID_ITEMS a_nId, double& a_dValue);
  200. BOOL SetPropDoubleData(OTS_RETORT_PROP_GRID_ITEMS a_nId, double a_dValue);
  201. // string data
  202. BOOL GetPropStringData(OTS_RETORT_PROP_GRID_ITEMS a_nId, CString& a_strValue);
  203. BOOL SetPropStringData(OTS_RETORT_PROP_GRID_ITEMS a_nId, CString a_strValue);
  204. // get related property item
  205. BOOL GetRelatedPropItem(OTS_RETORT_PROP_GRID_ITEMS a_nId, OTS_RETORT_PROP_GRID_ITEMS& a_nRelatedPropId);
  206. BOOL UpdateAll(OTS_RETORT_PROP_GRID_ITEMS a_nId);
  207. CPropItemPtr GetPropItemById(OTS_RETORT_PROP_GRID_ITEMS a_nId);
  208. CString GetItemValueStr(OTS_RETORT_PROP_GRID_ITEMS a_nId);
  209. BOOL SetSizeClassFileFolder(CString a_folderName) { m_strSizeClassTableFileFolder = a_folderName; return TRUE; }
  210. CString GetSizeClassFileFolder() {
  211. return m_strSizeClassTableFileFolder;
  212. }
  213. COTSParticleList GetSelectParticle() { return m_listSelectParticle; }
  214. void SetSelectParticle(COTSParticleList a_listSelectParticle) { m_listSelectParticle = a_listSelectParticle; };
  215. void SetReortProjFile(CReportProjFilePtr f) { m_pReportProjFile = f; }
  216. CReportProjFilePtr GetReportProjFile() { return m_pReportProjFile; }
  217. CTriTempFilePtr GetTriTempFile() { return m_CTriTempFilePtr; }
  218. void SetTriTempFile(CTriTempFilePtr a_TritempFile) { m_CTriTempFilePtr = a_TritempFile; }
  219. // ternary phase diagram template.
  220. CString GetTopName() { return m_TopName; }
  221. BOOL SetTopName(CString a_TopName);
  222. CString GetLeftName() { return m_LeftName; }
  223. BOOL SetLeftName(CString a_LeftName);
  224. CString GetRightName() { return m_RightName; }
  225. BOOL SetRightName(CString a_RightName);
  226. std::vector<CString>& GetTopElementName() { return m_listTopElementName; }
  227. BOOL SetTopElementName(std::vector<CString> a_listTopElementName);
  228. std::vector<CString>& GetLeftElementName() { return m_listLeftElementName; }
  229. BOOL SetLeftElementName(std::vector<CString> a_listLeftElementName);
  230. std::vector<CString>& GetRightElementName() { return m_listRightElementName; }
  231. BOOL SetRightElementName(std::vector<CString> a_listRightElementName);
  232. protected:
  233. // cleanup
  234. void Cleanup();
  235. // initialization
  236. void Init();
  237. // duplication
  238. void Duplicate(const CPropParam& a_oSource);
  239. // load combo box string
  240. void LoadComboBoxString(std::vector<CString>& a_listStrings, UINT a_nFirstStringID, int nCount);
  241. // Normalize grain size values
  242. void NormalizeGrainSizeValue();
  243. // type
  244. DISPLAY_PICTURE_TYPE m_nType;
  245. // property items list
  246. CPropItemsList m_listPropItems;
  247. // data source id
  248. std::vector<CString> m_listDataSource;
  249. int m_nDataSourceId;
  250. // data source type
  251. DATA_SOURCE_TYPE m_nDataSourceType;
  252. // image display type
  253. IMAGE_DISPLAY_TYPE m_nImageDisplayType;
  254. // image type
  255. IMAGE_TYPE m_nImageType;
  256. // measure data type
  257. MEASURE_DATA_TYPE m_nMeasureDataType;
  258. // calculate table type
  259. CALCULATE_TABLE_TYPE m_nCalTableType;
  260. // calculate chart type
  261. CALCULATE_CHART_TYPE m_nCalChartType;
  262. // particle type
  263. PARTICLE_TYPE m_nPartType;
  264. // STD index
  265. CPartSTDDataPtr m_pWorkingSTDLib;
  266. int m_nSTDId;
  267. // size class id
  268. CPartSizeFilePtr m_pWorkingSizeFile;
  269. int m_nSizeItemId;
  270. int m_nSizeClassTableId;
  271. // grain size min
  272. double m_dGrainSizeMin;
  273. // grain size max
  274. double m_dGrainSizeMax;
  275. // size calculation method type
  276. SIZE_CAL_METHOD_TYPE m_nSizeCalMethodType;
  277. // trio chart name
  278. CString m_strTrioChartName;
  279. int m_TrioChartType;
  280. CString m_strSizeClassTableFileFolder;//indicate the sizeClassFile directory,so we can get the sizeClass file list.
  281. CReportProjFilePtr m_pReportProjFile;
  282. // selected particle list
  283. COTSParticleList m_listSelectParticle;
  284. //CustomTemplate: Top Left Right Name
  285. CString m_TopName;
  286. CString m_LeftName;
  287. CString m_RightName;
  288. CTriTempFilePtr m_CTriTempFilePtr;
  289. //Top Left Right ElementName is vector
  290. std::vector<CString> m_listTopElementName;
  291. std::vector<CString> m_listLeftElementName;
  292. std::vector<CString> m_listRightElementName;
  293. };
  294. typedef std::shared_ptr<CPropParam> __declspec(dllexport) CPropParamPtr;
  295. typedef std::vector<CPropParamPtr> __declspec(dllexport) CPropParamsList;
  296. class __declspec(dllexport) CPropParamImage : public CPropParam
  297. {
  298. public:
  299. // constructor
  300. CPropParamImage(); // constructor
  301. CPropParamImage(const CPropParamImage&); // copy constructor
  302. CPropParamImage(CPropParamImage*); // copy constructor
  303. CPropParamImage& operator=(const CPropParamImage&); // =operator
  304. BOOL operator==(const CPropParamImage&); // ==operator
  305. virtual ~CPropParamImage(); // destructor
  306. // property items list
  307. virtual void SetPropertyItems();
  308. protected:
  309. // cleanup
  310. virtual void Cleanup();
  311. // initialization
  312. virtual void Init();
  313. // duplication
  314. virtual void Duplicate(const CPropParamImage& a_oSource);
  315. };
  316. typedef std::shared_ptr<CPropParamImage> __declspec(dllexport) CPropParamImagePtr;
  317. class __declspec(dllexport) CPropParamGrid : public CPropParam
  318. {
  319. public:
  320. // constructor
  321. CPropParamGrid(); // constructor
  322. CPropParamGrid(const CPropParamGrid&); // copy constructor
  323. CPropParamGrid(CPropParamGrid*); // copy constructor
  324. CPropParamGrid& operator=(const CPropParamGrid&); // =operator
  325. BOOL operator==(const CPropParamGrid&); // ==operator
  326. virtual ~CPropParamGrid(); // destructor
  327. // property items list
  328. virtual void SetPropertyItems();
  329. protected:
  330. // cleanup
  331. virtual void Cleanup();
  332. // initialization
  333. virtual void Init();
  334. // duplication
  335. virtual void Duplicate(const CPropParamGrid& a_oSource);
  336. };
  337. typedef std::shared_ptr<CPropParamGrid> __declspec(dllexport) CPropParamGridPtr;
  338. class __declspec(dllexport) CPropParamChart : public CPropParam
  339. {
  340. public:
  341. // constructor
  342. CPropParamChart(); // constructor
  343. CPropParamChart(const CPropParamChart&); // copy constructor
  344. CPropParamChart(CPropParamChart*); // copy constructor
  345. CPropParamChart& operator=(const CPropParamChart&); // =operator
  346. BOOL operator==(const CPropParamChart&); // ==operator
  347. virtual ~CPropParamChart(); // destructor
  348. // property items list
  349. virtual void SetPropertyItems();
  350. protected:
  351. // cleanup
  352. virtual void Cleanup();
  353. // initialization
  354. virtual void Init();
  355. // duplication
  356. virtual void Duplicate(const CPropParamChart& a_oSource);
  357. };
  358. typedef std::shared_ptr<CPropParamChart> __declspec(dllexport) CPropParamChartPtr;
  359. }