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.FlexRay { [System.ComponentModel.ToolboxItem(false)] public partial class FlexRayTriggerSetControl : UserControl, ITriggerSerialView { #region 属性定义 protected new Boolean DesignMode { get { Boolean rtnflag = false; #if DEBUG rtnflag = DesignTimeHelper.InDesignMode(this); #endif return rtnflag; } } public FlexRayTrigSerialPrsnt Presenter { get => (FlexRayTrigSerialPrsnt)(ParentForm as ITriggerView).Presenter; set => (ParentForm as ITriggerView).Presenter = value; } ITriggerPrsnt IView.Presenter { get => Presenter; set => Presenter = (FlexRayTrigSerialPrsnt)value; } private FlexRayCycleDataPage _CycleDataPage = new FlexRayCycleDataPage(); private FlexRayIDPage _IDPage = new FlexRayIDPage(); private FlexRayDataPage _DataPage = new FlexRayDataPage(); private FlexRayIndicatorPage _IndicatorPage = new FlexRayIndicatorPage(); private FlexRayErrorPage _ErrorPage = new FlexRayErrorPage(); private FlexRayFrameTailPage _FrameTailPage = new FlexRayFrameTailPage(); #endregion 属性定义 public FlexRayTriggerSetControl() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); InitView(); Init(); } private void Init() { } private void InitView() { _DataPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_DataPage, 0, 1); _IDPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_IDPage, 0, 2); _IndicatorPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_IndicatorPage, 0, 3); _CycleDataPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_CycleDataPage, 0, 4); _ErrorPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_ErrorPage, 0, 5); _FrameTailPage.Presenter = Presenter; this.TlpPanel.Controls.Add(_FrameTailPage, 0, 6); this.TlpPanel.Controls.Cast().ToList().ForEach(x => { x.Dock = DockStyle.Fill; }); Presenter.TryAddView(_DataPage); Presenter.TryAddView(_IDPage); Presenter.TryAddView(_IndicatorPage); Presenter.TryAddView(_CycleDataPage); Presenter.TryAddView(_ErrorPage); Presenter.TryAddView(_FrameTailPage); UpdateCondition(); } public void UpdateView(Object presenter, String propertyName) { switch (propertyName) { case nameof(FlexRayTrigSerialPrsnt.Condition): UpdateCondition(); break; } } [UpdateProperty(nameof(FlexRayTrigSerialPrsnt.Condition))] private void UpdateCondition() { TlpPanel.Controls.Cast().ToList().ForEach(x => x.Visible = false); switch (Presenter.Condition) { case ProtocolFlexRay.Condition.Circulate: _CycleDataPage.Visible = true; break; case ProtocolFlexRay.Condition.ID: _IDPage.Visible = true; break; case ProtocolFlexRay.Condition.Data: _DataPage.Visible = true; break; case ProtocolFlexRay.Condition.Indicator: _IndicatorPage.Visible = true; break; case ProtocolFlexRay.Condition.IDAndData: _DataPage.Visible = true; _IDPage.Visible = true; break; case ProtocolFlexRay.Condition.Error: _ErrorPage.Visible = true; break; case ProtocolFlexRay.Condition.FrameTail: _FrameTailPage.Visible = true; break; } this.Height = this.TlpPanel.PreferredSize.Height; } } }