private bool IsReadOnly() { if (!this.CanEdit) { MessageBoxHelper.ShowInformationMsg("只读状态不允许修改!"); this._dragger = null; } return(CanEdit); }
protected void MouseDownInAComponent(Point thePoint) { SelectedLine.Clear(); BaseComponent c = SelectedComponentContaining(thePoint); if (c == null) { return; } _myBounds = new Bounds(); _myBounds.AddList(SelectedItems); _dragger = new Dragger(this, SelectedItems, thePoint, _myBounds); }
/// <summary> /// 鼠标键抬起时执行该函数. /// 由于连线可以拖动来画,所以鼠标抬起时表示可以画一条连线. /// 由于连线的折点可以改变位置,所以鼠标抬起时也可能是折点位置修改好了。 /// 切换工具的工作模式, 然后判断橡皮圈是否圈选了某些节点,如果是,就把它们添加到SelectedItems中。 /// </summary> /// <param name="e"></param> private void WorkPlace_MouseUp(object sender, MouseEventArgs e) { if (ToolModel == true) //工具模式下 { if (this.Module == 0 && _isDrawingLine == true) //画线,终止点 { Point point = new Point(e.X - this.AutoScrollPosition.X, e.Y - this.AutoScrollPosition.Y); foreach (BaseComponent c in TaskItems) { if (c.Contains(point)) { _endTask = c; if (_endTask != _startTask) { var l = new Link(_startTask, _endTask) { flowGuid = this.WorkFlowId }; LineItems.Add(l); IsModify = true; //添加Undo操作用的 // his.OperationLineItem.Add(l); } this._isDrawingLine = false; break; } else { _endTask = null; this._isDrawingLine = false; } } this.Invalidate(); } ToolModel = LockModel; //是否锁定,画多个任务节点 } Point p = new Point(e.X - this.AutoScrollPosition.X, e.Y - this.AutoScrollPosition.Y); //折线 if (this.SelectedLine.Count > 0 && this.CanEdit) { if (this.SelectedLine.Count > 0) { //oldBreakPoint.Add(link.breakPoint); if (this._isZhexian) { _link.breakPointX[_breakIndex] = p.X; _link.breakPointY[_breakIndex] = p.Y; this._breakIndex = -1; this._isZhexian = false; IsModify = true; } //this.OperationLineItem.Add(link); //this.OperationType.Add(UndoType.Zhexian); this.Invalidate(); } } //拖拽 if (_dragger != null) { if (this.CanEdit && !_dragger.location.Equals(p)) { _dragger.DragTo(p); _dragger.End(); IsModify = true; } _dragger = null; return; } //橡皮圈选择区域时的鼠标释放 if (_rubberband != null) { Rectangle rect = _rubberband.Bounds(); _rubberband.End(); _rubberband = null; foreach (BaseComponent c in TaskItems) { if (rect.Contains(c.bounds)) { SelectedItems.Add(c); } } this.Invalidate(); } }
private void SetTaskState(string buttonText) { switch (buttonText) { case "-1": WpClient.Module = -1; break; case "0": WpClient.Module = 0; break; case "1": WpClient.Module = 1; break; case "2": WpClient.Module = 2; break; case "3": WpClient.Module = 3; break; case "4": WpClient.Module = 4; break; case "5": WpClient.Module = 5; break; case "6": WpClient.Module = 6; break; case "left": var dragger = new Dragger(WpClient, WpClient.SelectedItems); dragger.Align(2); dragger = null; WpClient.Module = -2; break; case "right": var dragger2 = new Dragger(WpClient, WpClient.SelectedItems); dragger2.Align(3); WpClient.Module = -2; break; case "top": var dragger3 = new Dragger(WpClient, WpClient.SelectedItems); dragger3.Align(1); WpClient.Module = -2; break; case "bottom": var dragger4 = new Dragger(WpClient, WpClient.SelectedItems); dragger4.Align(4); WpClient.Module = -2; break; case "exit": this.Close(); break; case "save": WpClient.SaveWorkFlow(); WpClient.Module = -2; break; } }