123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using Avalonia.Collections;
- using Shaker.Model;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ShakerApp.ViewModels
- {
- public class OilSourceStatusViewModel : ViewModelBase<OilSourceStatusModel>
- {
- public LevelLogic LevelLogic => Model.LevelLogic;
- public override double Width => 1300;
- public override double Height => 800;
- public override bool CanResize => false;
- private OilSourceStatusViewModel()
- {
- ButtonVisibily = false;
- Content = typeof(Views.OilControlView);
- Circulate?.UpDateModel(Model.Circulate);
- for (int i = 0; i < Model.OilSourceAnalogs.Count; i++)
- {
- OilSourceAnalogs.Add(new OilSourceAnalogViewModel(Model.OilSourceAnalogs[i]));
- }
- for (int i = 0; i < Model.Circuit.Count; i++)
- {
- Circuit.Add(new IndexValueItemViewModel<CircuitViewModel>(i + 1, new CircuitViewModel(Model.Circuit[i])));
- }
- for (int i = 0; i < Model.OilErrors.Count; i++)
- {
- OilErrors.Add(new OilErrorInfoViewModel(Model.OilErrors[i]));
- }
- Forerunner.UpDateModel(Model.Forerunner);
- Assistant?.UpDateModel(Model.Assistant);
- GetEvent<AllConfig>().Subscrip((sender, args) =>
- {
- UpDateModel(args.Data.OilSource);
- if(CommunicationViewModel.Intance.ServiceIsStart)
- {
- CommunicationViewModel.Intance.ServiceCommunication.GetEvent<OilSourceStatusModel>().Publish(this, args.Data.OilSource);
- }
- CommunicationViewModel.Intance.LocalCommunication?.GetEvent<OilSourceStatusModel>()?.Subscrip((sender, args) =>
- {
- UpDateModel(args.Data);
- CommunicationViewModel.Intance.ServiceCommunication?.GetEvent<OilSourceStatusModel>()?.Publish(this, args.Data);
- });
- });
- }
- static OilSourceStatusViewModel()
- {
- }
- public override bool CanCancel => false;
- public static OilSourceStatusViewModel Instance { get; } = new OilSourceStatusViewModel();
- public CircuitViewModel Circulate { get; } = new CircuitViewModel();
- public bool IsRemote
- {
- get => Model.IsRemote;
- set => SetProperty(ref Model.IsRemote, value);
- }
- public bool IsEnabled
- {
- get => Model.IsEnabled;
- set => SetProperty(ref Model.IsEnabled, value);
- }
- public bool IsConnect { get => Model.IsConnect; set => SetProperty(ref Model.IsConnect, value); }
- /// <summary>
- /// 先导油路
- /// </summary>
- public CircuitViewModel Forerunner { get; } = new CircuitViewModel();
- /// <summary>
- /// 主油路
- /// </summary>
- public AvaloniaList<IndexValueItemViewModel<CircuitViewModel>> Circuit { get; } = new AvaloniaList<IndexValueItemViewModel<CircuitViewModel>>();
- public AvaloniaList<OilSourceAnalogViewModel> OilSourceAnalogs { get; } = new AvaloniaList<OilSourceAnalogViewModel>();
- public CircuitViewModel Assistant { get; } = new CircuitViewModel();
- public AvaloniaList<OilErrorInfoViewModel> OilErrors { get; } = new AvaloniaList<OilErrorInfoViewModel>();
- protected override void Cancel()
- {
- }
- public override void UpDateModel(OilSourceStatusModel model)
- {
- base.UpDateModel(model);
- Forerunner?.UpDateModel(model.Forerunner);
- Circulate?.UpDateModel(model.Circulate);
- if (Circuit.Count > 0)
- {
- for (int i = 0; i < Circuit.Count; i++)
- {
- Circuit[i]?.Value?.UpDateModel(model.Circuit[i]);
- }
- }
- Assistant?.UpDateModel(model.Assistant);
- if (OilSourceAnalogs.Count > 0)
- {
- for (int i = 0; i < OilSourceAnalogs.Count; i++)
- {
- OilSourceAnalogs[i]?.UpDateModel(model.OilSourceAnalogs[i]);
- }
- }
- if (OilErrors.Count > 0)
- {
- for (int i = 0; i < OilErrors.Count; i++)
- {
- OilErrors[i]?.UpDateModel(model.OilErrors[i]);
- }
- }
- }
- }
- }
|