/// <summary> /// 克隆一份 /// </summary> /// <returns></returns> public virtual IItemBox Clone() { //ItemBox ib = new ItemBox(); ItemBox ib = (ItemBox)Activator.CreateInstance(GetType()); ib.name = name; ib.tipText = tipText; ib.BoxType = BoxType; foreach (var item in inputDatas) { ib.AddInput(item.Clone()); } foreach (var item in outputDatas) { ib.AddOutput(item.Clone()); } return(ib); }
/// <summary> /// 添加系统的代码块 /// </summary> public static TreeData AddSystemBox() { TreeData system = new TreeData("系统"); ItemBox ifitembox = new ItemBox() { BoxType = ItemBoxEnum.IF, Name = "分支", TipText = "分支", }; ifitembox.AddInput(new ParatItem() { Name = "判断的值", PIEnum = ParaItemEnum.BOOL, TipText = "决定分支的走向" }); //ifitembox.Add(new StackItemBox() { Name = "True", BoxType = ItemBoxEnum.ELSE }); //ifitembox.Add(new StackItemBox() { Name = "False", BoxType = ItemBoxEnum.ELSE }); ItemBox whileidx = new ItemBox() { BoxType = ItemBoxEnum.WHILE, Name = "循环(由起始和结束值决定次数)", TipText = "循环", }; whileidx.AddInput(new ParatItem() { Name = "起始值", PIEnum = ParaItemEnum.INT, TipText = "起始值", Value = 0, }); whileidx.AddInput(new ParatItem() { Name = "终止值", PIEnum = ParaItemEnum.INT, TipText = "终止值", Value = 10, }); whileidx.AddOutput(new ParatItem() { Name = "迭代值", PIEnum = ParaItemEnum.INT, TipText = "迭代值" }); ItemBox whilebool = new ItemBox() { BoxType = ItemBoxEnum.WHILE, Name = "循环(由bool参数决定次数)", TipText = "循环", }; whilebool.AddInput(new ParatItem() { Name = "判断的值", PIEnum = ParaItemEnum.BOOL, TipText = "如果是true则继续循环,否则调出循环", Value = true, }); ItemBox whiletime = new ItemBox() { BoxType = ItemBoxEnum.WHILE, Name = "循环(由时间参数决定次数)", TipText = "循环", }; whiletime.AddInput(new ParatItem() { Name = "结束时间", PIEnum = ParaItemEnum.DATETIME, TipText = "如果当前事件超过设定的时间则跳出循环", Value = DateTime.Now, }); ifitembox.LogoPath = ScriptHelp.BrachImage; whileidx.LogoPath = ScriptHelp.WhileImage; whilebool.LogoPath = ScriptHelp.WhileImage; whiletime.LogoPath = ScriptHelp.WhileImage; system.Children.Add(new TreeData(ifitembox)); system.Children.Add(new TreeData(whileidx)); system.Children.Add(new TreeData(whilebool)); system.Children.Add(new TreeData(whiletime)); return(system); }