public ContainerNode(KNXContainer knx) : base(knx) { }
/// <summary> /// ContainerNode 转 KNXContainer /// </summary> /// <param name="knx"></param> internal void ToKnx(KNXContainer knx) { base.ToKnx(knx); knx.Controls = new List<KNXControlBase>(); }
/// <summary> /// 按树节点的类型,转为相应的KNX对象 /// </summary> /// <param name="view"></param> /// <param name="node"></param> private static void ExportControls(KNXContainer view, TreeNode node) { // 节点的类型 switch (node.Name) { case MyConst.Controls.KnxBlindsType: var blindsNode = node as BlindsNode; if (blindsNode != null) { var knxBlinds = blindsNode.ToKnx(); view.Controls.Add(knxBlinds); } break; case MyConst.Controls.KnxLabelType: var labelNode = node as LabelNode; if (labelNode != null) { var knxLabel = labelNode.ToKnx(); view.Controls.Add(knxLabel); } break; case MyConst.Controls.KnxSceneButtonType: var sceneButtonNode = node as SceneButtonNode; if (sceneButtonNode != null) { var knxSceneButton = sceneButtonNode.ToKnx(); view.Controls.Add(knxSceneButton); } break; case MyConst.Controls.KnxSliderSwitchType: var sliderSwitchNode = node as SliderSwitchNode; if (sliderSwitchNode != null) { var knxSliderSwitch = sliderSwitchNode.ToKnx(); view.Controls.Add(knxSliderSwitch); } break; case MyConst.Controls.KnxSwitchType: var switchNode = node as SwitchNode; if (switchNode != null) { var knxSwitch = switchNode.ToKnx(); view.Controls.Add(knxSwitch); } break; case MyConst.Controls.KnxValueDisplayType: var valueDisplayNode = node as ValueDisplayNode; if (valueDisplayNode != null) { var knxValueDisplay = valueDisplayNode.ToKnx(); view.Controls.Add(knxValueDisplay); } break; case MyConst.Controls.KnxTimerButtonType: var timerTaskButtonNode = node as TimerButtonNode; if (timerTaskButtonNode != null) { var knxTimerTaskButton = timerTaskButtonNode.ToKnx(); view.Controls.Add(knxTimerTaskButton); } break; case MyConst.Controls.KnxDigitalAdjustment: var digitalAdjustment = node as DigitalAdjustmentNode; if (null != digitalAdjustment) { var knxDigitalAdjustment = digitalAdjustment.ToKnx(); view.Controls.Add(knxDigitalAdjustment); } break; case MyConst.Controls.KnxGroupBoxType: var groupBox = node as GroupBoxNode; if (null != groupBox) { var knxGroupBox = groupBox.ToKnx(); view.Controls.Add(knxGroupBox); if (node.Nodes.Count > 0) { // 添加控件 foreach (TreeNode childNode in node.Nodes) { ExportControls(knxGroupBox, childNode); } } } break; default: MessageBox.Show(ResourceMng.GetString("Message38") + node.Name, ResourceMng.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } }