From 78584911d0457ad9fc26d9dfc6f374b7ef531c0f Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期日, 22 十一月 2020 13:45:09 +0800 Subject: [PATCH] 1. 添加操作员输入和界面显示 2. 添加通过输入窗体 3. 添加webservice调用帮助类 4. M071添加MES数据检查和数据上传功能,添加相关界面显示和流程控制 --- src/Bro.UI.Model.Winform/ElementBase.cs | 317 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 275 insertions(+), 42 deletions(-) diff --git a/src/Bro.UI.Model.Winform/ElementBase.cs b/src/Bro.UI.Model.Winform/ElementBase.cs index eb02a2f..669a378 100644 --- a/src/Bro.UI.Model.Winform/ElementBase.cs +++ b/src/Bro.UI.Model.Winform/ElementBase.cs @@ -190,9 +190,8 @@ if (state != value) { ElementState preState = state; - state = value; - EventRouter.ChangeElementsMouseState?.Invoke(this, preState, state); - + Set(ref state, value); + EventRouter.TriggerElementsMouseStateChanged(this, preState, state); switch (state) { case ElementState.MouseHover: @@ -243,16 +242,20 @@ if (State == ElementState.MeasureDoneNG || State == ElementState.MeasureDoneOK) return; - if (State == ElementState.MouseInSide) + //if (State == ElementState.MouseInSide) + //{ + // State = ElementState.Selected; + //} + //else if (State == ElementState.Selected || State == ElementState.Moving) + //{ + // if (IsMouseInSide(p)) + // { + // State = ElementState.MouseInSide; + // } + //} + if (IsMouseInSide(p)) { State = ElementState.Selected; - } - else if (State == ElementState.Selected || State == ElementState.Moving) - { - if (IsMouseInSide(p)) - { - State = ElementState.MouseInSide; - } } } @@ -262,22 +265,59 @@ public virtual void OnMouseDown(Point p) { - switch (State) + //switch (State) + //{ + // case ElementState.New: + // OnMouseDownWhenNew(p); + // break; + // case ElementState.MouseHover: + // break; + // case ElementState.MouseInSide: + // State = ElementState.Selected; + // break; + // case ElementState.Selected: + // _startPoint = p; + // State = ElementState.Moving; + // break; + // case ElementState.Normal: + // break; + //} + + if (IsMouseCanMoveElement(p) && State == ElementState.Selected) { - case ElementState.New: - OnMouseDownWhenNew(p); - break; - case ElementState.MouseHover: - break; - case ElementState.MouseInSide: - State = ElementState.Selected; - break; - case ElementState.Selected: - _startPoint = p; - State = ElementState.Moving; - break; - case ElementState.Normal: - break; + State = ElementState.Moving; + } + else if (IsMouseCanStretchBottom(p) && State == ElementState.CanStretchBottom) + { + State = ElementState.StretchingBottom; + } + else if (IsMouseCanStretchTop(p) && State == ElementState.CanStretchTop) + { + State = ElementState.StretchingTop; + } + else if (IsMouseCanStretchLeft(p) && State == ElementState.CanStretchLeft) + { + State = ElementState.StretchingLeft; + } + else if (IsMouseCanStretchRight(p) && State == ElementState.CanStretchRight) + { + State = ElementState.StretchingRight; + } + else if (IsMouseCanStretchLeftLowerCorner(p) && State == ElementState.CanStretchLeftLowerCorner) + { + State = ElementState.StretchingLeftLowerCorner; + } + else if (IsMouseCanStretchLeftUpperCorner(p) && State == ElementState.CanStretchLeftUpperCorner) + { + State = ElementState.StretchingLeftUpperCorner; + } + else if (IsMouseCanStretchRightLowerCorner(p) && State == ElementState.CanStretchRightLowerCorner) + { + State = ElementState.StretchingRightLowerCorner; + } + else if (IsMouseCanStretchRightUpperCorner(p) && State == ElementState.CanStretchRightUpperCorner) + { + State = ElementState.StretchingRightUpperCorner; } } @@ -289,27 +329,133 @@ OnMouseMoveWhenNew(p); break; case ElementState.Selected: + if (IsMouseCanStretchLeft(p)) + { + State = ElementState.CanStretchLeft; + } + else if (IsMouseCanStretchRight(p)) + { + State = ElementState.CanStretchRight; + } + else if (IsMouseCanStretchTop(p)) + { + State = ElementState.CanStretchTop; + } + else if (IsMouseCanStretchBottom(p)) + { + State = ElementState.CanStretchBottom; + } + else if (IsMouseCanStretchLeftLowerCorner(p)) + { + State = ElementState.CanStretchLeftLowerCorner; + } + else if (IsMouseCanStretchLeftUpperCorner(p)) + { + State = ElementState.CanStretchLeftUpperCorner; + } + else if (IsMouseCanStretchRightLowerCorner(p)) + { + State = ElementState.CanStretchRightLowerCorner; + } + else if (IsMouseCanStretchRightUpperCorner(p)) + { + State = ElementState.CanStretchRightUpperCorner; + } + break; case ElementState.Moving: _currentPoint = p; - Translate(_currentPoint.X - _startPoint.X, _currentPoint.Y - _startPoint.Y); - _startPoint = _currentPoint; + //Translate(_currentPoint.X - _startPoint.X, _currentPoint.Y - _startPoint.Y); + //_startPoint = _currentPoint; + Relocate(p); break; case ElementState.MouseHover: case ElementState.MouseInSide: case ElementState.Normal: - if (IsMouseInSide(p)) + //if (IsMouseInSide(p)) + //{ + // State = ElementState.MouseInSide; + //} + //else if (IsMouseHover(p)) + //{ + // State = ElementState.MouseHover; + //} + //else + //{ + // State = ElementState.Normal; + //} + break; + case ElementState.CanStretchBottom: + if (!IsMouseCanStretchBottom(p)) { - State = ElementState.MouseInSide; + State = ElementState.Selected; } - else if (IsMouseHover(p)) + break; + case ElementState.CanStretchTop: + if (!IsMouseCanStretchTop(p)) { - State = ElementState.MouseHover; + State = ElementState.Selected; } - else + break; + case ElementState.CanStretchLeft: + if (!IsMouseCanStretchLeft(p)) { - State = ElementState.Normal; + State = ElementState.Selected; } + break; + case ElementState.CanStretchRight: + if (!IsMouseCanStretchRight(p)) + { + State = ElementState.Selected; + } + break; + case ElementState.CanStretchLeftUpperCorner: + if (!IsMouseCanStretchLeftUpperCorner(p)) + { + State = ElementState.Selected; + } + break; + case ElementState.CanStretchLeftLowerCorner: + if (!IsMouseCanStretchLeftLowerCorner(p)) + { + State = ElementState.Selected; + } + break; + case ElementState.CanStretchRightLowerCorner: + if (!IsMouseCanStretchRightLowerCorner(p)) + { + State = ElementState.Selected; + } + break; + case ElementState.CanStretchRightUpperCorner: + if (!IsMouseCanStretchRightUpperCorner(p)) + { + State = ElementState.Selected; + } + break; + case ElementState.StretchingTop: + StretchTop(p); + break; + case ElementState.StretchingBottom: + StretchBottom(p); + break; + case ElementState.StretchingLeft: + StretchLeft(p); + break; + case ElementState.StretchingRight: + StretchRight(p); + break; + case ElementState.StretchingLeftLowerCorner: + StretchLeftLowerCorner(p); + break; + case ElementState.StretchingLeftUpperCorner: + StretchLeftUpperCorner(p); + break; + case ElementState.StretchingRightLowerCorner: + StretchRightLowerCorner(p); + break; + case ElementState.StretchingRightUpperCorner: + StretchRightUpperCorner(p); break; } } @@ -319,15 +465,48 @@ switch (State) { case ElementState.Moving: - //Calculate(null); State = ElementState.Selected; break; case ElementState.Selected: - //Calculate(null); + if (!IsMouseInSide(p)) + { + State = ElementState.Normal; + } + break; + case ElementState.StretchingBottom: + State = ElementState.CanStretchBottom; + break; + case ElementState.StretchingLeft: + State = ElementState.CanStretchLeft; + break; + case ElementState.StretchingRight: + State = ElementState.CanStretchRight; + break; + case ElementState.StretchingTop: + State = ElementState.CanStretchTop; + break; + case ElementState.StretchingLeftLowerCorner: + State = ElementState.CanStretchLeftLowerCorner; + break; + case ElementState.StretchingLeftUpperCorner: + State = ElementState.CanStretchLeftUpperCorner; + break; + case ElementState.StretchingRightUpperCorner: + State = ElementState.CanStretchRightUpperCorner; + break; + case ElementState.StretchingRightLowerCorner: + State = ElementState.CanStretchRightLowerCorner; break; default: + State = ElementState.Normal; break; } + + AfterTranformOp(); + } + + public virtual void AfterTranformOp() + { } #region 褰撳熀鍏冪姸鎬佷负鏂板缓鎴栧彲缂栬緫鏃剁殑榧犳爣鎿嶄綔鍔ㄤ綔 @@ -366,32 +545,84 @@ public abstract bool IsIntersect(Rectangle rect); #region Move & Stretch & Move Anchor - public virtual bool IsMouseCanMoveElement() + public virtual bool IsMouseCanMoveElement(Point p) { return false; } - public virtual bool IsMouseCanStretchLeft() + public virtual bool IsMouseCanStretchLeft(Point p) { return false; } - public virtual bool IsMouseCanStretchRight() + public virtual bool IsMouseCanStretchRight(Point p) { return false; } - public virtual bool IsMouseCanStretchTop() + public virtual bool IsMouseCanStretchTop(Point p) { return false; } - public virtual bool IsMouseCanStretchBottom() + public virtual bool IsMouseCanStretchBottom(Point p) { return false; } - public virtual bool IsMouseCanMoveAnchor() + public virtual void StretchLeft(Point p) + { + } + + public virtual void StretchRight(Point p) + { + } + + public virtual void StretchTop(Point p) + { + } + + public virtual void StretchBottom(Point p) + { + } + + public virtual bool IsMouseCanStretchLeftUpperCorner(Point p) + { + return false; + } + + public virtual bool IsMouseCanStretchRightUpperCorner(Point p) + { + return false; + } + + public virtual bool IsMouseCanStretchLeftLowerCorner(Point p) + { + return false; + } + + public virtual bool IsMouseCanStretchRightLowerCorner(Point p) + { + return false; + } + + public virtual void StretchLeftUpperCorner(Point p) + { + } + + public virtual void StretchRightUpperCorner(Point p) + { + } + + public virtual void StretchLeftLowerCorner(Point p) + { + } + + public virtual void StretchRightLowerCorner(Point p) + { + } + + public virtual bool IsMouseCanMoveAnchor(Point p) { return false; } @@ -402,6 +633,8 @@ #region 鍙樺舰鎿嶄綔 public abstract void Translate(int x, int y); + public virtual void Relocate(Point point) { } + //public abstract void RotateAt(int x, int y, float degree); #endregion -- Gitblit v1.8.0