using Aitex.Core.RT.SCCore;
using Caliburn.Micro;
using Caliburn.Micro.Core;
using MECF.Framework.Common.DataCenter;
using MECF.Framework.Common.RecipeCenter;
using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
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.Parameter;
using FurnaceUI.Views.Recipes;
using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
using SciChart.Charting2D.Interop;
using RecipeEditorLib.RecipeModel.Params;
using OpenSEMI.ClientBase;
using MECF.Framework.UI.Client.ClientBase;
namespace FurnaceUI.Views.Editors
{
public class RecipeTempModeViewModel : FurnaceUIViewModelBase
{
private bool _isProfileSelected = false;
public bool IsProfileSelected
{
get => _isProfileSelected;
set
{
_isProfileSelected = value;
NotifyOfPropertyChange(nameof(IsProfileSelected));
}
}
private string _selectProfileTable = "";
public string SelectProfileTable
{
get => _selectProfileTable;
set
{
_selectProfileTable = value;
NotifyOfPropertyChange(nameof(SelectProfileTable));
}
}
private bool _modelLeftVisibility;
public bool ModelLeftVisibility
{
get => _modelLeftVisibility;
set
{
_modelLeftVisibility = value;
NotifyOfPropertyChange(nameof(ModelLeftVisibility));
}
}
private RecipeDataBase _CurrentRecipe;
public RecipeDataBase CurrentRecipe
{
get { return _CurrentRecipe; }
set { _CurrentRecipe = value; this.NotifyOfPropertyChange(nameof(CurrentRecipe)); }
}
private bool _heaterControlIsChecked;
public bool HeaterControlIsChecked
{
get { return _heaterControlIsChecked; }
set { _heaterControlIsChecked = value; this.NotifyOfPropertyChange(nameof(HeaterControlIsChecked)); }
}
private bool _furnaceControlIsChecked;
public bool FurnaceControlIsChecked
{
get { return _furnaceControlIsChecked; }
set { _furnaceControlIsChecked = value; this.NotifyOfPropertyChange(nameof(FurnaceControlIsChecked)); }
}
private bool _furnaceDirectControlIsChecked;
public bool FurnaceDirectControlIsChecked
{
get { return _furnaceDirectControlIsChecked; }
set { _furnaceDirectControlIsChecked = value; this.NotifyOfPropertyChange(nameof(FurnaceDirectControlIsChecked)); }
}
private bool _profileControlIsChecked;
public bool ProfileControlIsChecked
{
get { return _profileControlIsChecked; }
set { _profileControlIsChecked = value; this.NotifyOfPropertyChange(nameof(ProfileControlIsChecked)); }
}
public bool IsSave { get; set; }
public bool IsManualSet { get; set; }
private string _selectBtnName;
public string SelectBtnName
{
get { return _selectBtnName; }
set { _selectBtnName = value; this.NotifyOfPropertyChange(nameof(SelectBtnName)); }
}
public RecipeTempModeViewModel()
{
}
private bool _isEnable;
public bool IsEnable
{
get { return _isEnable; }
set { _isEnable = value; this.NotifyOfPropertyChange(nameof(IsEnable)); }
}
public string ResultString { get; set; }
public string RecipeType { get; set; }
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
LoadData();
InitModelLeftVisibility();
IsEnable = IsManualSet == true ? IsManualSet : CGlobal.RecipeProcessEditViewEnable;
}
private void LoadData()
{
if (!string.IsNullOrEmpty(SelectProfileTable))
{
SelectProfileTable = SelectProfileTable.TrimEnd(')');
}
else
{
SelectProfileTable = "Heater";
}
InitControlBtn();
}
private const string FURNACE = "Furnace";
private const string DIRECT = "Furnace Direct";
private const string HEATER = "Heater";
private const string PROFILE = "Profile";
private void InitControlBtn()
{
if (string.IsNullOrEmpty(SelectBtnName))
{
if (!string.IsNullOrEmpty(SelectProfileTable))
{
if (SelectProfileTable.StartsWith(PROFILE))
SelectBtnName = PROFILE;
else if (SelectProfileTable.StartsWith(HEATER))
SelectBtnName = HEATER;
else if (SelectProfileTable.StartsWith(DIRECT))
SelectBtnName = DIRECT;
else
SelectBtnName = FURNACE;
}
else
SelectBtnName = HEATER;
}
if (PROFILE.Equals(SelectBtnName))
{
FurnaceDirectControlIsChecked = false;
FurnaceControlIsChecked = false;
HeaterControlIsChecked = false;
ProfileControlIsChecked = true;
IsProfileSelected = true;
}
if (FURNACE.Equals(SelectBtnName))
{
FurnaceDirectControlIsChecked = false;
FurnaceControlIsChecked = true;
HeaterControlIsChecked = false;
ProfileControlIsChecked = false;
}
if (HEATER.Equals(SelectBtnName))
{
FurnaceDirectControlIsChecked = false;
FurnaceControlIsChecked = false;
HeaterControlIsChecked = true;
ProfileControlIsChecked = false;
}
if (DIRECT.Equals(SelectBtnName))
{
FurnaceDirectControlIsChecked = true;
FurnaceControlIsChecked = false;
HeaterControlIsChecked = false;
ProfileControlIsChecked = false;
}
}
///
/// Profile Control按钮 手动且Heater不展示 Recipe展示
///
private void InitModelLeftVisibility()
{
ModelLeftVisibility = true;
//if (null == CurrentRecipe)
//{
if (!string.IsNullOrEmpty(SelectBtnName) && SelectBtnName.ToUpper().Equals(HEATER))
{
ModelLeftVisibility = false;
}
//}
}
public void ProfileClick()
{
ShowProfileTable();
}
public void RdoChecked(string cmd)
{
SelectBtnName = cmd;
switch (cmd)
{
case "Heater":
ResultString = "Heater";
IsProfileSelected = false;
ProfileControlIsChecked = false;
InitModelLeftVisibility();
break;
case "Furnace":
ResultString = "Furnace";
IsProfileSelected = false;
ProfileControlIsChecked = false;
ModelLeftVisibility = true;
break;
case "Direct":
SelectBtnName = "Furnace Direct";
ResultString = "Furnace Direct";
ProfileControlIsChecked = false;
IsProfileSelected = false;
ModelLeftVisibility = true;
break;
case "Profile":
ResultString = "Profile";
IsProfileSelected = true;
ShowProfileTable();
break;
default:
break;
}
}
public void ShowProfileTable()
{
var windowManager = IoC.Get();//"Combination.ProfileCondition"
StringParam profile = CurrentRecipe.ConfigItems.FirstOrDefault(x => x.Name == "Combination.ProfileCondition") as StringParam;
if (profile == null)
{
DialogBox.ShowDialog(DialogButton.Cancel, DialogType.INFO, "Please set the combinatin file first");
return;
}
TempProfileEditViewModel tempProfileEditViewModel;
tempProfileEditViewModel = new TempProfileEditViewModel();
tempProfileEditViewModel.CurrentRecipe = CurrentRecipe;
tempProfileEditViewModel.IsEditEnabled = false;
tempProfileEditViewModel.ProfileTable1.IsChecked = false;
tempProfileEditViewModel.ProfileTable2.IsChecked = false;
tempProfileEditViewModel.ProfileTable3.IsChecked = false;
string test = SelectProfileTable;
if (SelectProfileTable != null && SelectProfileTable != "Heater" && SelectProfileTable != "Furnace Direct" && SelectProfileTable != "Furnace" && SelectProfileTable != "")
{
if (CurrentRecipe == null && SelectProfileTable.Contains(":"))
{
if (SelectProfileTable.Split(':')[0] == "1")
{
tempProfileEditViewModel.Table1CheckinRecipe = true;
}
if (SelectProfileTable.Split(':')[0] == "2")
{
tempProfileEditViewModel.Table2CheckinRecipe = true;
}
if (SelectProfileTable.Split(':')[0] == "3")
{
tempProfileEditViewModel.Table3CheckinRecipe = true;
}
}
else
{
if (SelectProfileTable.Split(',')[1] == "1")
{
tempProfileEditViewModel.Table1CheckinRecipe = true;
}
if (SelectProfileTable.Split(',')[1] == "2")
{
tempProfileEditViewModel.Table2CheckinRecipe = true;
}
if (SelectProfileTable.Split(',')[1] == "3")
{
tempProfileEditViewModel.Table3CheckinRecipe = true;
}
}
}
if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(tempProfileEditViewModel, null, "TempProfileEdit"))
{
SelectProfileTable = tempProfileEditViewModel.ResultString;
ResultString = $"Profile({tempProfileEditViewModel.ResultString})";
}
else
{
if (string.IsNullOrEmpty(tempProfileEditViewModel.ResultString))
{
if (!string.IsNullOrEmpty(ResultString) && !ResultString.Contains(","))
{
ResultString = "";
SelectProfileTable = "";
}
}
}
}
public void TempSetSave()
{
if (string.IsNullOrEmpty(ResultString) && !string.IsNullOrEmpty(SelectProfileTable))
{
ResultString = SelectProfileTable.Contains("Profile") ? $"{SelectProfileTable})" : SelectProfileTable;
}
IsSave = true;
((Window)GetView()).DialogResult = true;
}
public void TempSetCancel()
{
IsSave = false;
((Window)GetView()).DialogResult = false;
}
}
}