PropParam.h 10 KB

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