Push Alpha Version
This commit is contained in:
76
uniper_hmi_old/UniperHMI/Common/MediaContainerVm.cs
Normal file
76
uniper_hmi_old/UniperHMI/Common/MediaContainerVm.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user