agrobot_base/AgroBase/OperationControl/ViewModels/Views/Operacao/OperacaoTopViewModel.cs

143 lines
5.2 KiB
C#
Raw Normal View History

using System.ComponentModel;
using System.Windows.Media;
using Brush = System.Windows.Media.Brush;
using Brushes = System.Windows.Media.Brushes;
using ColorConverter = System.Windows.Media.ColorConverter;
using Color = System.Windows.Media.Color;
namespace OperationControl.ViewModels.Views.Operacao
{
public class OperacaoTopViewModel : INotifyPropertyChanged
{
private string _contextoSelecionado = "ROVER 01";
public string ContextoSelecionado
{
get => _contextoSelecionado;
set { _contextoSelecionado = value; OnPropertyChanged(nameof(ContextoSelecionado)); }
}
private string _tituloStatus = "ROVER OPERANDO NORMALMENTE";
public string TituloStatus
{
get => _tituloStatus;
set { _tituloStatus = value; OnPropertyChanged(nameof(TituloStatus)); }
}
private string _motivoPrincipal = "Todos os módulos obrigatórios e regras de controle estão OK.";
public string MotivoPrincipal
{
get => _motivoPrincipal;
set { _motivoPrincipal = value; OnPropertyChanged(nameof(MotivoPrincipal)); }
}
private string _badgeTexto = "NORMAL";
public string BadgeTexto
{
get => _badgeTexto;
set { _badgeTexto = value; OnPropertyChanged(nameof(BadgeTexto)); }
}
private string _resumoCurto = "Sistema saudável";
public string ResumoCurto
{
get => _resumoCurto;
set { _resumoCurto = value; OnPropertyChanged(nameof(ResumoCurto)); }
}
private Brush _corFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#153D2C"));
public Brush CorFundo
{
get => _corFundo;
set { _corFundo = value; OnPropertyChanged(nameof(CorFundo)); }
}
private Brush _corBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2C7A57"));
public Brush CorBorda
{
get => _corBorda;
set { _corBorda = value; OnPropertyChanged(nameof(CorBorda)); }
}
private Brush _corAccent = Brushes.LightGreen;
public Brush CorAccent
{
get => _corAccent;
set { _corAccent = value; OnPropertyChanged(nameof(CorAccent)); }
}
private Brush _corBadge = Brushes.LightGreen;
public Brush CorBadge
{
get => _corBadge;
set { _corBadge = value; OnPropertyChanged(nameof(CorBadge)); }
}
private Brush _corTexto = Brushes.White;
public Brush CorTexto
{
get => _corTexto;
set { _corTexto = value; OnPropertyChanged(nameof(CorTexto)); }
}
private Brush _corTextoBadge = Brushes.Black;
public Brush CorTextoBadge
{
get => _corTextoBadge;
set { _corTextoBadge = value; OnPropertyChanged(nameof(CorTextoBadge)); }
}
public void MockarNormal()
{
ContextoSelecionado = "ROVER 01";
TituloStatus = "ROVER OPERANDO NORMALMENTE";
MotivoPrincipal = "Todos os módulos obrigatórios e regras de controle estão OK.";
BadgeTexto = "NORMAL";
ResumoCurto = "Sistema saudável";
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#153D2C"));
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2C7A57"));
CorAccent = Brushes.LightGreen;
CorBadge = Brushes.LightGreen;
CorTexto = Brushes.White;
CorTextoBadge = Brushes.Black;
}
public void MockarParadoPorInclinacao()
{
ContextoSelecionado = "ROVER 01";
TituloStatus = "ROVER PARADO POR SEGURANÇA";
MotivoPrincipal = "Inclinação lateral acima do limite permitido.";
BadgeTexto = "PARADO";
ResumoCurto = "Verificar IMU";
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4A1F1F"));
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#9B3A3A"));
CorAccent = Brushes.OrangeRed;
CorBadge = Brushes.OrangeRed;
CorTexto = Brushes.White;
CorTextoBadge = Brushes.Black;
}
public void MockarObstaculo()
{
ContextoSelecionado = "ROVER 01";
TituloStatus = "MOVIMENTO BLOQUEADO PREVENTIVAMENTE";
MotivoPrincipal = "Obstáculo detectado no corredor à frente.";
BadgeTexto = "ATENÇÃO";
ResumoCurto = "Inspecionar caminho";
CorFundo = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4A3315"));
CorBorda = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#B7791F"));
CorAccent = Brushes.Orange;
CorBadge = Brushes.Orange;
CorTexto = Brushes.White;
CorTextoBadge = Brushes.Black;
}
public event PropertyChangedEventHandler? PropertyChanged;
private void OnPropertyChanged(string nome)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nome));
}
}
}