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 Uni_Trend.MSO7000X.Language; using Uni_Trend.MSO7000X.Common.Helper; using Uni_Trend.MSO7000X.UserControls; using Uestc.Auto6.Dso.ComModel; using Uestc.Auto6.Dso.Core.Decode; namespace Uestc.Auto6.Dso.Protocol.USB { [System.ComponentModel.ToolboxItem(false)] public partial class USBTriggerSetControl : UserControl, ITriggerSerialView { #region 属性定义 protected new Boolean DesignMode { get { Boolean rtnflag = false; #if DEBUG rtnflag = DesignTimeHelper.InDesignMode(this); #endif return rtnflag; } } public USBTrigSerialPrsnt Presenter { get => (USBTrigSerialPrsnt)(ParentForm as ITriggerView).Presenter; set => (ParentForm as ITriggerView).Presenter = value; } ITriggerPrsnt IView.Presenter { get => Presenter; set => Presenter = (USBTrigSerialPrsnt)value; } private IProtocolView _DecodeView = new USBSetControl(); private USBDataPackagePage _USBDataPackagePage = new USBDataPackagePage(); private USBErrorPackagePage _USBErrorPackagePage = new USBErrorPackagePage(); private USBHandPackagePage _USBHandPackagePage = new USBHandPackagePage(); private USBTokenPackagePage _USBTokenPackagePage = new USBTokenPackagePage(); private SpecialPacketPage _SpecialPacketPage = new SpecialPacketPage(); #endregion 属性定义 public USBTriggerSetControl() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); InitView(); } private void InitView() { _USBDataPackagePage.Presenter = Presenter; this.TlpPanel.Controls.Add(_USBDataPackagePage, 0, 0); _USBErrorPackagePage.Presenter = Presenter; this.TlpPanel.Controls.Add(_USBErrorPackagePage, 0, 1); _USBHandPackagePage.Presenter = Presenter; this.TlpPanel.Controls.Add(_USBHandPackagePage, 0, 2); _USBTokenPackagePage.Presenter = Presenter; this.TlpPanel.Controls.Add(_USBTokenPackagePage, 0, 3); _SpecialPacketPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_SpecialPacketPage, 0, 4); this.TlpPanel.Controls.Cast().Where(x=> x is ITriggerSerialView).Cast().ToList().ForEach(x => { (x as Control).Dock = DockStyle.Fill; Presenter.TryAddView(x); }); UpdateCondition(); } public void UpdateView(Object presenter, String propertyName) { if (String.IsNullOrEmpty(propertyName) || propertyName == nameof(ARINC429TrigSerialPrsnt.Condition)) { UpdateCondition(); } } private void UpdateCondition() { this.TlpPanel.Controls.Cast().ToList().ForEach(x => x.Visible = false); switch (Presenter.Condition) { case ProtocolUSB.Condition.DataPackage: _USBDataPackagePage.Visible = true; break; case ProtocolUSB.Condition.Error: _USBErrorPackagePage.Visible = true; break; case ProtocolUSB.Condition.HandshakePackage: _USBHandPackagePage.Visible = true; break; case ProtocolUSB.Condition.TokenPackage: _USBTokenPackagePage.Visible = true; break; case ProtocolUSB.Condition.Special: _SpecialPacketPage.Visible = true; break; } Height = this.TlpPanel.PreferredSize.Height; } } }