123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- using PaintDotNet.Base;
- using PaintDotNet.Data.Param;
- using System.Collections.Generic;
- using System.Xml.Serialization;
- namespace Metis.ParameterSet
- {
- /// <summary>
- /// 图像设置 - 参数
- /// </summary>
- [XmlRoot("ROOT")]
- public class GrainSizeAnalysisModel
- {
- /// <summary>
- /// 参数model
- /// </summary>
- [XmlElement("ListParam")]
- public List<GrainSizeAnalysisModel> ListParam { get; set; }
- public GrainSizeAnalysisModel cloneModel()
- {
- GrainSizeAnalysisModel newMod = new GrainSizeAnalysisModel();
- newMod.ListParam = new List<GrainSizeAnalysisModel>();
- newMod.menuId = this.menuId;
- newMod.param_key = this.param_key;
- newMod.param_type = this.param_type;
- newMod.param_value = this.param_value;
- if (this.value != null)
- newMod.value = this.value;
- return newMod;
- }
- /// <summary>
- /// 找到当前menuId的参数model集合
- /// </summary>
- /// <param name="menuId"></param>
- /// <returns></returns>
- public GrainSizeAnalysisModel cloneListParamModel(int menuId)
- {
- GrainSizeAnalysisModel newMod = new GrainSizeAnalysisModel();
- newMod.ListParam = new List<GrainSizeAnalysisModel>();
- foreach (var item in this.ListParam)
- if (item.menuId == menuId)
- newMod.ListParam.Add(item.cloneModel());
- return newMod;
- }
- /// <summary>
- /// 根据脚本参数集合初始化页面数据
- /// </summary>
- /// <param name="paramObject"></param>
- /// <returns></returns>
- public static GrainSizeAnalysisModel cloneListParamScript(ParamObject paramObject)
- {
- GrainSizeAnalysisModel newMod = new GrainSizeAnalysisModel();
- newMod.ListParam = new List<GrainSizeAnalysisModel>();
- foreach (Args arg in paramObject.Lists)
- {
- GrainSizeAnalysisModel param = new GrainSizeAnalysisModel();
- param.ListParam = new List<GrainSizeAnalysisModel>();
- param.menuId = (int)paramObject.MenuId;
- param.param_key = arg.Key;
- param.param_type = (int)arg.Type;
- if (arg.value != null)
- {
- ////在这里反射出对应功能的参数类
- //string className = InvariantData.path_Action + ".Action" + step.menu_id;
- //ParamObject param = (ParamObject)Assembly.Load(InvariantData.assembly_Data).CreateInstance(className);
- if (arg.Type == Dtryt.Array)
- param.param_value = ((int)arg.Value).ToString();
- else if (arg.Type == Dtryt.DecimalScope)
- param.param_value = string.Join(",", ((List<double>)(arg.Value)).ToArray());
- else
- param.param_value = arg.Value.ToString();
- if ((int)arg.Type == 7)
- {//晶粒度-选择辅助线的适配
- param.param_type = 10;
- }
- param.value = arg.value;
- }
- newMod.ListParam.Add(param);
- }
- return newMod;
- }
- ///<summary>
- /// 功能ID
- ///</summary>
- [XmlElement("menuId")]
- public int menuId { get; set; }
- /// <summary>
- /// 参数键
- /// </summary>
- [XmlElement("param_key")]
- public string param_key { get; set; }
- /// <summary>
- /// 参数类型的枚举值
- /// </summary>
- [XmlElement("param_type")]
- public int param_type { get; set; }
- /// <summary>
- /// 参数值
- /// </summary>
- [XmlElement("param_value")]
- public string param_value { get; set; }
- /// <summary>
- /// 参数格式化后的值
- /// </summary>
- public object value;
- /// <summary>
- /// 更新参数格式化后的值
- /// </summary>
- public void setValue()
- {
- if (this.param_type == (int)Dtryt.Choise)
- {
- int valueC;
- if (int.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = 1;
- }
- if (this.param_type == (int)Dtryt.Interger)
- {
- int valueC;
- if (int.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = 0;
- }
- else if (this.param_type == (int)Dtryt.Array)
- {
- int valueC;
- if (int.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = 0;
- }
- else if (this.param_type == (int)Dtryt.Boolean)
- {
- bool valueC;
- if (System.Boolean.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = this.param_value.ToString().Equals("0");
- }
- else if (this.param_type == (int)Dtryt.DecimalScope)
- {
- string[] valuelst = this.param_value.Split(',');
- List<double> listV = new List<double>();
- foreach (string str in valuelst)
- {
- double outV;
- if (double.TryParse(str, out outV))
- listV.Add(outV);
- else
- listV.Add(0);
- }
- this.value = listV;
- }
- else if (this.param_type == (int)Dtryt.Decimal)
- {//####
- double valueC;
- if (double.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = -65536;
- }
- else if (this.param_type == (int)Dtryt.Color)
- {
- int valueC;
- if (int.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = -65536;
- }
- else if (this.param_type == (int)Dtryt.ItemString)
- {
- this.value = this.param_value.ToString();
- }
- else if (this.param_type == (int)Dtryt.Decimal)
- {
- int valueC;
- if (int.TryParse(this.param_value.ToString(), out valueC))
- this.value = valueC;
- else
- this.value = 2;
- }
- }
- /// <summary>
- /// 返回保存的参数值-是否显示晶界,显示网格,显示截点 等
- /// </summary>
- /// <returns></returns>
- public bool GetParamValue1(string param_key, out object paramObject, int menuId)
- {
- bool foundItem = false;
- paramObject = null;
- foreach (var item in this.ListParam)
- {
- if (item.param_key.Equals(param_key) && item.menuId == menuId)
- {
- paramObject = item.value;
- foundItem = true;
- break;
- }
- }
- return foundItem;
- }
- /// <summary>
- /// 保存参数的key,value和type
- /// </summary>
- /// <param name="param_key"></param>
- /// <param name="param_value"></param>
- /// <param name="param_type"></param>
- public void saveParamValue(string param_key, string param_value, int param_type, int menuId)
- {
- bool foundItem = false;
- foreach (var item in this.ListParam)
- {
- if (item.param_key.Equals(param_key) && item.menuId == menuId)
- {
- item.param_value = param_value;
- item.setValue();
- foundItem = true;
- break;
- }
- }
- if (!foundItem)
- {
- GrainSizeAnalysisModel analysisItem = new GrainSizeAnalysisModel();
- analysisItem.menuId = menuId;
- analysisItem.param_key = param_key;
- analysisItem.param_type = param_type;
- analysisItem.param_value = param_value;
- analysisItem.setValue();
- this.ListParam.Add(analysisItem);
- }
- }
- }
- }
|