| | |
| | | using System.Windows.Forms; |
| | | using static Hydro.MapView.MapViewEnum; |
| | | using Hydro.MapView.Common; |
| | | using DevExpress.XtraEditors; |
| | | using System.Threading; |
| | | |
| | | |
| | | namespace Hydro.MapUI |
| | | { |
| | |
| | | { |
| | | _isEnable = isReadOnly; |
| | | } |
| | | |
| | | |
| | | public void SetWindows(Form mg) |
| | | { |
| | | if (mg.WindowState == FormWindowState.Maximized) |
| | |
| | | } |
| | | public void SetObj(IBaseViewModel selectedObject) |
| | | { |
| | | lock(selectedObject) |
| | | { |
| | | _selectedObject = selectedObject; |
| | | |
| | | _selectedObject = selectedObject; |
| | | |
| | | |
| | | if (_selectedObject is JunctionViewModel junc) |
| | | { |
| | | _selectedType = MapObjectType.节点; |
| | | propertyGrid.SelectedObjects = new JunctionViewModel[] { junc }; |
| | | } |
| | | else if (_selectedObject is ReservoirViewModel res) |
| | | { |
| | | _selectedType = MapObjectType.水库; |
| | | propertyGrid.SelectedObjects = new ReservoirViewModel[] { res }; |
| | | } |
| | | else if (_selectedObject is TankViewModel tank) |
| | | { |
| | | _selectedType = MapObjectType.水池; |
| | | propertyGrid.SelectedObjects = new TankViewModel[] { tank }; |
| | | } |
| | | else if (_selectedObject is PipeViewModel pipe) |
| | | { |
| | | _selectedType = MapObjectType.管线; |
| | | propertyGrid.SelectedObjects = new PipeViewModel[] { pipe }; |
| | | } |
| | | else if (_selectedObject is ValveViewModel valve) |
| | | { |
| | | _selectedType = MapObjectType.阀门; |
| | | propertyGrid.SelectedObjects = new ValveViewModel[] { valve }; |
| | | } |
| | | else if (_selectedObject is RepeaterViewModel repeater) |
| | | { |
| | | _selectedType = MapObjectType.重复器; |
| | | propertyGrid.SelectedObjects = new RepeaterViewModel[] { repeater }; |
| | | } |
| | | //水表 |
| | | else if (_selectedObject is MeterViewModel meter) |
| | | { |
| | | _selectedType = MapObjectType.水表; |
| | | propertyGrid.SelectedObjects = new MeterViewModel[] { meter }; |
| | | } |
| | | //水泵 |
| | | else if (_selectedObject is PumpViewModel pump) |
| | | { |
| | | _selectedType = MapObjectType.水泵; |
| | | propertyGrid.SelectedObjects = new PumpViewModel[] { pump }; |
| | | } |
| | | //喷头Nozzle |
| | | else if (_selectedObject is NozzleViewModel nozzle) |
| | | { |
| | | _selectedType = MapObjectType.喷头; |
| | | propertyGrid.SelectedObjects = new NozzleViewModel[] { nozzle }; |
| | | } else |
| | | { |
| | | _selectedType = MapObjectType.全部; |
| | | propertyGrid.SelectedObjects =new IBaseViewModel[] { selectedObject }; |
| | | } |
| | | switch (_selectedType) |
| | | { |
| | | case MapObjectType.节点: |
| | | Text = "节点 Properties"; |
| | | break; |
| | | case MapObjectType.水库: |
| | | Text = "水库 Properties"; |
| | | break; |
| | | case MapObjectType.水池: |
| | | Text = "水池 Properties"; |
| | | break; |
| | | case MapObjectType.管线: |
| | | Text = "管线 Properties"; |
| | | break; |
| | | case MapObjectType.阀门: |
| | | Text = "阀门 Properties"; |
| | | break; |
| | | case MapObjectType.重复器: |
| | | Text = "重复器 Properties"; |
| | | break; |
| | | } |
| | | |
| | | if (_selectedObject is JunctionViewModel junc) |
| | | { |
| | | _selectedType = MapObjectType.节点; |
| | | propertyGrid.SelectedObject = junc; |
| | | |
| | | } |
| | | else if (_selectedObject is ReservoirViewModel reser) |
| | | { |
| | | _selectedType = MapObjectType.水池; |
| | | propertyGrid.SelectedObject = reser; |
| | | } |
| | | else if (_selectedObject is TankViewModel tank) |
| | | { |
| | | _selectedType = MapObjectType.水池; |
| | | propertyGrid.SelectedObject =tank; |
| | | } |
| | | |
| | | else if (_selectedObject is PipeViewModel pipe) |
| | | { |
| | | _selectedType = MapObjectType.管线; |
| | | propertyGrid.SelectedObject = pipe; |
| | | } |
| | | else if (_selectedObject is RepeaterViewModel repeater) |
| | | { |
| | | _selectedType = MapObjectType.重复器; |
| | | propertyGrid.SelectedObject = repeater; |
| | | } |
| | | else if (_selectedObject is ValveViewModel valve) |
| | | { |
| | | _selectedType = MapObjectType.水池; |
| | | propertyGrid.SelectedObject = valve; |
| | | } |
| | | else |
| | | { |
| | | _selectedType = MapObjectType.全部; |
| | | propertyGrid.SelectedObject = selectedObject; |
| | | } |
| | | switch (_selectedType) |
| | | { |
| | | case MapObjectType.节点: |
| | | Text = "节点 Properties"; |
| | | break; |
| | | case MapObjectType.水库: |
| | | Text = "水库 Properties"; |
| | | break; |
| | | case MapObjectType.水池: |
| | | Text = "水池 Properties"; |
| | | break; |
| | | case MapObjectType.管线: |
| | | Text = "管线 Properties"; |
| | | break; |
| | | case MapObjectType.阀门: |
| | | Text = "阀门 Properties"; |
| | | break; |
| | | case MapObjectType.重复器: |
| | | Text = "重复器 Properties"; |
| | | break; |
| | | } |
| | | |
| | | } |
| | | public void SetNet(MapViewNetWork net) |
| | | { |
| | |
| | | { |
| | | foreach (var item in Enum.GetValues(typeof(MapObjectType))) |
| | | { |
| | | //comboBox_type.Properties.Items.Add(item); |
| | | comboBox_type.Items.Add(item); |
| | | } |
| | | //comboBox_type.SelectedIndex = 0; |
| | | comboBox_type.SelectedIndex = 0; |
| | | selectionSets = new List<SelectionSet>(); |
| | | selectionSet = new SelectionSet(); |
| | | //listBox1.DataSource = selectionSet.View; |
| | | listBox1.DataSource = selectionSet.View; |
| | | //listBox1.DisplayMember = "IDType"; |
| | | } |
| | | |
| | |
| | | void RefreshListBox() |
| | | { |
| | | if (selectionSet == null) return; |
| | | //string txt = comboBox_type.SelectedItem.ToString(); |
| | | //MapObjectType selectedType = (MapObjectType)Enum.Parse(typeof(MapObjectType), txt); |
| | | string txt = comboBox_type.SelectedItem.ToString(); |
| | | MapObjectType selectedType = (MapObjectType)Enum.Parse(typeof(MapObjectType), txt); |
| | | // 使用 LINQ 查询筛选选择集 |
| | | //selectionSet.filterType = selectedType; |
| | | //selectionSet.FilterString = textBox_search.Text; |
| | | selectionSet.filterType = selectedType; |
| | | selectionSet.FilterString = textBox_search.Text; |
| | | |
| | | |
| | | //listBox1.SelectedIndexChanged -= listBox1_SelectedIndexChanged; |
| | | listBox1.SelectedIndexChanged -= listBox1_SelectedIndexChanged; |
| | | |
| | | |
| | | |
| | | //listBox1.DisplayMember = "ID"; |
| | | //// 重新绑定选择集列表 |
| | | //listBox1.DataSource = selectionSet.View; |
| | | //listBox1.DataSource = null; |
| | | listBox1.DataSource = null; |
| | | //listBox1.DisplayMember = "IDType"; |
| | | //listBox1.DataSource = selectionSet.View; |
| | | listBox1.DataSource = selectionSet.View; |
| | | |
| | | //listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; |
| | | listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; |
| | | } |
| | | |
| | | private void listBox1_SelectedIndexChanged(object sender, EventArgs e) |
| | | { |
| | | |
| | | //if (listBox1.SelectedItems.Count == 0) |
| | | //{ |
| | | // return; |
| | | //} |
| | | //else if (listBox1.SelectedItems.Count == 1) |
| | | //{ |
| | | // var objID = listBox1.SelectedItems[0]; |
| | | // var findlist = selectionSet.net.MapObjects.FindAll(o => o.ID == objID); |
| | | // if (findlist.Count <= 0) return; |
| | | // IBaseViewModel mapObject = findlist[0];// selectionSet.selectedObjects.Find(obj => obj.ID == ((MapObject)listBox1.SelectedItems[0]).ID); |
| | | // if (mapObject != null) SetObj(mapObject); |
| | | // GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); ; |
| | | // GlobalObject.map.selectedObjs.Clear(); |
| | | // GlobalObject.map.selectedObjs.Add(mapObject); |
| | | // mapObject.Selected = true; |
| | | // GlobalObject.map.SetInvalidated(); |
| | | //} |
| | | //else |
| | | //{ |
| | | // List<IBaseViewModel> list = new List<IBaseViewModel>(); |
| | | // foreach (var o in listBox1.SelectedItems) |
| | | // { |
| | | // var objID = listBox1.SelectedItems[0]; |
| | | // IBaseViewModel mapObject = selectionSet.net.MapObjects.FindAll(obj => obj.ID == objID)[0]; |
| | | // list.Add(mapObject); |
| | | // } |
| | | // ShowProperties(list); |
| | | // GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); ; |
| | | // GlobalObject.map.selectedObjs.Clear(); |
| | | // list.ForEach(o => o.Selected = true); |
| | | // GlobalObject.map.selectedObjs.AddRange(list); |
| | | // GlobalObject.map.SetInvalidated(); |
| | | //} |
| | | |
| | | if (listBox1.SelectedItems.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | else if (listBox1.SelectedItems.Count == 1) |
| | | { |
| | | var objID = listBox1.SelectedItems[0]; |
| | | var findlist = selectionSet.net.MapObjects.FindAll(o => o.ID == objID); |
| | | if (findlist.Count <= 0) return; |
| | | IBaseViewModel mapObject = findlist[0];// selectionSet.selectedObjects.Find(obj => obj.ID == ((MapObject)listBox1.SelectedItems[0]).ID); |
| | | if (mapObject != null) SetObj(mapObject); |
| | | GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); ; |
| | | GlobalObject.map.selectedObjs.Clear(); |
| | | GlobalObject.map.selectedObjs.Add(mapObject); |
| | | mapObject.Selected = true; |
| | | GlobalObject.map.SetMapInvalidate(); |
| | | } |
| | | else |
| | | { |
| | | List<IBaseViewModel> list = new List<IBaseViewModel>(); |
| | | foreach (var o in listBox1.SelectedItems) |
| | | { |
| | | var objID = listBox1.SelectedItems[0]; |
| | | IBaseViewModel mapObject = selectionSet. net.MapObjects.FindAll(obj => obj.ID == objID)[0]; |
| | | list.Add(mapObject); |
| | | } |
| | | ShowProperties( list); |
| | | GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); ; |
| | | GlobalObject.map.selectedObjs.Clear(); |
| | | list.ForEach(o=>o.Selected=true); |
| | | GlobalObject.map.selectedObjs.AddRange(list); |
| | | GlobalObject.map.SetMapInvalidate(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | private void listBox1_DoubleClick(object sender, EventArgs e) |
| | | { |
| | | //if (listBox1.SelectedItems.Count == 1) |
| | | //{ |
| | | // //IBaseViewModel mapObject = (IBaseViewModel)listBox1.SelectedItems[0]; |
| | | // var objID = listBox1.SelectedItems[0]; |
| | | // IBaseViewModel mapObject = selectionSet.net.MapObjects.FindAll(obj => obj.ID == objID)[0]; |
| | | // GlobalObject.map.setCenter (mapObject); |
| | | if (listBox1.SelectedItems.Count == 1) |
| | | { |
| | | //IBaseViewModel mapObject = (IBaseViewModel)listBox1.SelectedItems[0]; |
| | | var objID = listBox1.SelectedItems[0]; |
| | | IBaseViewModel mapObject = selectionSet.net.MapObjects.FindAll(obj => obj.ID == objID)[0]; |
| | | GlobalObject.map.setCenter (mapObject); |
| | | |
| | | |
| | | // GlobalObject.map.SetInvalidated(); |
| | | //} |
| | | GlobalObject.map.SetMapInvalidate(); |
| | | } |
| | | } |
| | | private void PropertyForm_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | |
| | | |
| | | private void checkBox_OnlyShowSelected_CheckedChanged(object sender, EventArgs e) |
| | | { |
| | | //selectionSet.OnlyViewSelected = checkBox_OnlyShowSelected.Checked; |
| | | selectionSet.OnlyViewSelected = checkBox_OnlyShowSelected.Checked; |
| | | RefreshListBox(); |
| | | } |
| | | |
| | | private void label_lock_Click(object sender, EventArgs e) |
| | | { |
| | | var label_lock = (LabelControl)sender; |
| | | var label_lock = (Label)sender; |
| | | |
| | | GlobalObject.LockSelect=!GlobalObject.LockSelect; |
| | | if (GlobalObject.LockSelect) |
| | |
| | | } |
| | | private void label_filter_Click(object sender, EventArgs e) |
| | | { |
| | | var label_lock = (LabelControl)sender; |
| | | var label_lock = (Label)sender; |
| | | |
| | | |
| | | TagList tags = new TagList(); |
| | | foreach (var item in selectionSet.selectedObjects) |
| | | var mobjs=selectionSet.OnlyViewSelected? selectionSet.selectedObjects:selectionSet.net.MapObjects; |
| | | foreach (var item in mobjs) |
| | | { |
| | | tags.AddRange(item.Tags); |
| | | } |
| | |
| | | //Ctrl+A,则选中当前listbox中的所有项 |
| | | if (e.Control && e.KeyCode == Keys.A) |
| | | { |
| | | //for (int i = 0; i < listBox1.Items.Count; i++) |
| | | //{ |
| | | // listBox1.SetSelected(i, true); |
| | | //} |
| | | for (int i = 0; i < listBox1.Items.Count; i++) |
| | | { |
| | | listBox1.SetSelected(i, true); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | private void 全选ToolStripMenuItem_Click(object sender, EventArgs e) |
| | | { |
| | | //listBox1.SelectedIndexChanged -= listBox1_SelectedIndexChanged; |
| | | //for (int i = 0; i < listBox1.Items.Count; i++) |
| | | //{ |
| | | // listBox1.SetSelected(i, true); |
| | | //} |
| | | //listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; |
| | | //this.propertyGrid.SelectedObjects =selectionSet. CurrentSelectedObjects?.ToArray(); |
| | | //GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); |
| | | //if (selectionSet.CurrentSelectedObjects!=null) |
| | | //{ |
| | | // GlobalObject.map.selectedObjs.AddRange(selectionSet.CurrentSelectedObjects); |
| | | // selectionSet.CurrentSelectedObjects.ForEach(o => |
| | | // { |
| | | // o.Selected = true; |
| | | // }); |
| | | //} |
| | | //GlobalObject.map.Invalidate(); |
| | | listBox1.SelectedIndexChanged -= listBox1_SelectedIndexChanged; |
| | | for (int i = 0; i < listBox1.Items.Count; i++) |
| | | { |
| | | listBox1.SetSelected(i, true); |
| | | } |
| | | listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; |
| | | this.propertyGrid.SelectedObjects =selectionSet. CurrentSelectedObjects?.ToArray(); |
| | | GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false); |
| | | if (selectionSet.CurrentSelectedObjects!=null) |
| | | { |
| | | GlobalObject.map.selectedObjs.AddRange(selectionSet.CurrentSelectedObjects); |
| | | selectionSet.CurrentSelectedObjects.ForEach(o => |
| | | { |
| | | o.Selected = true; |
| | | }); |
| | | } |
| | | GlobalObject.map.SetMapInvalidate(); |
| | | |
| | | |
| | | |
| | |
| | | |
| | | private void listBox1_MouseDown(object sender, MouseEventArgs e) |
| | | { |
| | | //if (e.Button == MouseButtons.Right) |
| | | //{ |
| | | // if (listBox1.SelectedItems.Count > 0) |
| | | // { |
| | | // contextMenuStrip1.Show(listBox1, e.Location); |
| | | // } |
| | | //} |
| | | if (e.Button == MouseButtons.Right) |
| | | { |
| | | if (listBox1.SelectedItems.Count > 0) |
| | | { |
| | | contextMenuStrip1.Show(listBox1, e.Location); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |