| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using Model;
- using Permission;
- using PlcCom;
- using Sunny.UI;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Drawing.Design;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- public class MyUiButton : UISymbolButton,IPermissionControl, IActionableControl
- {
- [Category("MyControl")]
- [Description("是否需要用户二次确认")]
- public bool NeedUserEnsure { get; set; }
- [Category("MyControl")]
- [Description("二次确认时的信息提示")]
- [DefaultValue(null)]
- public string EnsureTip { get; set; }
- [Category("MyControl")]
- [Description("控件要求的权限等级")]
- [Browsable(true)]
- [DefaultValue(PermissionLevel.操作工)]
- public PermissionLevel RequiredPermissionLevel { get => requiredPermissionLevel; set { requiredPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= requiredPermissionLevel; HandlePermissionChange(); } }
- private PermissionLevel requiredPermissionLevel = PermissionLevel.操作工;
- [Category("MyControl")]
- [Description("当前登录的权限")]
- [Browsable(false)]
- [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- public PermissionLevel CurrentPermissionLevel { get => currentPermissionLevel; set { currentPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= requiredPermissionLevel; HandlePermissionChange(); } }
- private PermissionLevel currentPermissionLevel = PermissionLevel.无权限;
- [Category("MyControl")]
- [Description("控件是否获得了权限")]
- [Browsable(false)]
- [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- public bool IsPermissionGot { get; private set; }
- protected virtual void HandlePermissionChange()
- {
- this.Enabled = IsPermissionGot;
- }
- public delegate void OptionSelectHandler(object sender, DialogResult dialogResult);
- [Category("MyControl")]
- [Description("二次确认时用户选择事件")]
- [Browsable(true)]
- public event OptionSelectHandler OptionSelect;
- public MyUiButton()
- {
-
- }
- protected sealed override void OnMouseDown(MouseEventArgs e)
- {
- OnCustomMouseDown(e);
- base.OnMouseDown(e);
- }
- protected sealed override void OnMouseUp(MouseEventArgs e)
- {
- OnCustomMouseUp(e);
- base.OnMouseUp(e);
- }
- protected virtual void OnCustomMouseDown(MouseEventArgs e)
- {
- }
- protected virtual void OnCustomMouseUp(MouseEventArgs e)
- {
-
- }
- protected bool IfContinue()
- {
- if (NeedUserEnsure)
- {
- string msg;
- if (string.IsNullOrEmpty(EnsureTip))
- {
- if(string.IsNullOrEmpty(Text))
- {
- msg = $"是否操作:{Name}?";
- }
- else
- {
- msg = $"是否操作:{Text}?";
- }
-
- }
- else
- {
- msg = EnsureTip;
- }
- var dr = MessageBox.Show(msg, "操作确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
- OptionSelect?.Invoke(this, dr);
- return dr == DialogResult.Yes;
- }
- else
- {
- return true;
- }
- }
- }
|