using DataEntity.Share;
using HxEnum;
using System;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using XCommon;
using XCommon.Log;
using XCommon.Xml;
using XCore;
using XHandler.Controls;
using XHandler.Controls.Run.Com;
using XHandler.View.Com;
using XImagingXhandler.XDAL;
namespace XHandler.View.MethodProperty
{
///
/// 字方法工作流页面
///
public partial class SubMethodWorkflow : Window
{
#region 变量
///
/// 方法数据
///
private MethodSubMethod m_methodData = null;
///
/// 工作流数据
///
private MethodEx m_rootMethod = new MethodEx();
#endregion
#region 构造函数
///
/// 构造函数
///
public SubMethodWorkflow(MethodSubMethod methodData)
{
InitializeComponent();
m_methodData = methodData;
this.Owner = (Window)Shared.Main;
}
#endregion
#region 初始化
///
/// 初始化
///
///
///
private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
Mouse.OverrideCursor = Cursors.Wait;
tboxTitle.Text = this.Title = $"{m_methodData.strIndex}-{m_methodData.name}: {m_methodData.filePath}";
tboxTitle.ToolTip = tboxTitle.Text;
MethodEx mEx = ComUtility.FindMethodExByKeyId(Shared.AllNodeMethod, m_methodData.keyId);
if (mEx == null || mEx.SubMethod == null)
{
// 初始化工作流
ViewCom.InitWorkFlow(m_rootMethod);
XmlHelper xmlHelper = new XmlHelper();
xmlHelper.xmlDoc.Load(m_methodData.filePath);
// 解析xml往Tree上绑定命令集
ControlCom.BindWorkFlowIntoTree(xmlHelper.xmlDoc, m_rootMethod, runTreeviewWorkflow, null, true, true);
}
else
{
m_rootMethod = mEx.SubMethod;
runTreeviewWorkflow.ItemsSource = m_rootMethod.Children;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
finally
{
Mouse.OverrideCursor = null;
}
}
#endregion
#region runTreeviewWorkflow鼠标右键点击事件
///
/// 鼠标右键点击
///
///
///
private void runTreeviewWorkflow_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
DependencyObject source = e.OriginalSource as DependencyObject;
while (source != null && source.GetType() != typeof(TreeViewItem))
source = VisualTreeHelper.GetParent(source);
if (source != null)
{
TreeViewItem item = source as TreeViewItem;
item.IsSelected = true;
MethodEx mEx = item.DataContext as MethodEx;
ContextMenu menu = FindResource("workflowMenu") as ContextMenu;
MethodListBll methodListBll = new MethodListBll();
int iNum = methodListBll.getNumByMethodName(mEx.method_name);
MenuItem menuItem = menu.Items[0] as MenuItem;
//menuItem.IsEnabled = mEx.method_id.Equals(EnumManagement.GetEnumValue(MethodNameEnum.subMethod).ToString()) ? true : false;
menuItem.IsEnabled = (iNum == (int)MethodNameEnum.subMethod) ? true : false;
}
}
#endregion
#region 子方法节点右击运行状态
private void workflowMenuRunStatus_Click(object sender, RoutedEventArgs e)
{
// 打开子方法流程状态页面
ViewCom.OpenSubMethodWorkflow(runTreeviewWorkflow);
}
#endregion
#region 关闭页面
///
/// 关闭页面
///
///
///
private void btnClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
#endregion
#region 拖动窗体
///
/// 拖动窗体
///
///
///
private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
this.DragMove();
}
}
#endregion
}
}