/// <summary> /// 加载节点,第一次使用 /// </summary> public override void AddChild() { ChildTreeItems.Clear(); if (NodeType != TypeOfTabTreeNode.IsGrp) { return; } if (!Sr.EquipmentInfoHolding.Services.ServicesGrpMulitInfoHold.ItemsMultGrp.ContainsKey(NodeId)) { return; } var ntsss = ServicesGrpSingleInfoHold.GetRtuOrGrpIndex( Sr.EquipmentInfoHolding.Services.ServicesGrpMulitInfoHold.ItemsMultGrp[NodeId].LstTml); foreach (var t in ntsss) { if (!Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.InfoItems.ContainsKey(t)) { continue; } var ff = Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.InfoItems[t]; if (ff == null || ff.EquipmentType != WjParaBase.EquType.Rtu) { continue; } ChildTreeItems.Add(new TreeNodeItemTmlViewModel(this, ff)); } foreach (var f in ChildTreeItems) { f.GetChildRtuCount(); } }
/// <summary> /// 当分组信息发生变化的时候 增量式重新加载节点 /// </summary> public void UpdateSpecial() { var info = Wlst.Sr.EquipmentInfoHolding.Services.ServicesGrpSingleInfoHold.GetRtuNotInAnyGroup(AreaId); if (info.Count == 0) { this.ChildTreeItems.Clear(); if (_father != null) { _father.ChildTreeItems.Remove(this); } return; } //node delete for (int i = this.ChildTreeItems.Count - 1; i >= 0; i--) { if (ChildTreeItems[i].NodeType != TypeOfTabTreeNode.IsTml) { this.ChildTreeItems.RemoveAt(i); continue; } if (info.Contains(ChildTreeItems[i].NodeId) == false || !Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.InfoItems.ContainsKey( ChildTreeItems[i].NodeId)) { this.ChildTreeItems.RemoveAt(i); } } //tml add and update var exist = (from t in ChildTreeItems select t.NodeId).ToList(); foreach (var t in info) { if (exist.Contains(t)) { continue; } var para = Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(t); if (para == null || para.EquipmentType != WjParaBase.EquType.Rtu) { continue; } if (para.RtuFid != 0) { continue; } var vol = para as Wj3005Rtu; if (vol != null && vol.WjVoltage.RtuUsedType == 2) { ChildTreeItems.Add(new TreeNodeItemTmlViewModel(this, para)); } } //按给定顺序排序 var ntss = ServicesGrpSingleInfoHold.GetRtuOrGrpIndex(info); var idc = new Dictionary <int, TreeNodeBaseNode>(); foreach (var f in this.ChildTreeItems) { if (!ntss.Contains(f.NodeId)) { continue; } int index = ntss.IndexOf(f.NodeId); if (idc.ContainsKey(index) == false) { idc.Add(index, f); } } for (int i = 0; i < ChildTreeItems.Count; i++) { if (idc.ContainsKey(i) == false) { continue; } if (ChildTreeItems.Count < i) { continue; } if (ChildTreeItems[i].NodeId != idc[i].NodeId) { if (ChildTreeItems.Contains(idc[i])) { ChildTreeItems.Remove(idc[i]); } ChildTreeItems.Insert(i, idc[i]); } } }
/// <summary> /// 加载节点,第一次使用 /// </summary> public override void AddChild() { ChildTreeItems.Clear(); if (NodeType != TypeOfTabTreeNode.IsGrp) { return; } //lvf 2018年4月17日14:37:13 默认区域id为0 var tu = new Tuple <int, int>(0, NodeId); //添加分组到子节点中 //if (!ServicesGrpSingleInfoHold.InfoGroups.ContainsKey(tu)) // return; //var tmps = // (from gt in // ServicesGrpSingleInfoHold.InfoGroups[tu].LstGrp // orderby gt ascending // select gt).ToList(); //var ntss = ServicesGrpSingleInfoHold.GetRtuOrGrpIndex(tmps); //foreach (var t in ntss) //{ // if (!ServicesGrpSingleInfoHold.InfoGroups.ContainsKey(t)) // continue; //ChildTreeItems.Add(new TreeNodeItemSingleGroupViewModel(this, // ServicesGrpSingleInfoHold.InfoGroups[ // tu])); ////} ////对分组子节点 进行数据加载 //foreach (var t1 in ChildTreeItems) //{ // t1.AddChild(); //} ///加载终端节点 var tmpssssss = (from gt in ServicesGrpSingleInfoHold.InfoGroups[tu].LstTml orderby gt ascending select gt).ToList(); var ntsss = ServicesGrpSingleInfoHold.GetRtuOrGrpIndex(tmpssssss); var LST = new List <TreeNodeBaseNode>(); foreach (var t in ntsss) { if (!BaseNodes.Nodess.ContainsKey(t)) { if ( !Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.InfoItems.ContainsKey( t)) { continue; } var f = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.InfoItems [t]; new TreeNodeItemTmlViewModel(this, f); } if (!BaseNodes.Nodess.ContainsKey(t)) { continue; } // ChildTreeItems.Add(GrpComSingleMuliViewModel.BaseNodes.Nodess[t]); LST.Add(BaseNodes.Nodess[t]); continue; } // var lstord = (from t in LST orderby t.PhyId ascending select t).ToList(); foreach (var t in LST) { ChildTreeItems.Add(t); } }