using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Aitex.Core.RT.Log;
using VirgoUI.Controls.Parts;
using MECF.Framework.Common.Equipment;
using OpenSEMI.ClientBase;
using OpenSEMI.Ctrlib.Controls;
using Slot = OpenSEMI.Ctrlib.Controls.Slot;
///
/// This view model is basic model used for machine part
///
///
namespace VirgoUI.Client.Models
{
public class UnitModel : BaseModel
{
#region Property
public ModuleInfo FOUPA { get; set; }
public ModuleInfo FOUPB { get; set; }
public ModuleInfo TM { get; set; }
public ModuleInfo EFEM { get; set; }
public ModuleInfo Aligner { get; set; }
public ModuleInfo LLA { get; set; }
public ModuleInfo LLB { get; set; }
public ModuleInfo PM1 { get; set; }
public ModuleInfo PM2 { get; set; }
public ModuleInfo PM3 { get; set; }
public ModuleInfo PM4 { get; set; }
public ModuleInfo PM5 { get; set; }
public ModuleInfo PM6 { get; set; }
#endregion
protected override void OnInitialize()
{
base.OnInitialize();
}
protected void InitTM()
{
TM = ModuleManager.ModuleInfos["TMRobot"];
}
protected void InitLL()
{
LLA = ModuleManager.ModuleInfos["LLA"];
LLB = ModuleManager.ModuleInfos["LLB"];
}
protected void InitEFEM()
{
EFEM = ModuleManager.ModuleInfos["EfemRobot"];
Aligner = ModuleManager.ModuleInfos["Aligner"];
}
protected void InitFOUP()
{
FOUPA = ModuleManager.ModuleInfos["LP1"];
FOUPB = ModuleManager.ModuleInfos["LP2"];
}
protected void InitPM()
{
PM1 = ModuleManager.ModuleInfos["PM1"];
PM2 = ModuleManager.ModuleInfos["PM2"];
PM3 = ModuleManager.ModuleInfos["PM3"];
PM4 = ModuleManager.ModuleInfos["PM4"];
PM5 = ModuleManager.ModuleInfos["PM5"];
PM6 = ModuleManager.ModuleInfos["PM6"];
}
///
/// support wafer transfer for slot
///
public void OnWaferTransfer(DragDropEventArgs args)
{
try
{
WaferMoveManager.Instance.TransferWafer(args.TranferFrom, args.TranferTo, 0.0f);
}
catch (Exception ex)
{
LOG.Error(ex.Message, ex);
}
}
///
/// support context menu
///
public void OnMouseUp(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Right)
{
Slot slot = sender as Slot;
ContextMenu cm = ContextMenuManager.Instance.GetSlotMenus(slot);
if (cm != null)
{
((FrameworkElement)e.Source).ContextMenu = cm;
}
}
}
}
}