public ng.WiringNodeCH createNodeCH_wiring(string model) { ng.WiringNodeCH node = new ng.WiringNodeCH(); node.Tooltip = old.NodeType.CHbox.ToString(); node.IsEditable = false; node.Stroke = System.Windows.Media.Brushes.Transparent; node.FontFamily = new System.Windows.Media.FontFamily("Arial"); node.FontSize = 11; node.Geometry = new RectangleGeometry(new System.Windows.Rect(0, 0, 0, 0));; node.Model = model; return(node); }
private void DrawWiringNodes(Node parent, List <ng.WiringNode> nodes, List <ng.WiringNodeIn> myNodeInList, string imgDir, bool isHR) { bool prevBrotherNodeIsIndoor = false; double sumCurrent = 0.0d; ng.WiringNodeIn lastIn = null; drawing.PointF ptf1, ptf2, ptf3, ptf4, ptf5, ptf6; NodeElement_Wiring item_wiring; string imgFile; int lastYIndex = 0; int index1 = 0; drawing.PointF nodeCHPointF = new drawing.PointF(); drawing.PointF nodeInPointF = new drawing.PointF(); foreach (ng.WiringNode node in nodes) { if (node is ng.WiringNodeCH) { prevBrotherNodeIsIndoor = false; ng.WiringNodeCH nodeCH = node as ng.WiringNodeCH; item_wiring = utilWiring.GetNodeElement_Wiring_CH(nodeCH.Model, nodeCH.PowerSupply, nodeCH.PowerLineType, nodeCH.PowerCurrent); nodeCH.Location = utilWiring.getLocationChild_wiring(parent, node, index1, isHR); nodeCH.Text = item_wiring.ShortModel; utilWiring.setNode_wiring(nodeCH, new Size(80, 52), addFlowWiring); utilWiring.createTextNode_wiring("CH Unit", new drawing.PointF(86, -13), nodeCH); DrawWiringNodes(nodeCH, nodeCH.ChildNodes, myNodeInList, imgDir, isHR); double x = parent.Location.X + parent.Size.Width - 1; double y = nodeCH.Location.Y + nodeCH.Size.Height - 2; float enlargedHeight = 0; if (nodeCH.IsMultiCHBox && nodeCH.ChildNodes.Count > 1) { enlargedHeight = UtilPiping.VDistanceVertical_wiring * (nodeCH.ChildNodes.Count - 1); nodeCH.Size = new Size(nodeCH.Size.Width, nodeCH.Size.Height + enlargedHeight); } if (nodeCH.IsMultiCHBox) { int newBranchIndex = 0; for (int i = 0; i < nodeCH.ChildNodes.Count; i++) { ng.WiringNodeIn wiringIn = nodeCH.ChildNodes[i] as ng.WiringNodeIn; if (wiringIn != null && wiringIn.IsNewBranchOfParent) { utilWiring.createTextNode_wiring((newBranchIndex * 2 + 3) + " " + (newBranchIndex * 2 + 4) , new drawing.PointF(142, UtilPiping.VDistanceVertical_wiring * i), nodeCH); newBranchIndex++; } } } else { utilWiring.createTextNode_wiring(item_wiring.StrGroup1[0], item_wiring.PtStr1, nodeCH); } utilWiring.createTextNode_wiring(item_wiring.Str1, new drawing.PointF(35, (float)(nodeCH.Size.Height - enlargedHeight - 14)), nodeCH); if (index1 == 0) { ptf1 = new drawing.PointF((float)x, (float)y); ptf2 = new drawing.PointF((float)(nodeCH.Location.X + 1), (float)y); ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2 }); } else { x = nodeCH.Location.X; ptf1 = new drawing.PointF((float)x, (float)y); ptf2 = new drawing.PointF((float)(x - 60), (float)y); ptf3 = new drawing.PointF((float)(x - 60), (float)(y - 15)); ptf4 = new drawing.PointF((float)x, (float)(y - UtilityWiring.VDistanceVertical_wiring * (index1 - lastYIndex))); ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3, ptf4 }); } ptf1 = new drawing.PointF((float)(nodeCH.Location.X + 140 - 60), (float)(nodeCH.Location.Y + 20)); ptf2 = new drawing.PointF(ptf1.X + 74, ptf1.Y + 4); ptf3 = new drawing.PointF(ptf2.X - 10, ptf2.Y); ptArrayList_ground.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 }); utilWiring.createTextNode_wiring(item_wiring.StrGroup2[0], item_wiring.PtStrGroup2[0], nodeCH); utilWiring.createTextNode_wiring(item_wiring.StrGroup3[0], item_wiring.PtStrGroup3[0], nodeCH); utilWiring.createTextNode_wiring(item_wiring.StrGroup4[0], item_wiring.PtStrGroup4[0], nodeCH, true); nodeCHPointF = utilWiring.convertSystemPointToDrawingPoint(nodeCH.Location); ptf4 = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2L[0], nodeCHPointF); ptf5 = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2R[0], nodeCHPointF); ptf4.X -= 60; ptf5.X -= 60; ptArrayList_power.Add(new drawing.PointF[] { ptf4, ptf5 }); lastYIndex = index1; if (nodeCH.ChildNodes.Count > 1) { index1 += nodeCH.ChildNodes.Count - 1; } index1++; } else if (node is ng.WiringNodeIn) { ng.WiringNodeIn nodeIn = node as ng.WiringNodeIn; lastIn = nodeIn; int powerIndex = 0; bool isNewPower = false; item_wiring = utilWiring.GetNodeElement_Wiring_IDU(nodeIn.RoomIndoorItem.IndoorItem, thisProject.BrandCode, sysItem.OutdoorItem.Type, ref strArrayList_powerType, ref strArrayList_powerVoltage, ref dArrayList_powerCurrent, ref powerIndex, ref isNewPower); double current = nodeIn.RoomIndoorItem.IndoorItem.RatedCurrent; sumCurrent += current; nodeIn.Location = utilWiring.getLocationChild_wiring(parent, node, index1, isHR); nodeIn.Text = item_wiring.ShortModel; imgFile = System.IO.Path.Combine(imgDir, item_wiring.KeyName + ".png"); utilWiring.setNode_wiring(nodeIn, imgFile, addFlowWiring); string indoorName = nodeIn.RoomIndoorItem.IndoorName; // DOUBT NEED TO CHECK LATER after FER as Room is not functional in FER //if (!string.IsNullOrEmpty(nodeIn.RoomIndoorItem.RoomID)) //{ // RoomLoadIndexBLL roomBill = new RoomLoadIndexBLL(); // string floorRoomName = roomBill.getFloorRoomName(nodeIn.RoomIndoorItem, thisProject); // indoorName = floorRoomName + ":" + indoorName; //} //else //{ // if (!string.IsNullOrEmpty(nodeIn.RoomIndoorItem.DisplayRoom)) // { // indoorName = nodeIn.RoomIndoorItem.DisplayRoom + ":" + indoorName; // } //} utilWiring.createTextNode_wiring(indoorName, new drawing.PointF(66, -13), nodeIn); utilWiring.createTextNode_wiring(item_wiring.StrGroup3[0], item_wiring.PtStrGroup3[0], nodeIn); utilWiring.createTextNode_wiring(item_wiring.Str1, item_wiring.PtStr1, nodeIn); utilWiring.createTextNode_wiring(item_wiring.StrGroup1[0], item_wiring.PtStrGroup1[0], nodeIn); utilWiring.createTextNode_wiring(item_wiring.StrGroup2[0], item_wiring.PtStrGroup2[0], nodeIn); utilWiring.createTextNode_wiring(item_wiring.StrGroup4[0], item_wiring.PtStrGroup4[0], nodeIn, true); double x1 = parent.Location.X + parent.Size.Width - 1; double y1 = nodeIn.Location.Y + nodeIn.Size.Height - 2; float x = (float)x1; float y = (float)y1; if (isHR && parent is ng.WiringNodeOut && !prevBrotherNodeIsIndoor) { x = (float)nodeIn.Location.X; ptf1 = new drawing.PointF(x, y); ptf2 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring - 60, y); ptf3 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring - 60, y - 15); ptf4 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring, y - UtilPiping.VDistanceVertical_wiring * (index1 - lastYIndex)); ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3, ptf4 }); } else { if (index1 == 0 || nodeIn.IsNewBranchOfParent) { ptf1 = new drawing.PointF(x, y); ptf2 = new drawing.PointF((float)(nodeIn.Location.X + 1), y); ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2 }); } else { x = (float)nodeIn.Location.X; ptf1 = new drawing.PointF(x, y); ptf2 = new drawing.PointF(x, y - 15); ptf3 = new drawing.PointF(x + 60, y - UtilPiping.VDistanceVertical_wiring); ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 }); } } ptf1 = new drawing.PointF((float)(nodeIn.Location.X + 140), (float)(nodeIn.Location.Y + 20)); ptf2 = new drawing.PointF(ptf1.X + 74, ptf1.Y + 4); ptf3 = new drawing.PointF(ptf2.X - 10, ptf2.Y); ptArrayList_ground.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 }); myNodeInList.Add(nodeIn); nodeInPointF = utilWiring.convertSystemPointToDrawingPoint(nodeIn.Location); ptf4 = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2L[0], nodeInPointF); ptf5 = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2R[0], nodeInPointF); ptf5.X += (10f * powerIndex) + 55f; ptArrayList_power.Add(new drawing.PointF[] { ptf4, ptf5 }); if (isNewPower) { ptf4 = new drawing.PointF(ptf5.X, (float)(nodeIn.Location.Y + (nodeIn.Size.Height / 2))); ptf6 = new drawing.PointF(ptf5.X + 240, ptf4.Y); ptArrayList_mainpower.Add(new drawing.PointF[] { ptf5, ptf4, ptf6 }); } else { ptArrayList_mainpower[powerIndex][0] = ptf5; } prevBrotherNodeIsIndoor = true; lastYIndex = index1; index1++; } } }