77 lines
2.0 KiB
C#
77 lines
2.0 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using TwinCAT.TypeSystem;
|
|
using Heisig.HMI.AdsManager;
|
|
using HMIToolkit;
|
|
|
|
namespace Common;
|
|
|
|
public sealed partial class MediaContainerVm : ObservableValidator, IDisposable
|
|
{
|
|
|
|
private IAdsManager? _adsManager;
|
|
private string? _variableName;
|
|
|
|
[ObservableProperty] private string? sName = "No Name";
|
|
|
|
[ObservableProperty] private bool empty = false;
|
|
|
|
[ObservableProperty] private bool full = false;
|
|
|
|
[ObservableProperty] private bool overload = false;
|
|
|
|
[ObservableProperty] private HMIControlButtonVM? emptyButton;
|
|
|
|
[ObservableProperty] private HMIControlButtonVM? fillButton;
|
|
|
|
|
|
|
|
public MediaContainerVm()
|
|
{
|
|
sName = "No Name";
|
|
EmptyButton = new HMIControlButtonVM();
|
|
FillButton = new HMIControlButtonVM();
|
|
|
|
}
|
|
|
|
public MediaContainerVm(IAdsManager adsManager, string variableName)
|
|
{
|
|
_adsManager = adsManager;
|
|
_variableName = variableName;
|
|
|
|
sName = "No Name";
|
|
|
|
EmptyButton = new HMIControlButtonVM(_adsManager, _variableName + ".stEmptyButton");
|
|
FillButton = new HMIControlButtonVM(_adsManager, _variableName + ".stFillButton");
|
|
_adsManager.Register(_variableName + ".xEmpty", EmptyChanged);
|
|
_adsManager.Register(_variableName + ".xFull", FullChanged);
|
|
_adsManager.Register(_variableName + ".xOverload", OverloadChanged);
|
|
|
|
}
|
|
private void EmptyChanged(object? sender, ValueChangedEventArgs e)
|
|
{
|
|
Empty = (bool)e.Value;
|
|
}
|
|
private void FullChanged(object? sender, ValueChangedEventArgs e)
|
|
{
|
|
Full = (bool)e.Value;
|
|
}
|
|
private void OverloadChanged(object? sender, ValueChangedEventArgs e)
|
|
{
|
|
Overload = (bool)e.Value;
|
|
}
|
|
public void Dispose()
|
|
{
|
|
EmptyButton?.Dispose();
|
|
EmptyButton = null;
|
|
FillButton?.Dispose();
|
|
FillButton = null;
|
|
|
|
_adsManager?.Deregister(_variableName + ".xEmpty", EmptyChanged);
|
|
_adsManager?.Deregister(_variableName + ".xFull", FullChanged);
|
|
_adsManager?.Deregister(_variableName + ".xOverload", OverloadChanged);
|
|
}
|
|
|
|
|
|
}
|