private void BTN_Import_Click(object sender, EventArgs e) { try { PAN_Relational.Controls.Clear(); this.selectedChild = null; this.selectedContainer = null; string extractedMessage = TB_Import.Text.ToUpper().Replace(".", "").Replace(",", "").Replace("'", ""); if (extractedMessage.Contains("WIDE")) { extractedMessage = LUAtoMQTT(extractedMessage); } string mes = ""; try { mes = extractedMessage.Substring(extractedMessage.IndexOf("FE010001")); } catch { if (extractedMessage.IndexOf("900580") >= 0) { mes = "FE010001FD020001" + extractedMessage.Substring(extractedMessage.IndexOf("900580") + 10) + "FE010002FD020001"; } } updateValues = false; ParseImportMessage(mes); updateValues = true; } catch { MessageBox.Show("Specified input is not a recognized relational cycle."); } }
public RelationalBuilder2(SymbIOT p, List <KeyValue> kv) { InitializeComponent(); parent = p; keyValues = kv; activeLB = null; selectedChild = null; selectedContainer = null; relationalTypes = new List <KeyValue>(); RelationalID = "FD020001"; scrollpos = PAN_Relational.VerticalScroll.Value; numContainers = 0; BTN_Swap.Visible = parent.dm_name == "Cooking"; AddGroupBox(0, "Presets"); AddGroupBox(PAN_Keys.Controls.Count, "Recent"); LoadLBs(CB_FullDM.Checked); if (!File.Exists("SymbIOT_Presets.xml")) { // Create a file to write to. using (StreamWriter sw = File.CreateText("SymbIOT_Presets.xml")) { sw.WriteLine(Properties.Resources.SymbIOT_Presets); } } LoadXML(); }
public void AddContainer(RelationalContainer rc) { this.Controls.Add(rc); int index = selectedChild == null ? this.Controls.Count - 2 : this.Controls.GetChildIndex(selectedChild) + 1; this.Controls.SetChildIndex(rc, index); RefreshSize(); }
public void RefreshArrayCount() { arrayCount = 0; foreach (RelationalContainer rc in PAN_Relational.Controls) { rc.UpdateCount(updateValues); } BTN_Envelope.Enabled = PAN_Relational.Controls.Count == 0 ? true : false; BTN_Array.Enabled = PAN_Relational.Controls.Count == 0 ? false : true; BTN_Entity.Enabled = PAN_Relational.Controls.Count == 0 ? false : true; RefreshPresets(); if (BTN_Envelope.Enabled) { this.selectedChild = null; this.selectedContainer = null; } }
private void InsertContainer(string type, string val) { KeyValue openKey = null; KeyValue closeKey = null; string openkv = ""; string closekv = ""; numContainers++; switch (type) { case "Envelope": openkv = "FE010001"; closekv = "FE010002"; numContainers = 1; break; case "Array": openkv = "FE030001"; closekv = "FE030002"; break; case "Entity": openkv = "FE020001"; closekv = "FE020002"; break; default: break; } foreach (KeyValue k in keyValues) { if (k.KeyID == openkv) { openKey = k; } if (k.KeyID == closekv) { closeKey = k; } } if (this.selectedContainer == null) { RelationalContainer rc = new RelationalContainer(openKey, closeKey, this, this, 0, val); PAN_Relational.Controls.Add(rc); ClearAllSelected(); ((RelationalItem2)rc.Controls[0]).SetSelected(true); BTN_Envelope.Enabled = false; BTN_Array.Enabled = true; BTN_Entity.Enabled = true; RefreshPresets(); } else { if (!this.selectedChild.CloseBracket) { RelationalContainer rc = new RelationalContainer(openKey, closeKey, this.selectedContainer, this, this.selectedContainer.Level + 1, val); this.selectedContainer.AddContainer(rc); ClearAllSelected(); ((RelationalItem2)rc.Controls[0]).SetSelected(true); } else { if (this.selectedContainer.parent != this) { RelationalContainer rc = new RelationalContainer(openKey, closeKey, this.selectedContainer.parent, this, this.selectedContainer.Level, val); ((RelationalContainer)this.selectedContainer.parent).selectedChild = this.selectedContainer; ((RelationalContainer)this.selectedContainer.parent).AddContainer(rc); ClearAllSelected(); ((RelationalItem2)rc.Controls[0]).SetSelected(true); } } } }
public RelationalItem2(KeyValue kv, RelationalContainer parent, RelationalBuilder2 topparent, string val) { InitializeComponent(); isScript = false; this.parent = parent; this.topParent = topparent; keyvalue = kv; upperKV = kv; lowerKV = kv; CloseBracket = false; OpenBracket = false; CBO_Type.Visible = false; indent = new String(' ', parent.Level * 2); SetSelected(false); if (kv.Instance.StartsWith("Relational") && kv.AttributeName == "Open" || kv.AttributeName == "Close") { try { CBO_Type.SelectedIndex = val != "" && !val.StartsWith("FD") ? int.Parse(val.Substring(0, 2), NumberStyles.AllowHexSpecifier) - 1 : 0; } catch { CBO_Type.SelectedIndex = 0; } switch (kv.AttributeName) { case "Open": LBL_Name.Text = indent + (kv.Instance.Contains("Array") ? "[" : "{"); CBO_Type.Visible = true; OpenBracket = true; break; case "Close": LBL_Name.Text = indent + (kv.Instance.Contains("Array") ? "]" : "}"); CloseBracket = true; break; default: break; } parent.type = kv.Instance.Split('_')[1]; parent.datatype = val != "" && !val.StartsWith("FD") ? val.Substring(0, 2) : "01"; if (parent.type == "Envelope" && CBO_Type.Visible) { CBO_Type.Items.Clear(); for (int i = 0; i < topparent.relationalTypes.Count; i++) { CBO_Type.Items.Add(topparent.relationalTypes[i].AttributeName + " (0x" + topparent.relationalTypes[i].KeyID + ")"); if (topparent.relationalTypes[i].KeyID == "FD020001") { CBO_Type.SelectedIndex = i; } } } else { /*if (SymbIOT.dm_name == "Cooking") * { * //CBO_Type.Visible = false; * //parent.datatype = "02"; * }*/ } TB_Value.Visible = true; CBO_Value.Visible = false; TB_Value.Text = val; } else { LBL_Name.Text = indent + kv.Instance + "." + kv.AttributeName; if (kv.EnumName != null) { TB_Value.Visible = false; CBO_Value.Visible = true; for (int j = 0; j < kv.EnumName.Enums.Count; j++) { if (kv.EnumName.Enums[j] != null) { CBO_Value.Items.Add(j.ToString("X2") + "=" + kv.EnumName.Enums[j]); if (val == kv.EnumName.Enums[j].ToString()) { CBO_Value.SelectedItem = j.ToString("X2") + "=" + kv.EnumName.Enums[j]; } } } /*foreach (string s in kv.EnumName.Enums) * { * if (s != null) * { * CBO_Value.Items.Add(s); * } * } * if (val != null) * { * CBO_Value.SelectedItem = val; * }*/ } else { TB_Value.Visible = true; CBO_Value.Visible = false; if (val != null) { TB_Value.Text = val; } } } }