using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MeasureData;
using FileManager;
using System.Xml;
namespace HOZProject
{
public partial class UControl_ParaInfo : UserControl
{
///
/// 开始时间
///
private string startTime;
///
/// 结束时间
///
private string endTime;
///
/// 状态
///
private string state;
///
/// 位置
///
private SemPosition position;
private bool isSwitch;
private string cutHoleName;
private FormHOZMain formHOZMain;
private TimeLineItem[] tlItem = null;
private UCTimeLine uCTimeLine=null;
private int flowCode = 1;
public FormHOZMain FormHOZMainObject { get => formHOZMain; set => formHOZMain = value; }
public string StartTime { get => startTime; set => startTime = value; }
public string EndTime { get => endTime; set => endTime = value; }
public string State { get => state; set => state = value; }
public SemPosition Position { get => position; set => position = value; }
public string CutHoleName { get => cutHoleName; set => cutHoleName = value; }
public bool IsSwitch { get => isSwitch; set => isSwitch = value; }
public TimeLineItem[] TlItem { get => tlItem; set => tlItem = value; }
public UControl_ParaInfo(FormHOZMain formHOZ)
{
InitializeComponent();
FormHOZMainObject = formHOZ;
ShowMeasureFlow("1");
}
private void btnClose_Click(object sender, EventArgs e)
{
foreach (Control item in FormHOZMainObject.plFill.Controls)
{
if (item is Panel)
{
foreach (Control itemControl in item.Controls)
{
if (itemControl.Name == this.Name)
{
item.Controls.Remove(this);
this.Dispose();
item.Visible = false;
break;
}
}
}
}
}
public void ShowUCTimeLine(TimeLineItem[] tlItem)
{
if (plTimeLine.Controls.Count == 0)
{
uCTimeLine = new UCTimeLine(tlItem);
uCTimeLine.Dock = DockStyle.Fill;
plTimeLine.Controls.Add(uCTimeLine);
}
}
public void TimeLineInvalidate()
{
plTimeLine.Invalidate();
uCTimeLine.Invalidate();
}
///
/// 显示切孔参数信息
///
public void ShowParaInfo()
{
int multiple = 1000;
//设置Position参数
lblX.Text = (Position.X * multiple).ToString("f3");
lblY.Text = (Position.Y * multiple).ToString("f3");
lblZ.Text = (Position.Z * multiple).ToString("f3");
lblR.Text = Position.R.ToString();
lblT.Text = Position.T.ToString();
lblM.Text = Position.M.ToString();
lblShowStartTime.Text = StartTime;
lblShowEndTime.Text = EndTime;
lblShowState.Text = State;
lblCutHoleName.Text = CutHoleName;
CkIsSwitch.Checked = IsSwitch;
}
///
/// 绑定流程信息
///
///
private void ShowMeasureFlow(string flowCode)
{
if (TlItem == null)
{
TlItem = GetMeasureFlowStructInfo(flowCode);
}
if (TlItem != null)
{
ShowUCTimeLine(TlItem);
}
}
private TimeLineItem[] GetMeasureFlowStructInfo(string MeasureCode)
{
string xmlfullname = Application.StartupPath+ @"\MeasureXML\MeasureStructXml.xml";
XmlNodeList nodeList = XmlManager.GetXmlMeasureFlowNodeInfo(xmlfullname, MeasureCode);
if (nodeList != null)
{
return XmlConvertTimeListItem(nodeList);
}
return null;
}
private TimeLineItem[] XmlConvertTimeListItem(XmlNodeList nodeList)
{
TimeLineItem[] timeLineItem = new TimeLineItem[nodeList.Count];
for (int i = 0; i < nodeList.Count; i++)
{
TimeLineItem tlItem = new TimeLineItem();
tlItem.Details = nodeList[i].Attributes["Details"].Value;
tlItem.Code = nodeList[i].Attributes["Code"].Value;
tlItem.State = 0;
tlItem.Title = nodeList[i].Attributes["Title"].Value;
tlItem.IsData = Convert.ToBoolean(nodeList[i].Attributes["IsData"].Value);
timeLineItem[i] = tlItem;
}
return timeLineItem;
}
}
}