using Caliburn.Micro;
using Caliburn.Micro.Core;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using FurnaceUI.Models;
using FurnaceUI.Views.Jobs;
using System.Windows.Controls;
using MECF.Framework.UI.Client.CenterViews.Parameter;
namespace FurnaceUI.Views.Editors
{
public class AlarmErrorCommandViewModel : FurnaceUIViewModelBase
{
private string selectCommand;
public string SelectCommand
{
get { return selectCommand; }
set { selectCommand = value; this.NotifyOfPropertyChange(nameof(SelectCommand)); }
}
private AlarmErrorCommandView _view;
public string ResultParameterStr { get; set; }
private string _alarmStr;
public string AlarmStr
{
get { return _alarmStr; }
set
{
_alarmStr = value; this.NotifyOfPropertyChange(nameof(AlarmStr));
}
}
private Visibility _isJumpVisibility = Visibility.Collapsed;
public Visibility IsJumpVisibility
{
get { return _isJumpVisibility; }
set { _isJumpVisibility = value; this.NotifyOfPropertyChange(nameof(IsJumpVisibility)); }
}
private Visibility _isAlarmVisibility = Visibility.Collapsed;
public Visibility IsAlarmVisibility
{
get { return _isAlarmVisibility; }
set { _isAlarmVisibility = value; this.NotifyOfPropertyChange(nameof(IsAlarmVisibility)); }
}
private Visibility _isAbortVisibility = Visibility.Collapsed;
public Visibility IsAbortVisibility
{
get { return _isAbortVisibility; }
set { _isAbortVisibility = value; this.NotifyOfPropertyChange(nameof(IsAbortVisibility)); }
}
private string _abortStr;
public string AbortStr
{
get { return _abortStr; }
set { _abortStr = value; this.NotifyOfPropertyChange(nameof(AbortStr)); }
}
private string _jumpStr;
public string JumpStr
{
get { return _jumpStr; }
set { _jumpStr = value; this.NotifyOfPropertyChange(nameof(JumpStr)); }
}
protected override void OnInitialize()
{
base.OnInitialize();
InitControl();
}
///
/// 初始化按钮 是否被选中
///
private void InitControl()
{
if (string.IsNullOrEmpty(selectCommand))
return;
_view = ((GetView() as Window).Content) as AlarmErrorCommandView;
var key = selectCommand.Split(' ')[0];
Dictionary dicNames = new Dictionary() {
{ "Call Alarm Recipe","CallAlarmRecipe"},
{ "Call Abort Recipe","CallAbortRecipe"},
{ "ABORT","CallAbortRecipe"},
{ "CALL","CallAlarmRecipe"},
{ "JUMP","JumpStep"},
};
string nameKey = dicNames.ContainsKey(key) ? dicNames[key] : selectCommand;
var control = _view.FindName(nameKey);
if (control is null)
return;
RadioButton radioButton = control as RadioButton;
radioButton.IsChecked = true;
if (key.Equals("CALL"))
{
AlarmStr = selectCommand.Replace("CALL ","");
IsAlarmVisibility = Visibility.Visible;
}
else if (key.Equals("ABORT"))
{
AbortStr = selectCommand.Replace("ABORT ", "");
IsAbortVisibility = Visibility.Visible;
}
else if (key.Equals("JUMP"))
{
JumpStr= selectCommand.Replace("JUMP ", "");
IsJumpVisibility = Visibility.Visible;
}
}
public void SetCommand(string commandContent)
{
var windowManager = IoC.Get();
AlarmErrorCallRecipeViewModel errorCallRecipeViewModel = new AlarmErrorCallRecipeViewModel();
if (commandContent.Equals("Call Alarm Recipe"))
{
errorCallRecipeViewModel.IsAlarmVisibility = Visibility.Visible;
errorCallRecipeViewModel.ResultParameterStr = AlarmStr;
if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(errorCallRecipeViewModel, null, "Call Alarm Recipe"))
{
ResultParameterStr = errorCallRecipeViewModel.ResultParameterStr;
AlarmStr = ResultParameterStr;
IsAlarmVisibility = Visibility.Visible;
IsAbortVisibility = Visibility.Collapsed;
IsJumpVisibility = Visibility.Collapsed;
}
else
{
((Window)GetView()).DialogResult = false;
}
selectCommand = "CALL";
}
else if (commandContent.Equals("JumpStep"))
{
AlarmErrorJumpStepViewModel alarmErrorJumpStepView = new AlarmErrorJumpStepViewModel();
alarmErrorJumpStepView.ResultParameterStr = JumpStr;
if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(alarmErrorJumpStepView, null, "Jump"))
{
ResultParameterStr = alarmErrorJumpStepView.ResultParameterStr;
JumpStr = ResultParameterStr;
IsJumpVisibility = Visibility.Visible;
IsAbortVisibility = Visibility.Collapsed;
IsAlarmVisibility = Visibility.Collapsed;
}
else
{
((Window)GetView()).DialogResult = false;
}
selectCommand = "JUMP";
}
else if (commandContent.Equals("Call Abort Recipe"))
{
errorCallRecipeViewModel = new AlarmErrorCallRecipeViewModel();
errorCallRecipeViewModel.IsAlarmVisibility = Visibility.Hidden;
errorCallRecipeViewModel.ResultParameterStr = AbortStr;
if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(errorCallRecipeViewModel, null, "Call Abort Recipe"))
{
ResultParameterStr = errorCallRecipeViewModel.ResultParameterStr;
AbortStr = ResultParameterStr;
IsAbortVisibility = Visibility.Visible;
IsAlarmVisibility = Visibility.Collapsed;
IsJumpVisibility = Visibility.Collapsed;
}
else {
((Window)GetView()).DialogResult = false;
}
selectCommand = "ABORT";
}
else
{
ResultParameterStr = null;
selectCommand = commandContent;
}
}
public void CloseCommand()
{
((Window)GetView()).DialogResult = false;
}
public void OKCommand()
{
((Window)GetView()).DialogResult = true;
}
}
}