コード例 #1
0
 /// <summary>
 /// 创建一个属性,如果存在则只修改值
 /// </summary>
 /// <param name="value"></param>
 /// <param name="type"></param>
 /// <param name="name"></param>
 public void CreateProperty(object value, ParaItemEnum type, string name, bool isaddtoIPropertys = false)
 {
     if (IPropertys.Where(p => p.Name == name).Count() == 0)
     {
         IPropertys.Add(new PropertyIt()
         {
             Name   = name,
             PIEnum = type,
             Value  = value,
         });
         if (isaddtoIPropertys)
         {
             scriptContent.Add(IPropertys.Last());
         }
         if (name == "TaskPhones")
         {
             IPropertys.Last().Id = Guid.Empty.ToString();
         }
     }
     else
     {
         IPropertyIt ipi = IPropertys.Where(p => p.Name == name).First();
         ipi.Value = value;
     }
 }
コード例 #2
0
 /// <summary>
 /// 删除一个属性
 /// </summary>
 /// <param name="propertyIt"></param>
 public void Del(IPropertyIt propertyIt)
 {
     if (this.iPropertys.Contains(propertyIt))
     {
         this.iPropertys.Remove(propertyIt);
     }
 }
コード例 #3
0
 /// <summary>
 /// 添加一个属性
 /// </summary>
 /// <param name="ipi"></param>
 /// <param name="isaddtoscriptcontent"></param>
 public void AddProperty(IPropertyIt ipi, bool isaddtoscriptcontent = false)
 {
     if (this.IPropertys.Contains(ipi) == false)
     {
         this.IPropertys.Add(ipi);
         if (isaddtoscriptcontent)
         {
             scriptContent.Add(IPropertys.Last());
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Load_Script(object sender, MouseButtonEventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();

            open.Filter = "json文件 (*.json)|*.json";
            if (open.ShowDialog() == true)
            {
                IPropertyIt propertyIt = this.IPropertys.Where(p => p.Id == Guid.Empty.ToString()).First();
                this.IPropertys.Clear();
                AddProperty(propertyIt);
                //scriptContent.LoadFromJson<ItemBox, BezierLine, ParatItem>(open.FileName);
            }
        }
コード例 #5
0
 /// <summary>
 /// 从json加载
 /// </summary>
 /// <typeparam name="Ibox">iitembox的实际类型</typeparam>
 /// <typeparam name="Ibezier">连接线的实际类型</typeparam>
 /// <typeparam name="IParaitem">参数的实际类型</typeparam>
 /// <param name="file">json文件路径</param>
 public override void LoadFromJson <Ibox, IProperty, IParaitem>(string file)
 {
     using (FileStream fs = File.Open(file, FileMode.Open))
     {
         byte[] datas = new byte[fs.Length];
         fs.Read(datas, 0, datas.Length);
         string json = Encoding.UTF8.GetString(datas);
         ClearAll(true);
         Tools.ConvertJsonToLayout <Ibox, BezierLine, IParaitem, IProperty>(json, this);
         datas = null;
         json  = null;
     }
     foreach (var item in itemboxs)
     {
         if (item.BoxType == ItemBoxEnum.MAIN)
         {
             this.mainIb = item as LineItemBox;
         }
         else if (item.BoxType == ItemBoxEnum.GET || item.BoxType == ItemBoxEnum.SET)
         {
             IPropertyIt ip = FindIPropertyById(item.Id);
             if (ip != null)
             {
                 ip.PropertyChanged += item.PropertyValueChanged;
             }
         }
         else
         {
             TreeData td = dataTree.GetTreeDataByName(item.Name);
             if (td != null)
             {
                 td.HalfClone(item);
                 IItemboxLoadEvent?.Invoke(item, td.Data);
             }
         }
     }
 }
コード例 #6
0
 /// <summary>
 /// 添加一个属性
 /// </summary>
 /// <param name="propertyIt"></param>
 public override void Add(IPropertyIt propertyIt)
 {
     this.iPropertys.Add(propertyIt);
 }