private bool AddOCtoTree(FTableCalculator aCalc) { bool lCalcAdded = false; FTableCalculator.ControlDeviceType lOCType = aCalc.ControlDevice; int lExit = aCalc.myExit; Dictionary <string, double> lParamValues = aCalc.ParamValues(); string lOCDisplayName = ""; FTableCalculator.OCTypeNames.TryGetValue(aCalc.ControlDevice, out lOCDisplayName); TreeNode lExitNode = null; if (treeExitControls.Nodes.ContainsKey(lExit.ToString())) { lExitNode = treeExitControls.Nodes[lExit.ToString()]; //.Add(lKey, lOCName + "_" + Id.ToString()); } else { lExitNode = treeExitControls.Nodes.Add(lExit.ToString(), "Exit " + lExit.ToString()); } //add OC node string lOCNameClass = aCalc.GetType().Name; int Ctr = 0; string lOCNodeName = lOCDisplayName + "_" + Ctr.ToString(); string lOCNodeKey = lOCNameClass + "_" + Ctr.ToString(); while (lExitNode.Nodes.ContainsKey(lOCNodeKey)) { Ctr++; lOCNodeKey = lOCNameClass + "_" + Ctr.ToString(); lOCNodeName = lOCDisplayName + "_" + Ctr.ToString(); } TreeNode lOCNode = lExitNode.Nodes.Add(lOCNodeKey, lOCNodeName); //add parameter value nodes List <string> lParamNames = lParamValues.Keys.ToList <string>(); List <double> lParamVals = lParamValues.Values.ToList <double>(); for (int z = 0; z < lParamNames.Count; z++) { lOCNode.Nodes.Add(lParamNames[z], lParamNames[z] + "(" + lParamVals[z] + ")"); } lCalcAdded = true; return(lCalcAdded); }
private void btnUpdate_Click(object sender, EventArgs e) { TreeNode lSelectedNode = treeExitControls.SelectedNode; if (lSelectedNode == null || lSelectedNode.Text.StartsWith("Exit") || !lSelectedNode.Parent.Text.StartsWith("Exit")) { System.Windows.Forms.MessageBox.Show("Select a Control Device for update.", "Update Control Device"); return; } string lSelectedOCAlias = lSelectedNode.Text.Substring(0, lSelectedNode.Text.IndexOf("_")); int lSelectedOCIndex = int.Parse(lSelectedNode.Text.Substring(lSelectedNode.Text.IndexOf("_") + 1)); string lParentNodeName = lSelectedNode.Parent.Text; string lExitNo = lParentNodeName.Substring(lParentNodeName.IndexOf(" ") + 1); int lExitNum = int.Parse(lExitNo); FTableCalculator lCalc = GetControlDeviceFromForm(); if (lSelectedOCAlias == FTableCalculator.OCTypeNames[lCalc.ControlDevice].ToString()) { Dictionary <string, double> lParams = lCalc.ParamValues(); double lVal = 0; foreach (TreeNode lParamNode in lSelectedNode.Nodes) { string lParamName = lParamNode.Text.Substring(0, lParamNode.Text.LastIndexOf("(")); lVal = lParams[lParamName]; lParamNode.Text = lParamName + "(" + lVal.ToString() + ")"; } this.treeExitControls.MouseUp -= this.treeExitControls_MouseUp; AdjustNodeNames(lSelectedNode.Parent); lSelectedNode.Expand(); treeExitControls.SelectedNode = lSelectedNode; this.treeExitControls.MouseUp += new System.Windows.Forms.MouseEventHandler(this.treeExitControls_MouseUp); } if (lExitNum != SelectedExit()) { TreeNode lNewNode = new TreeNode(); lNewNode.Text = lSelectedNode.Text; foreach (TreeNode lParamNode in lSelectedNode.Nodes) { TreeNode lnewParamNode = new TreeNode(); lnewParamNode.Text = lParamNode.Text; lNewNode.Nodes.Add(lnewParamNode); } lSelectedNode.Remove(); foreach (TreeNode lExitNode in treeExitControls.Nodes) { if (lExitNode.Text.Contains(SelectedExit().ToString())) { lExitNode.Nodes.Add(lNewNode); break; } } this.treeExitControls.MouseUp -= this.treeExitControls_MouseUp; AdjustNodeNames(lNewNode.Parent); lNewNode.Expand(); treeExitControls.SelectedNode = lNewNode; this.treeExitControls.MouseUp += new System.Windows.Forms.MouseEventHandler(this.treeExitControls_MouseUp); } }
private void btnAdd_Click(object sender, EventArgs e) { string lErrMsg = ParamsOK(); if (!string.IsNullOrEmpty(lErrMsg)) { System.Windows.Forms.MessageBox.Show("Please address the following error before proceeding:" + Environment.NewLine + lErrMsg, "Adding New Control Devices"); return; } int lSelectedExit = SelectedExit(); FTableCalculator lCalc = GetControlDeviceFromForm(); if (lCalc == null) { System.Windows.Forms.MessageBox.Show("Please select a proper control device type.", "Adding New Control Devices"); return; } //Add OC node string lOCCommonName = FTableCalculator.OCTypeNames[lCalc.ControlDevice]; int typeCounter = -99; TreeNode lExitNode = treeExitControls.Nodes[lSelectedExit - 1]; foreach (TreeNode lOCNode in lExitNode.Nodes) { string lOCAlias = lOCNode.Text.Substring(0, lOCNode.Text.IndexOf("_")); string lOCId = lOCNode.Text.Substring(lOCNode.Text.IndexOf("_") + 1); int liOCId = int.Parse(lOCId); if (lOCAlias == lOCCommonName) { if (typeCounter < liOCId) { typeCounter = liOCId; } } } if (typeCounter < 0) { typeCounter = 0; } else { typeCounter++; } string lnewOCName = lOCCommonName + "_" + typeCounter.ToString(); TreeNode lnewOCNode = lExitNode.Nodes.Add(lnewOCName); //Add OC's param nodes Dictionary <string, double> lParams = lCalc.ParamValues(); List <string> lParamNames = lParams.Keys.ToList <string>(); List <double> lParamValues = lParams.Values.ToList <double>(); foreach (string lParamName in lParams.Keys) { TreeNode lParamNode = new TreeNode(); lParamNode.Text = lParamName + "(" + lParams[lParamName].ToString() + ")"; lnewOCNode.Nodes.Add(lParamNode); } //Refresh tree //AddOCtoTree(lCalc); AdjustNodeNames(lExitNode); }