📄 wfactivity.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Xml;
using System.Collections;
namespace WorkflowDesigner.Designer
{
/// <summary>
/// 普通节点可视化对象
/// </summary>
public class WfActivity :WfAbstractActivity
{
#region 字段
/// <summary>
/// 角色对象
/// </summary>
private WfRole _role;
/// <summary>
/// 应用程序对象
/// </summary>
private IList<WfApplication> _appList = new List<WfApplication>();
/// <summary>
/// 是否允许回退
/// </summary>
private int _isSendBack = 1;
/// <summary>
/// 是否允许岗位内提交
/// </summary>
private int _isSendSelf = 1;
/// <summary>
/// 时限(工作日)
/// </summary>
private double _workday = 0;
/// <summary>
/// 预警时间(工作日)
/// </summary>
private double _warning_time = 0;
/// <summary>
/// 选择用户类型 ISSELECTUSER 是否选择用户 0为选择用户 1为选择之前某个指定的节点用户
/// </summary>
private int _isSelectUser = 0;
/// <summary>
/// 接受前事件
/// </summary>
private String _beforeRecive_Event = "";
/// <summary>
/// 发送后事件
/// </summary>
private String _afterSend_Event = "";
/// <summary>
/// 之前节点
/// </summary>
private WfActivity _before_ActiveInfo;
/// <summary>
/// 之前节点
/// </summary>
public WfActivity Before_ActiveInfo
{
get { return _before_ActiveInfo; }
set { _before_ActiveInfo = value; }
}
/// <summary>
/// 节点参数
/// </summary>
private IList<WfParam> _paramsInfo = new List<WfParam>();
#endregion
#region 属性
/// <summary>
/// 角色对象
/// </summary>
public WfRole Role
{
get { return _role; }
set { _role = value; }
}
/// <summary>
/// 应用程序对象
/// </summary>
internal IList<WfApplication> AppList
{
get { return _appList; }
set { _appList = value; }
}
/// <summary>
/// 是否允许回退
/// </summary>
public int IsSendBack
{
get { return _isSendBack; }
set { _isSendBack = value; }
}
/// <summary>
/// 是否允许岗位内提交
/// </summary>
public int IsSendSelf
{
get { return _isSendSelf; }
set { _isSendSelf = value; }
}
/// <summary>
/// 时限(工作日)
/// </summary>
public double Workday
{
get { return _workday; }
set { _workday = value; }
}
/// <summary>
/// 预警时间(工作日)
/// </summary>
public double Warning_time
{
get { return _warning_time; }
set { _warning_time = value; }
}
/// <summary>
/// 选择用户类型 ISSELECTUSER 是否选择用户 0为选择用户 1为选择之前某个指定的节点用户
/// </summary>
public int IsSelectUser
{
get { return _isSelectUser; }
set { _isSelectUser = value; }
}
/// <summary>
/// 发送后事件
/// </summary>
public String AfterSend_Event
{
get { return _afterSend_Event; }
set { _afterSend_Event = value; }
}
/// <summary>
/// 接受前事件
/// </summary>
public String BeforeRecive_Event
{
get { return _beforeRecive_Event; }
set { _beforeRecive_Event = value; }
}
/// <summary>
/// 节点参数
/// </summary>
public IList<WfParam> ParamsInfo
{
get { return _paramsInfo; }
set { _paramsInfo = value; }
}
#endregion
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
public WfActivity(int x, int y)
: base(x, y)
{
}
#endregion
#region 操作
#region 私有
#endregion
#region 保护
/// <summary>
/// 绘制
/// </summary>
/// <param name="g">绘图图面</param>
protected override void DrawIcon(System.Drawing.Graphics g)
{
Color c;
if (IsSelected)
{
c = Color.Red;
}
else
{
//c = Color.Blue;
c = Color.White;
}
using (Pen pen = new Pen(c))
{
g.DrawRectangle(pen, _rect);
}
using (Brush brush = new SolidBrush(Color.White))
{
g.FillRectangle(brush, _rect);
}
ImageAttributes imAtt = new ImageAttributes();
//设置颜色键
imAtt.SetColorKey(Color.FromArgb(255, 0, 255), Color.FromArgb(255, 0, 255));
// 画箭头
Bitmap arrowBitmap = WorkflowDesigner.Properties.Resources.active1;
int imgWidth = arrowBitmap.Width;
int imgHeight = arrowBitmap.Height;
GraphicsState gs = g.Save();
//绘制图片
g.DrawImage(arrowBitmap, _rect,
0, 0,
imgWidth,
imgWidth,
GraphicsUnit.Pixel,
imAtt);
//释放
imAtt.Dispose();
arrowBitmap.Dispose();
//还原到原来的表示状态
g.Restore(gs);
}
/// <summary>
/// 得到节点类型
/// </summary>
/// <returns>该节点的类型</returns>
protected override string GetActivityType()
{
//类型0 开始 1 结束 2普通 3 分支 4聚合
return "2";
}
/// <summary>
/// 在创建xml元素后
/// </summary>
/// <param name="actElement">节点xml元素</param>
protected override void
AfterCreateXmlElement(XmlElement actElement)
{
//需要改动
//XmlAttribute attr = new XmlAttribute();
/*
XmlAttribute attr = actElement.OwnerDocument.CreateAttribute("flowSelect");
attr.Value = FlowSelect;
actElement.Attributes.Append(attr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -