| | |
| | | BackColor = Color.Transparent; |
| | | |
| | | } |
| | | public void SetEditMode(bool isEditMode) |
| | | { |
| | | _IsEditMode= isEditMode; |
| | | } |
| | | private void MapViewer_Load(object sender, EventArgs e) |
| | | { |
| | | this.panel1.Visible = _showToolBar; |
| | |
| | | } |
| | | |
| | | //移动 |
| | | if (selectedObjs.Count >= 1) //&& selectedObjs[0].isNode()) |
| | | if (_IsEditMode && selectedObjs.Count >= 1) //&& selectedObjs[0].isNode()) |
| | | { |
| | | List<NodeViewModel> nodes = selectedNodes; |
| | | foreach (NodeViewModel node in nodes) |
| | |
| | | if (!isMouseMoved) |
| | | { |
| | | 右键_Menu.Show(this, e.Location); |
| | | 转换为ToolStripMenuItem.Enabled = selectedNodes.Count > 0; //(selectedObjs.Count == 1); |
| | | |
| | | 转换为ToolStripMenuItem.Enabled = selectedNodes.Count > 0; //(selectedObjs.Count == 1); |
| | | 删除ToolStripMenuItem.Enabled = selectedObjs.Count > 0; |
| | | 删除ToolStripMenuItem1.Enabled = selectedObjs.Count > 0; |
| | | |
| | | } |
| | | |
| | | if (recordView) MapObjectExtensions.AddCommand(mapOption, "Map", mapOption0, mapOption); |
| | |
| | | { |
| | | _mouseState = MouseState.无; |
| | | Cursor = Cursors.Default; |
| | | if (_isPainting) |
| | | { |
| | | _select_junction1 = null; |
| | | _isPainting = false; |
| | | SetMapInvalidate(); |
| | | } |
| | | else if (_isDragging) |
| | | { |
| | | _isDragging = false; |
| | | SetMapInvalidate(); |
| | | } |
| | | else if (_isPanning) |
| | | { |
| | | _isPanning = false; |
| | | SetMapInvalidate(); |
| | | } |
| | | else if (_isRotating) |
| | | { |
| | | Rotation = Rotation0; |
| | | _isRotating = false; |
| | | SetMapInvalidate(); |
| | | } |
| | | else if (_isMovingObject) |
| | | { |
| | | _NewNet.Clear(); |
| | | _isMovingObject = false; |
| | | SetMapInvalidate(); |
| | | } |
| | | else if (_mouseState != MouseState.无) |
| | | { |
| | | _mouseState = MouseState.无; |
| | | Cursor = Cursors.Default; |
| | | } |
| | | else if (_isInsertingObject) |
| | | { |
| | | _NewNet.Clear(); |
| | | _isInsertingObject = false; |
| | | _OperaNode = null; |
| | | SetMapInvalidate(); |
| | | } |
| | | else |
| | | { |
| | | _Nodes.ForEach(o => ((NodeViewModel)o).Selected = false); |
| | | _Links.ForEach(o => ((LinkViewModel)o).Selected = false); |
| | | selectedObjs.Clear(); |
| | | SetMapInvalidate(); |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | public void toolStripButton_新建管线_Click(object sender, EventArgs e) |
| | |
| | | |
| | | |
| | | } |
| | | if (e.KeyCode == Keys.Delete) |
| | | if (_IsEditMode && e.KeyCode == Keys.Delete) |
| | | { |
| | | DeleteChoosedObj(); |
| | | } |
| | |
| | | SetMapInvalidate(); |
| | | } |
| | | |
| | | if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.C && e.Modifiers == Keys.Control) |
| | | { |
| | | 复制ToolStripMenuItem_Click(1, new EventArgs()); |
| | | } |
| | | if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.V && e.Modifiers == Keys.Control) |
| | | { |
| | | _ClickStartPos = Cursor.Position; |
| | | 粘贴ToolStripMenuItem1_Click(1, new EventArgs()); |
| | | } |
| | | if (e.KeyCode == Keys.D1 && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.D1 && e.Modifiers == Keys.Control) |
| | | { |
| | | 南北对齐ToolStripMenuItem_Click(1, new EventArgs()); |
| | | |
| | | } |
| | | if (e.KeyCode == Keys.Oemtilde && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.Oemtilde && e.Modifiers == Keys.Control) |
| | | { |
| | | 东西对齐ToolStripMenuItem_Click(1, new EventArgs()); |
| | | } |
| | | if (e.KeyCode == Keys.D2 && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.D2 && e.Modifiers == Keys.Control) |
| | | { |
| | | 竖直对齐ToolStripMenuItem_Click(1, new EventArgs()); |
| | | } |
| | | if (e.KeyCode == Keys.D3 && e.Modifiers == Keys.Control) |
| | | if (_IsEditMode && e.KeyCode == Keys.D3 && e.Modifiers == Keys.Control) |
| | | { |
| | | 自动对齐ToolStripMenuItem_Click(1, new EventArgs()); |
| | | } |
| | |
| | | |
| | | private void MapViewer_KeyPress(object sender, KeyPressEventArgs e) |
| | | { |
| | | if (ctrlPressed && e.KeyChar == 'Z' - 64) |
| | | if (_IsEditMode && ctrlPressed && e.KeyChar == 'Z' - 64) |
| | | { |
| | | // 执行相应的操作 |
| | | buttonUndo_Click(sender, e); |
| | |
| | | // 防止默认操作 |
| | | e.Handled = true; |
| | | } |
| | | if (ctrlPressed && e.KeyChar == 'Y' - 64) |
| | | if (_IsEditMode && ctrlPressed && e.KeyChar == 'Y' - 64) |
| | | { |
| | | // 执行相应的操作 |
| | | buttonRedo_Click(sender, e); |
| | |
| | | } |
| | | private void MapViewer_PreKeyPress(object sender, PreviewKeyDownEventArgs e) |
| | | { |
| | | if (e.Control && e.KeyCode == Keys.Z) |
| | | if (_IsEditMode && e.Control && e.KeyCode == Keys.Z) |
| | | { |
| | | ctrlPressed = true; |
| | | // 防止默认操作 |
| | | e.IsInputKey = true; |
| | | |
| | | } |
| | | if (e.Control && e.KeyCode == Keys.Y) |
| | | if (_IsEditMode && e.Control && e.KeyCode == Keys.Y) |
| | | { |
| | | ctrlPressed = true; |
| | | // 防止默认操作 |
| | |
| | | { |
| | | _IsEditMode = !_IsEditMode; |
| | | //toolStripComboBox_浏览模式.Text = isEditMode ? "编辑模式" : "浏览模式"; |
| | | LoadData(true); |
| | | //LoadData(true); |
| | | } |
| | | |
| | | private void 浏览模式ToolStripMenuItem_Click(object sender, EventArgs e) |
| | |
| | | var obj = sender as ToolStripItem; |
| | | _IsEditMode = obj.Text == "编辑模式"; |
| | | //toolStripComboBox_浏览模式.Text = isEditMode ? "编辑模式" : "浏览模式"; |
| | | LoadData(true); |
| | | //LoadData(true); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | if (net.StartPoint == null) return; |
| | | string SID = net.StartPoint.ID; |
| | | net.StartPoint=net.Nodes.Find(n => n.ID == SID); |
| | | PointF minPoint = new PointF(net.StartPoint.X, net.StartPoint.Y); |
| | | PointF3D minPoint = net.StartPoint.Position3D;// new PointF(net.StartPoint.X, net.StartPoint.Y); |
| | | Point controlLocation = this.PointToScreen(new Point(0, 0)); |
| | | int offsetX = Cursor.Position.X - controlLocation.X; |
| | | int offsetY = Cursor.Position.Y - controlLocation.Y; |
| | |
| | | if (hoveredObjs.Count>0 && hoveredObjs[0] is NodeViewModel minNode) |
| | | { |
| | | |
| | | var basePoint = minNode.Position; |
| | | var basePoint = minNode.Position3D; |
| | | net.Nodes.ForEach(obj => |
| | | { |
| | | obj.X = obj.X + basePoint.X - minPoint.X; |
| | | obj.Y = obj.Y + basePoint.Y - minPoint.Y; |
| | | obj.Elev = obj.Elev + basePoint.Z - minPoint.Z; |
| | | }); |
| | | |
| | | selectedObjs.ForEach(o => o.Selected = false); |
| | |
| | | selectedObjs.AddRange(net.Nodes.Select(n => (NodeViewModel)n)); |
| | | selectedObjs.AddRange(net.Links.ViewLinks); |
| | | var list = _Network.Add(net,null,false,minNode); |
| | | |
| | | net.BuildRelation(); |
| | | //list.Add(_Network.AddPipe(Snode, minNode)); |
| | | MapObjectExtensions.AddCommand(_Network, "Add", null, list); |
| | | SetMapInvalidate(); |
| | |
| | | selectedObjs.AddRange(net.Nodes.Select(n => (NodeViewModel)n)); |
| | | selectedObjs.AddRange(net.Links.ViewLinks); |
| | | var list = _Network.Add(net); |
| | | net.BuildRelation(); |
| | | MapObjectExtensions.AddCommand(_Network, "Add", null, list); |
| | | SetMapInvalidate(); |
| | | } |