using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Uestc.Auto6.Dso.Core; using Uestc.Auto6.Dso.Core.Decode; using Uni_Trend.MSO7000X.Common.Helper; namespace Uestc.Auto6.Dso.Protocol.Ethernet { public partial class EthernetTriggerSetPage : UserControl,ITriggerSerialView { #region 属性定义 protected new Boolean DesignMode { get { Boolean rtnflag = false; #if DEBUG rtnflag = DesignTimeHelper.InDesignMode(this); #endif return rtnflag; } } public EthernetTrigSerialPrsnt Presenter { get => (EthernetTrigSerialPrsnt)(ParentForm as ITriggerView).Presenter; set => (ParentForm as ITriggerView).Presenter = value; } ITriggerPrsnt IView.Presenter { get => Presenter; set => Presenter = (EthernetTrigSerialPrsnt)value; } #endregion 属性定义 #region 字段定义 private TrigDataPage _DataPage; private TrigMACPage _MacPage; private EthernetSetPage _SetPage; #endregion 字段定义 public EthernetTriggerSetPage() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); _DataPage = new TrigDataPage(); _DataPage.Visible = false; _DataPage.Presenter = Presenter; _DataPage.Presenter.TryAddView(_DataPage); _DataPage.Top = 0; _DataPage.Left = 0; this.TlpPanel.Controls.Add(_DataPage,0,1); _MacPage = new TrigMACPage(); _MacPage.Visible = false; _MacPage.Presenter = Presenter; _MacPage.Presenter.TryAddView(_MacPage); _MacPage.Top = 0; _MacPage.Left = 0; this.TlpPanel.Controls.Add(_MacPage, 0, 2); _SetPage = new EthernetSetPage(); _SetPage.Presenter = ProtocolPrsnt.GetTrigSerialDecodePrsnt(ComModel.SerialProtocolType.Ethernet, _SetPage); _SetPage.Presenter.TryAddView(_SetPage); _SetPage.Top = 0; _SetPage.Left = 0; this.TlpPanel.Controls.Add(_SetPage, 0, 3); UpdateTriggerOn(); } public void UpdateView(Object presenter, String propertyName) { if(String.IsNullOrEmpty(propertyName)) { UpdateTriggerOn(); return; } switch (propertyName) { case nameof(FlexRayTrigSerialPrsnt.Condition): UpdateTriggerOn(); break; } } private void UpdateTriggerOn() { TlpPanel.Controls.Cast().ToList().ForEach(x => x.Visible = false); switch(Presenter.Condition) { case ComModel.ProtocolEthernet.Condition.MACAddress: _DataPage.Visible = false; _MacPage.Visible = true; break; case ComModel.ProtocolEthernet.Condition.FrameHead: default: _DataPage.Visible = false; _MacPage.Visible = false; break; case ComModel.ProtocolEthernet.Condition.ClientData: _DataPage.Visible = true; _MacPage.Visible = false; break; } this.Height = TlpPanel.PreferredSize.Height; } } }