/// <summary> /// KNXControlBase 转 ControlBaseNode /// </summary> /// <param name="knx"></param> public ControlBaseNode(KNXControlBase knx, BackgroundWorker worker) : base(knx, worker) { this.HasTip = (EBool)Enum.ToObject(typeof(EBool), knx.HasTip); this.Tip = knx.Tip; this.Clickable = (EBool)Enum.ToObject(typeof(EBool), knx.Clickable); }
/// <summary> /// ControlBaseNode 转 KNXControlBase /// </summary> /// <param name="knx"></param> public void ToKnx(KNXControlBase knx, BackgroundWorker worker) { base.ToKnx(knx, worker); knx.HasTip = (int)this.HasTip; knx.Tip = this.Tip; knx.Clickable = (int)this.Clickable; }
/// <summary> /// KNXControlBase 转 ControlBaseNode /// </summary> /// <param name="knx"></param> public ControlBaseNode(KNXControlBase knx) : base(knx) { // this.ReadAddressId = knx.ReadAddressId ?? new Dictionary<string, KNXSelectedAddress>(); // this.WriteAddressIds = knx.WriteAddressIds ?? new Dictionary<string, KNXSelectedAddress>(); this.HasTip = (EBool)Enum.ToObject(typeof(EBool), knx.HasTip); this.Tip = knx.Tip; this.Clickable = (EBool)Enum.ToObject(typeof(EBool), knx.Clickable); this.Icon = knx.Icon; }
/// <summary> /// ControlBaseNode 转 KNXControlBase /// </summary> /// <param name="knx"></param> public void ToKnx(KNXControlBase knx) { base.ToKnx(knx); //knx.ReadAddressId = this.ReadAddressId; //knx.WriteAddressIds = this.WriteAddressIds; knx.HasTip = (int)this.HasTip; knx.Tip = this.Tip; knx.Clickable = (int)this.Clickable; knx.Icon = this.Icon; }
private static ViewNode ImportControlNode(BackgroundWorker worker, ContainerNode parentNode, KNXControlBase knx, string ResImgDir) { ViewNode node = null; switch (knx.GetType().Name) { case MyConst.Controls.KnxBlindsType: node = new BlindsNode(knx as KNXBlinds, worker, ResImgDir); break; case MyConst.Controls.KnxLabelType: node = new LabelNode(knx as KNXLabel, worker, ResImgDir); break; case MyConst.Controls.KnxSceneButtonType: node = new SceneButtonNode(knx as KNXSceneButton, worker, ResImgDir); break; case MyConst.Controls.KnxSliderSwitchType: node = new SliderSwitchNode(knx as KNXSliderSwitch, worker, ResImgDir); break; case MyConst.Controls.KnxSwitchType: node = new SwitchNode(knx as KNXSwitch, worker, ResImgDir); break; case MyConst.Controls.KnxValueDisplayType: node = new ValueDisplayNode(knx as KNXValueDisplay, worker, ResImgDir); break; case MyConst.Controls.KnxTimerButtonType: node = new TimerButtonNode(knx as KNXTimerButton, worker, ResImgDir); break; case MyConst.Controls.KnxDigitalAdjustmentType: node = new DigitalAdjustmentNode(knx as KNXDigitalAdjustment, worker, ResImgDir); break; case MyConst.Controls.KnxImageButtonType: node = new ImageButtonNode(knx as KNXImageButton, worker, ResImgDir); break; case MyConst.Controls.KnxShutterType: node = new ShutterNode(knx as KNXShutter, worker, ResImgDir); break; case MyConst.Controls.KnxDimmerType: node = new DimmerNode(knx as KNXDimmer, worker, ResImgDir); break; case MyConst.Controls.KnxWebCamViewerType: node = new WebCamerNode(knx as KNXWebCamer, worker, ResImgDir); break; case MyConst.Controls.KnxMediaButtonType: node = new MediaButtonNode(knx as KNXMediaButton, worker, ResImgDir); break; case MyConst.Controls.KnxAirConditionType: node = new AirConditionNode(knx as KNXAirCondition, worker, ResImgDir); break; case MyConst.Controls.KnxHVACType: node = new HVACNode(knx as KNXHVAC, worker, ResImgDir); break; case MyConst.Controls.KnxGroupBoxType: node = new GroupBoxNode(knx as KNXGroupBox, worker, ResImgDir); KNXGroupBox knxGroupBox = knx as KNXGroupBox; if (knxGroupBox.Controls != null && knxGroupBox.Controls.Count > 0) { foreach (var item in knxGroupBox.Controls) { ImportControlNode(worker, node as ContainerNode, item, ResImgDir); } } break; default: MessageBox.Show(UIResMang.GetString("Message39") + knx.GetType().Name, UIResMang.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } if (null != parentNode) { parentNode.Nodes.Add(node); } return(node); }
/// <summary> /// 将ViewNode对象转为KNXControlBase对象 /// </summary> /// <param name="node"></param> /// <returns></returns> private static KNXControlBase ExportControl(BackgroundWorker worker, KNXContainer parent, ViewNode node, string ImgResDir, Point RelPoint) { KNXControlBase knx = null; // 节点的类型 switch (node.Name) { case MyConst.Controls.KnxBlindsType: knx = (node as BlindsNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxLabelType: knx = (node as LabelNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxSceneButtonType: knx = (node as SceneButtonNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxSliderSwitchType: knx = (node as SliderSwitchNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxSwitchType: knx = (node as SwitchNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxValueDisplayType: knx = (node as ValueDisplayNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxTimerButtonType: knx = (node as TimerButtonNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxDigitalAdjustmentType: knx = (node as DigitalAdjustmentNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxImageButtonType: knx = (node as ImageButtonNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxShutterType: knx = (node as ShutterNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxDimmerType: knx = (node as DimmerNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxWebCamViewerType: knx = (node as WebCamerNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxMediaButtonType: knx = (node as MediaButtonNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxAirConditionType: knx = (node as AirConditionNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxHVACType: knx = (node as HVACNode).ExportTo(worker, ImgResDir, RelPoint); break; case MyConst.Controls.KnxGroupBoxType: knx = (node as GroupBoxNode).ExportTo(worker, ImgResDir, RelPoint); if (node.Nodes.Count > 0) { // 添加控件 foreach (ViewNode childNode in node.Nodes) { ExportControl(worker, knx as KNXContainer, childNode, ImgResDir, node.LocationInPageFact); } } break; default: MessageBox.Show(UIResMang.GetString("Message38") + node.Name, UIResMang.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } if ((null != knx) && (null != parent)) { parent.Controls.Add(knx); } return(knx); }
/// <summary> /// 按 KNX 控件类型,给树上添加控件节点 /// </summary> /// <param name="parentNode"></param> /// <param name="knxControl"></param> private static void AddControlNode(ContainerNode parentNode, KNXControlBase knxControl /*, UIEditor.Entity.ViewNode.PropertiesChangedDelegate proChangedDelegate*/) { switch (knxControl.GetType().Name) { case MyConst.Controls.KnxBlindsType: var blindsNode = new BlindsNode(knxControl as KNXBlinds); //blindsNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(blindsNode); break; case MyConst.Controls.KnxLabelType: var labelNode = new LabelNode(knxControl as KNXLabel); //labelNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(labelNode); break; case MyConst.Controls.KnxSceneButtonType: var sceneButtonNode = new SceneButtonNode(knxControl as KNXSceneButton); //sceneButtonNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(sceneButtonNode); break; case MyConst.Controls.KnxSliderSwitchType: var sliderSwitchNode = new SliderSwitchNode(knxControl as KNXSliderSwitch); //sliderSwitchNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(sliderSwitchNode); break; case MyConst.Controls.KnxSwitchType: var switchNode = new SwitchNode(knxControl as KNXSwitch); //switchNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(switchNode); break; case MyConst.Controls.KnxValueDisplayType: var valueDisplayNode = new ValueDisplayNode(knxControl as KNXValueDisplay); //valueDisplayNode.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(valueDisplayNode); break; case MyConst.Controls.KnxTimerButtonType: var timerButton = new TimerButtonNode(knxControl as KNXTimerButton); //timerButton.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(timerButton); break; case MyConst.Controls.KnxDigitalAdjustment: var digitalAdjustment = new DigitalAdjustmentNode(knxControl as KNXDigitalAdjustment); //digitalAdjustment.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(digitalAdjustment); break; case MyConst.Controls.KnxGroupBoxType: var groupBox = new GroupBoxNode(knxControl as KNXGroupBox); //groupBox.PropertiesChangedEvent += proChangedDelegate; parentNode.Nodes.Add(groupBox); KNXGroupBox knxGroupBox = knxControl as KNXGroupBox; if (knxGroupBox.Controls != null && knxGroupBox.Controls.Count > 0) { foreach (var item in knxGroupBox.Controls) { AddControlNode(groupBox, item /*, proChangedDelegate*/); } } break; default: MessageBox.Show(ResourceMng.GetString("Message39") + knxControl.GetType().Name, ResourceMng.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } }