private bool RemoveDev(DevEntity dev) { if (MessageBox.Show("确认删除设备:" + dev.Name + "?", "警告", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { var r = devService.Delete(dev.Id + ""); if (r == null) { MessageBox.Show("删除失败"); return(false); } var area = AreaCanvas1.CurrentArea; area.RemoveLeafNode(dev.Id); AreaCanvas1.RemoveDev(dev.Id); var topoTree = ResourceTreeView1.TopoTree; topoTree.RemoveDevNode(dev.Id); return(true); //topoTree.RefreshNode(dev.ParentId); //ResourceTreeView1.TopoTree.RemoveCurrentNode(); } else { return(false); } }
private void EngineClient_NewAlarmsFired(List <DbModel.Location.Alarm.LocationAlarm> obj) { var alarms = obj.ToTModel().ToArray(); AlarmHub.SendLocationAlarms(alarms); AreaCanvas1.ShowLocationAlarms(alarms); }
private void ShowPersons() { if (currentArea == null) { return; } if (AreaCanvas1 == null) { return; } var service = new PersonService(); //var persons = service.GetListByArea(area.Id + ""); //if (persons == null) //{ // persons = service.GetListByArea(""); //} var persons = service.GetList(true); var posService = new PosService(); var posList = posService.GetList();//todo:实时数据以后从缓存中取 foreach (var item in persons) { var pos = posList.FirstOrDefault(i => i.Tag == item.Tag.Code); item.Pos = pos; } AreaCanvas1.ShowPersons(persons); }
private void RemoveArea(AreaEntity area) { if (area.Children == null) { area.Children = areaService.GetListByPid(area.Id + ""); } if (area.Children != null && area.Children.Count > 0) { MessageBox.Show("存在子区域,不能删除!"); } if (area.LeafNodes == null) { area.LeafNodes = devService.GetListByPid(area.Id + ""); } if (area.LeafNodes != null && area.LeafNodes.Count > 0) { MessageBox.Show("存在子设备,不能删除!"); } if (MessageBox.Show("确认删除区域:" + area.Name + "?", "警告", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { var r = areaService.Delete(area.Id + ""); if (r == null) { MessageBox.Show("删除失败"); } else { AreaCanvas1.RemoveArea(area.Id); } } }
private void Tree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { currentArea = ResourceTreeView1.TopoTree.SelectedObject as AreaEntity; if (currentArea != null) { Bll bll = new Bll(); var switchAreas = bll.bus_anchor_switch_area.ToList(); AreaCanvas1.ShowDev = true; AreaCanvas1.ShowArea(currentArea, switchAreas); AreaListBox1.LoadData(currentArea.Children); DeviceListBox1.LoadData(currentArea.LeafNodes); ShowPersons(); ArchorListExportControl1.Clear(); TabControl1.SelectionChanged -= TabControl1_OnSelectionChanged; TabControl1.SelectionChanged += TabControl1_OnSelectionChanged; if (TabControl1.SelectedIndex == 2) { ArchorListExportControl1.LoadData(currentArea.Id); TabControl1.SelectionChanged -= TabControl1_OnSelectionChanged; } } else { var dev = ResourceTreeView1.TopoTree.SelectedObject as DevEntity; if (dev != null) { AreaCanvas1.SelectDevById(dev.Id); } } }
private void SimulationWindow_OnLoaded(object sender, RoutedEventArgs e) { AreaCanvas1.Init(); InitCbList(); LoadData(); }
//private void CreateDevInfo(int areaId,Point point) //{ // //DevEntity // var area= areaId //} private Window SetDevInfo(Rectangle rect, DevEntity obj, bool isShow = true) { var parentArea = areaService.GetEntity(obj.ParentId + ""); if (parentArea.IsPark()) //电厂 { var bound = parentArea.InitBound; var leftBottom = bound.GetLeftBottomPoint(); parkArchorSettingWnd = new ParkArchorSettingWindow(); ArchorSettingContext.ZeroX = leftBottom.X; ArchorSettingContext.ZeroY = leftBottom.Y; parkArchorSettingWnd.RefreshDev += (dev) => { archorSettings = bll.ArchorSettings.ToList(); obj.Refresh(dev); AreaCanvas1.RefreshDev(dev); }; parkArchorSettingWnd.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; parkArchorSettingWnd.Closed += (sender, e) => { parkArchorSettingWnd = null; }; if (isShow) { parkArchorSettingWnd.Show(); } if (parkArchorSettingWnd.ShowInfo(rect, obj.Id) == false) { parkArchorSettingWnd.Close(); parkArchorSettingWnd = null; } return(parkArchorSettingWnd); } else { roomArchorSettingWnd = new RoomArchorSettingWindow(); //roomArchorSettingWnd.Owner = this; roomArchorSettingWnd.RefreshDev += (dev) => { archorSettings = bll.ArchorSettings.ToList(); obj.Refresh(dev); AreaCanvas1.RefreshDev(dev); }; roomArchorSettingWnd.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; roomArchorSettingWnd.Closed += (sender, e) => { roomArchorSettingWnd = null; }; if (isShow) { roomArchorSettingWnd.Show(); } if (roomArchorSettingWnd.ShowInfo(rect, obj.Id) == false) { roomArchorSettingWnd.Close(); roomArchorSettingWnd = null; } return(roomArchorSettingWnd); } }
private void SetDevInfo(Rectangle rect, DevEntity obj) { var parentArea = areaService.GetEntity(obj.ParentId + ""); //obj.Parent if (parentArea.IsPark()) //电厂 { var bound = parentArea.InitBound; //if (bound.Points == null) //{ // bound.Points = new Bll().Points.FindAll(i => i.BoundId == bound.Id); //} var leftBottom = bound.GetLeftBottomPoint(); parkArchorSettingWnd = new ParkArchorSettingWindow(); ArchorSettingContext.ZeroX = leftBottom.X; ArchorSettingContext.ZeroY = leftBottom.Y; //win2.Owner = this; parkArchorSettingWnd.RefreshDev += (dev) => { archorSettings = bll.ArchorSettings.ToList(); AreaCanvas1.RefreshDev(dev); }; parkArchorSettingWnd.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; parkArchorSettingWnd.Closed += (sender, e) => { parkArchorSettingWnd = null; }; parkArchorSettingWnd.Show(); if (parkArchorSettingWnd.ShowInfo(rect, obj.Id) == false) { parkArchorSettingWnd.Close(); parkArchorSettingWnd = null; return; } } else { roomArchorSettingWnd = new RoomArchorSettingWindow(); //roomArchorSettingWnd.Owner = this; roomArchorSettingWnd.RefreshDev += (dev) => { archorSettings = bll.ArchorSettings.ToList(); AreaCanvas1.RefreshDev(dev); }; roomArchorSettingWnd.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; roomArchorSettingWnd.Closed += (sender, e) => { roomArchorSettingWnd = null; }; roomArchorSettingWnd.Show(); if (roomArchorSettingWnd.ShowInfo(rect, obj.Id) == false) { roomArchorSettingWnd.Close(); roomArchorSettingWnd = null; return; } } }
private void RemoveDev(DevEntity dev) { if (MessageBox.Show("确认删除设备:" + dev.Name + "?", "警告", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { var r = devService.Delete(dev.Id + ""); if (r == null) { MessageBox.Show("删除失败"); } AreaCanvas1.RemoveDev(dev.Id); //topoTree.RefreshNode(dev.ParentId); //ResourceTreeView1.TopoTree.RemoveCurrentNode(); } }
private void TopoTreeView1_SelectedObjectChanged(object obj) { area = obj as PhysicalTopology; if (area == null) { return; } AreaCanvas1.ShowDev = true; AreaCanvas1.ShowArea(area); var service = new PersonService(); var persons = service.GetListByArea(area.Id + ""); if (persons == null) { persons = service.GetListByArea(""); } AreaCanvas1.ShowPersons(persons); }
private void Win_AreaModified(AreaEntity obj) { LoadData(); if (obj.LeafNodes != null) { foreach (DevEntity leaf in obj.LeafNodes) { if (leaf.TypeName == "基站") { var newDevRect = AreaCanvas1.GetDev(leaf.Id); Window wnd = SetDevInfo(newDevRect, newDevRect.Tag as DevEntity, false); if (wnd is RoomArchorSettingWindow) { (wnd as RoomArchorSettingWindow).SaveInfo(false); } if (wnd is ParkArchorSettingWindow) { (wnd as ParkArchorSettingWindow).SaveInfo(false); } //wnd.Close(); } } } }
void InitAreaCanvas() { AreaCanvas1.Init(); ContextMenu devContextMenu = new ContextMenu(); devContextMenu.AddMenu("设置设备", (tag) => { SetDevInfo(AreaCanvas1.SelectedDev, AreaCanvas1.SelectedDev.Tag as DevEntity); }); devContextMenu.AddMenu("删除设备", (tag) => { var dev = AreaCanvas1.SelectedDev.Tag as DevEntity; RemoveDev(dev); }); devContextMenu.AddMenu("复制设备", (tag) => { var dev = AreaCanvas1.SelectedDev.Tag as DevEntity; dev.Pos.PosX += 5; dev.Pos.PosY += 5; dev.Name += " Copy"; dev.Code = ""; //dev.Ip = ""; var dev2 = devService.Post(dev); var archor = dev.DevDetail as TArchor; archor.X += 5; archor.Y += 5; archor.Name += " Copy"; archor.Code = ""; archor.Ip = ""; archor.DevInfoId = dev2.Id; var archorNew = archorService.Post(archor); archorNew.Code = "Code_" + archorNew.Id; archorService.Put(archorNew); LoadData(); }); AreaCanvas1.DevContextMenu = devContextMenu; ContextMenu areaContextMenu = new ContextMenu(); areaContextMenu.AddMenu("设置区域", (tag) => { var area = AreaCanvas1.SelectedArea; ShowAreaInfo(area); }); areaContextMenu.AddMenu("删除区域", (tag) => { var area = AreaCanvas1.SelectedArea; RemoveArea(area); }); areaContextMenu.AddMenu("删除区域内设备", (tag) => { var area = AreaCanvas1.SelectedArea; RemoveAreaDevs(area); }); AreaCanvas1.AreaContextMenu = areaContextMenu; archorSettings = bll.ArchorSettings.ToList(); AreaCanvas1.GetSettingFunc = (dev) => { object detail = dev.DevDetail; if (detail is TArchor) { var archor = detail as TArchor; return(archorSettings.Find(i => i.Code == archor.Code)); } return(null); }; }
private void DeviceListBox1_SelectedItemChanged(DevEntity obj) { AreaCanvas1.SelectDev(obj); }
private void LoadAreaTree() { var tree = areaService.GetTree(1); if (tree == null) { return; } var devList = tree.GetAllDev(); var archorList = archorService.GetList(); foreach (var dev in devList) { if (archorList != null) { dev.DevDetail = archorList.FirstOrDefault(i => i.DevInfoId == dev.Id); } } var topoTree = ResourceTreeView1.TopoTree; topoTree.AreaMenu = new ContextMenu(); topoTree.AreaMenu.AddMenu("添加区域", (obj) => { var area = topoTree.SelectedObject as AreaEntity; var win = new NewAreaWindow(area); win.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; if (win.ShowDialog() == true) { var newArea = win.NewArea; area.AddChild(newArea.ToTModel()); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); } }); topoTree.AreaMenu.AddMenu("设置区域", (tag) => { var area = topoTree.SelectedObject as AreaEntity; ShowAreaInfo(area); }); topoTree.AreaMenu.AddMenu("删除区域", (tag) => { var area = topoTree.SelectedObject as AreaEntity; RemoveArea(area); }); topoTree.AreaMenu.AddMenu("添加基站", (tag) => { var area = topoTree.SelectedObject as AreaEntity; var archor = new TArchor(); archor.X = 10; archor.Y = 10; archor.Name = "NewArchor"; archor.Code = ""; archor.Ip = ""; archor.ParentId = area.Id; var archorNew = archorService.Post(archor); archorNew.Code = "Code_" + archorNew.Id; archorService.Put(archorNew); area.AddLeaf(archorNew.DevInfo); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); }); //topoTree.AreaMenu.AddMenu("调整子区域坐标", (tag) => //{ // var area = topoTree.SelectedObject as AreaEntity; // var bound = area.InitBound; // var x = bound.MinX; // var y = bound.MinY; // var boundList = new List<Bound>(); // foreach (var subArea in area.Children) // { // var subBound = subArea.InitBound; // if (subBound != null) // { // var points = subBound.Points; // if (points != null) // { // foreach (var point in points) // { // point.X -= x; // point.Y -= y; // } // bll.Points.EditRange(points.ToDbModel()); // } // subBound.SetMinMaxXY(); // boundList.Add(subBound); // } // } // bll.Bounds.EditRange(boundList.ToDbModel()); //}); topoTree.AreaMenu.AddMenu("复制结构", (tag) => { var area = topoTree.SelectedObject as AreaEntity; var area1 = areaService.GetEntity("240", true); area.InitBound.SetMinMaxXY(); bll.Bounds.Edit(area.InitBound.ToDbModel()); var children = area1.Children.CloneObjectList().ToList(); var newBounds = new List <Bound>(); foreach (var item in children) { if (item.InitBound.Points == null) { item.InitBound.Points = bll.Points.FindAll(i => i.BoundId == item.Id).ToTModel(); } newBounds.Add(item.InitBound); } var dbBounds = newBounds.ToDbModel(); bll.Bounds.AddRange(dbBounds); for (int i = 0; i < children.Count; i++) { AreaEntity item = children[i]; item.ParentId = area.Id; item.InitBoundId = dbBounds[i].Id; } foreach (var item in dbBounds) { var points = item.Points.CloneObjectList(); foreach (var point in points) { point.BoundId = item.Id; } bll.Points.AddRange(points); } var dbChildren = children.ToDbModel(); bll.Areas.AddRange(dbChildren); var devs = area1.LeafNodes.CloneObjectList().ToList();; foreach (var item in devs) { item.ParentId = area.Id; item.Code = ""; item.IP = ""; item.DevDetail = bll.Archors.Find(i => i.DevInfoId == item.Id).ToTModel(); } var dbDevs = devs.ToDbModel(); bll.DevInfos.AddRange(dbDevs); var archors = new List <TModel.Location.AreaAndDev.Archor>(); for (int i = 0; i < devs.Count; i++) { DevEntity dev = devs[i]; var archor = dev.DevDetail as TModel.Location.AreaAndDev.Archor; archor.Code = ""; archor.Ip = ""; archor.ParentId = area.Id; archor.DevInfoId = dbDevs[i].Id; archors.Add(archor); } bll.Archors.AddRange(archors.ToDbModel()); //var archor = new TArchor(); //archor.X = 10; //archor.Y = 10; //archor.Name = "NewArchor"; //archor.Code = ""; //archor.Ip = ""; //archor.ParentId = area.Id; //var archorNew = archorService.Post(archor); //archorNew.Code = "Code_" + archorNew.Id; //archorService.Put(archorNew); //area.AddLeaf(archorNew.DevInfo); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); }); topoTree.DevMenu = new ContextMenu(); topoTree.DevMenu.AddMenu("设置设备", (tag) => { var dev = topoTree.SelectedObject as DevEntity; SetDevInfo(null, dev); }); topoTree.DevMenu.AddMenu("基站配置", (tag) => { //var dev = topoTree.SelectedObject as DevEntity; //SetDevInfo(null, dev); }); topoTree.DevMenu.AddMenu("删除设备", (tag) => { var dev = topoTree.SelectedObject as DevEntity; RemoveDev(dev); }); topoTree.LoadDataEx <AreaEntity, DevEntity>(tree); topoTree.Tree.SelectedItemChanged += Tree_SelectedItemChanged; topoTree.ExpandLevel(2); if (_archors != null) { List <int> ids = new List <int>(); foreach (var archor in _archors) { topoTree.SelectNode((int)archor.ParentId, archor.DevInfoId); ids.Add(archor.DevInfoId); } AreaCanvas1.SelectDevsById(ids); } else { topoTree.SelectFirst(); } }
private void AreaListBox1_SelectedItemChanged(AreaEntity obj) { AreaCanvas1.SelectArea(obj); }
private void InitTopoTreeAreaMenu(WPFClientControlLib.TopoTreeView topoTree) { topoTree.AreaMenu = new ContextMenu(); topoTree.AreaMenu.AddMenu("添加区域", (obj) => { var area = topoTree.SelectedObject as AreaEntity; var win = new NewAreaWindow(area, 0); win.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; if (win.ShowDialog() == true) { var newArea = win.NewArea; area.AddChild(newArea.ToTModel()); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); } }); topoTree.AreaMenu.AddMenu("添加区域(柱子)", (obj) => { var area = topoTree.SelectedObject as AreaEntity; var win = new NewAreaWindow(area, 1); win.ShowPointEvent += (x, y) => { AreaCanvas1.ShowPoint(x, y); }; if (win.ShowDialog() == true) { var newArea = win.NewArea; area.AddChild(newArea.ToTModel()); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); } }); topoTree.AreaMenu.AddMenu("设置区域", (tag) => { var area = topoTree.SelectedObject as AreaEntity; ShowAreaInfo(area); }); topoTree.AreaMenu.AddMenu("删除区域", (tag) => { var area = topoTree.SelectedObject as AreaEntity; RemoveArea(area); }); topoTree.AreaMenu.AddMenu("添加基站", (tag) => { var area = topoTree.SelectedObject as AreaEntity; var archor = new TArchor(); archor.X = 10; archor.Y = 10; archor.Name = "NewArchor"; archor.Code = ""; archor.Ip = ""; archor.ParentId = area.Id; var archorNew = archorService.Post(archor); archorNew.Code = "Code_" + archorNew.Id; archorService.Put(archorNew); area.AddLeaf(archorNew.DevInfo); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); }); //topoTree.AreaMenu.AddMenu("调整子区域坐标", (tag) => //{ // var area = topoTree.SelectedObject as AreaEntity; // var bound = area.InitBound; // var x = bound.MinX; // var y = bound.MinY; // var boundList = new List<Bound>(); // foreach (var subArea in area.Children) // { // var subBound = subArea.InitBound; // if (subBound != null) // { // var points = subBound.Points; // if (points != null) // { // foreach (var point in points) // { // point.X -= x; // point.Y -= y; // } // bll.Points.EditRange(points.ToDbModel()); // } // subBound.SetMinMaxXY(); // boundList.Add(subBound); // } // } // bll.Bounds.EditRange(boundList.ToDbModel()); //}); topoTree.AreaMenu.AddMenu("复制结构", (tag) => { var area = topoTree.SelectedObject as AreaEntity; var area1 = areaService.GetEntity("240", true); area.InitBound.SetMinMaxXY(); bll.Bounds.Edit(area.InitBound.ToDbModel()); var children = area1.Children.CloneObjectList().ToList(); var newBounds = new List <Bound>(); foreach (var item in children) { if (item.InitBound.Points == null) { item.InitBound.Points = bll.Points.FindAll(i => i.BoundId == item.Id).ToTModel(); } newBounds.Add(item.InitBound); } var dbBounds = newBounds.ToDbModel(); bll.Bounds.AddRange(dbBounds); for (int i = 0; i < children.Count; i++) { AreaEntity item = children[i]; item.ParentId = area.Id; item.InitBoundId = dbBounds[i].Id; } foreach (var item in dbBounds) { var points = item.Points.CloneObjectList(); foreach (var point in points) { point.BoundId = item.Id; } bll.Points.AddRange(points); } var dbChildren = children.ToDbModel(); bll.Areas.AddRange(dbChildren); var devs = area1.LeafNodes.CloneObjectList().ToList();; foreach (var item in devs) { item.ParentId = area.Id; item.Code = ""; item.IP = ""; item.DevDetail = bll.Archors.Find(i => i.DevInfoId == item.Id).ToTModel(); } var dbDevs = devs.ToDbModel(); bll.DevInfos.AddRange(dbDevs); var archors = new List <TModel.Location.AreaAndDev.Archor>(); for (int i = 0; i < devs.Count; i++) { DevEntity dev = devs[i]; var archor = dev.DevDetail as TModel.Location.AreaAndDev.Archor; archor.Code = ""; archor.Ip = ""; archor.ParentId = area.Id; archor.DevInfoId = dbDevs[i].Id; archors.Add(archor); } bll.Archors.AddRange(archors.ToDbModel()); topoTree.RefreshCurrentNode <AreaEntity, DevEntity>(area); AreaCanvas1.Refresh(); }); }
private void LoadAreaTree() { DbAreaEntity tree1 = null; if (FilterAreaTree == null) { tree1 = bll.GetAreaTree(true, null, true); } else { tree1 = bll.GetAreaTreeEx(false, null, FilterAreaTree); } var tree = tree1.ToTModel(); if (tree == null) { return; } var devList = tree.GetAllDev(); var archorList = archorService.GetList(); foreach (var dev in devList) { if (archorList != null) { dev.DevDetail = archorList.FirstOrDefault(i => i.DevInfoId == dev.Id); } } var topoTree = ResourceTreeView1.TopoTree; var iId = topoTree.SelectedObject as IId; InitTopoTreeAreaMenu(topoTree); InitTopoTreeDevMenu(topoTree); topoTree.LoadDataEx <AreaEntity, DevEntity>(tree); topoTree.Tree.SelectedItemChanged += Tree_SelectedItemChanged; topoTree.ExpandLevel(2); if (_archors != null) { List <int> ids = new List <int>(); foreach (var archor in _archors) { topoTree.SelectNode(typeof(AreaEntity), (int)archor.ParentId, archor.DevInfoId); ids.Add(archor.DevInfoId); } AreaCanvas1.SelectDevsById(ids);// //AreaCanvas1.SelectDevsByIdEx(ids);//把其他的都删除了 } else { if (iId == null) { topoTree.SelectFirst(); } else { topoTree.SelectNodeById(iId); } } }
void InitAreaCanvas() { AreaCanvas1.Init(); AreaCanvas1.udpArchorList = ArchorManager.LoadArchorListResult(); ContextMenu devContextMenu = new ContextMenu(); devContextMenu.AddMenu("设置设备", (tag) => { SetDevInfo(AreaCanvas1.SelectedDev, AreaCanvas1.SelectedDev.Tag as DevEntity); }); devContextMenu.AddMenu("删除设备", (tag) => { var dev = AreaCanvas1.SelectedDev.Tag as DevEntity; RemoveDev(dev); }); devContextMenu.AddMenu("复制设备", (tag) => { var dev = AreaCanvas1.SelectedDev.Tag as DevEntity; dev.Pos.PosX += 5; dev.Pos.PosY += 5; dev.Name += " Copy"; dev.Code = ""; //dev.Ip = ""; var dev2 = devService.Post(dev); var archor = dev.DevDetail as TArchor; if (archor != null) { archor.X += 5; archor.Y += 5; archor.Name += " Copy"; archor.Code = ""; archor.Ip = ""; archor.DevInfoId = dev2.Id; var archorNew = archorService.Post(archor); archorNew.Code = "Code_" + archorNew.Id; archorService.Put(archorNew); } LoadData(); }); AreaCanvas1.DevContextMenu = devContextMenu; ContextMenu areaContextMenu = new ContextMenu(); areaContextMenu.AddMenu("设置区域", (tag) => { var area = AreaCanvas1.SelectedArea; ShowAreaInfo(area); }); areaContextMenu.AddMenu("删除区域", (tag) => { var area = AreaCanvas1.SelectedArea; RemoveArea(area); }); areaContextMenu.AddMenu("删除区域内设备", (tag) => { var area = AreaCanvas1.SelectedArea; RemoveAreaDevs(area); }); areaContextMenu.AddMenu("添加测量点", (tag) => { var area = AreaCanvas1.SelectedArea; TrackPointWindow win = new TrackPointWindow(); if (win.Show(area.Id, AreaCanvas1.SelectedPoint2) == true) { var newDev = win._tp; area.AddLeafNode(newDev.ToTModel()); AreaCanvas1.Refresh(); var newDevRect = AreaCanvas1.GetDev(newDev.Id); Window wnd = SetDevInfo(newDevRect, newDevRect.Tag as DevEntity); if (wnd is RoomArchorSettingWindow) { (wnd as RoomArchorSettingWindow).SaveInfo(false); //wnd.Close(); } } //RoomArchorSettingWindow win = new RoomArchorSettingWindow(); //var dev = topoTree.SelectedObject as DevEntity; //SetDevInfo(null, null); }); AreaCanvas1.AreaContextMenu = areaContextMenu; archorSettings = bll.ArchorSettings.ToList(); AreaCanvas1.GetSettingFunc = (dev) => { object detail = dev.DevDetail; if (detail is TArchor) { var archor = detail as TArchor; return(archorSettings.Find(i => i.Code == archor.Code)); } return(null); }; }
private void RemoveAreaDevs(AreaEntity area) { if (area.LeafNodes == null) { area.LeafNodes = devService.GetListByPid(area.Id + ""); } List <DevEntity> devs = new List <DevEntity>(); //List<DevEntity> devs2 = new List<DevEntity>(); if (area.Type == AreaTypes.机房) { var parent = area.Parent; if (parent == null) { parent = areaService.GetParent(area.Id + ""); } var devs2 = parent.LeafNodes; if (devs2 == null) { devs2 = devService.GetListByPid(parent.Id + ""); } foreach (var item in devs2) { if (area.InitBound.Contains(item.Pos.PosX, item.Pos.PosZ)) { devs.Add(item); } } } else if (area.Type == AreaTypes.楼层) { var devs2 = area.LeafNodes; if (devs2 == null) { devs2 = devService.GetListByPid(area.Id + ""); } foreach (var item in devs2) { if (area.InitBound.Contains(item.Pos.PosX, item.Pos.PosZ)) { devs.Add(item); } } } //var devs=devService.GetListByBound(area.InitBound); AreaCanvas1.SelectDevs(devs); if (MessageBox.Show(string.Format("确认删除区域'{0}'内{1}个设备?", area.Name, devs.Count), "警告", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { foreach (var dev in devs) { var r = devService.Delete(dev.Id + ""); if (r == null) { MessageBox.Show("删除失败:" + dev.Name); } AreaCanvas1.RemoveDev(dev.Id); } } else { AreaCanvas1.ClearSelect(); } }