using DataEntity.Share;
using DataRWDAL;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using XCommon.Log;
using XHandler.Class.DataEx;
using XHandler.Controls;
using XHandler.View.MethodProperty;
using XImagingXhandler.XDAL;
namespace XHandler.View.BacteriaProperty
{
///
/// CoatingProperty.xaml 的交互逻辑
///
public partial class CoatingProperty : UserControl, IMethodProperty
{
Labware selectedLabware;
public MethodCoating methodCoating { get; set; }
public MethodCoating currmethodCoating = null;
#region 全局属性变量
string isrun = "";
string status = "";
string name = "";
string label = "";
string labwareText = "";
string labwareValue = "";
string positionText = "";
string positionValue = "";
string armText = "";
string armValue = "";
string headType = "";
private int[] channels = Shared.ChannelsId;
string wellarray = "";
string coatingmodeText = "";
string coatingmodeValue = "";
static int mark = 0;
int curArmSelectedIndex = -1;
#endregion
public CoatingProperty()
{
InitializeComponent();
}
public CoatingProperty(MethodEx method)
{
InitializeComponent();
mark = 0;
curArmSelectedIndex = 0;
List armList = DataModule.getInstance().GetDeviceArm();
cbArm.ItemsSource = armList;
if (armList.Count == 2) //只有一个臂的情况下默认选中该臂
cbArm.SelectedIndex = 1;
else
cbArm.SelectedIndex = 0;
ObservableCollection coatingModeList = DataModule.getInstance().GetCoatingMode();
cbCoatingMode.ItemsSource = coatingModeList;
cbCoatingMode.SelectedIndex = 0;
List list = new List();
List lattices = DataModule.getInstance().GetLattices();
for (int i = 0; i < Shared.SoftwareInformation.columns; i++)
{
for (int j = 0; j < Shared.SoftwareInformation.rows; j++)
{
int tmp = i * Shared.SoftwareInformation.rows + j;
Lattice latt = lattices[tmp];
if (latt.is_trash == 1)
continue;
list.Add(latt.lattice_num);
}
}
list.Insert(0, Properties.Resources.strPleaseSelect);
comboboxTablePos.ItemsSource = list;
comboboxTablePos.SelectedIndex = 0;
methodCoating = new MethodCoating();
methodCoating.name = method.method_name;
methodCoating.label = method.method_name;
methodCoating.status = (method.isEnabled == true ? "enable" : "disable");
methodCoating.wellarray = "";
methodCoating.strIndex = method.strIndex;
DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem;
methodCoating.coatingmodeValue = dpdItem.dropdown_id;
methodCoating.coatingmodeText = dpdItem.dropdown_name;
//methodCoating.coatingmodeValue = cbCoatingMode.SelectedValue.ToString();
this.DataContext = methodCoating;
if (Shared.ChannelCount > 1)
{
tipsChannel.CanEdit = true;
}
if (method.tag != null)
{
methodCoating = (MethodCoating)method.tag;
currmethodCoating = methodCoating;
isrun = methodCoating.isrun;
status = methodCoating.status;
name = methodCoating.name;
label = methodCoating.label;
labwareText = methodCoating.labwareText;
labwareValue = methodCoating.labwareValue;
positionText = methodCoating.positionText;
positionValue = methodCoating.positionValue;
armText = methodCoating.armText;
armValue = methodCoating.armValue;
headType = methodCoating.headType;
channels = methodCoating.channels;
wellarray = methodCoating.wellarray;
coatingmodeText = methodCoating.coatingmodeText;
coatingmodeValue = methodCoating.coatingmodeValue;
}
}
private void z_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (mark == 0)
{
}
else
{
if (cbCoatingMode.SelectedIndex < 0)
return;
DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem;
methodCoating.coatingmodeValue = dpdItem.dropdown_id;
methodCoating.coatingmodeText = dpdItem.dropdown_name;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
}
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// 臂未选择
if (cbArm.SelectedIndex < 0 || cbArm.SelectedIndex == 0)
{
tipsChannel.SetTotalChannelCount(0);
tipsChannel.SelectedChannels = new List();
tipsChannel.SetSelectedChannels();
tipsChannel_SelectedChangedEvent(null, null);
return;
}
curArmSelectedIndex = cbArm.SelectedIndex;
string armName = ((DeviceArm)cbArm.SelectedItem).device_arm_name.ToString();
tipsChannel.SelectedChannels = Shared.ChannelsId.ToList();
tipsChannel.SetTotalChannelCount(Shared.ChannelCount);
tipsChannel.SetSelectedChannels();
tipsChannel_SelectedChangedEvent(null, null);
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
methodCoating.armText = arm.device_arm_name;
methodCoating.armValue = arm.device_arm_id.ToString();
methodCoating.headType = arm.head_type;
textboxArmHead.Text = arm.head_type.ToString();
}
public void SetTableName(string tableName, Labware lb)
{
if (lb == null)
return;
if (string.IsNullOrEmpty(lb.labware_id))
return;
if (string.IsNullOrEmpty(methodCoating.armValue))
{
MessageBox.Show(Properties.Resources.msgPlsSelectArm, "Tips");
return;
}
selectedLabware = lb;
List latticeList = LatticeDB.GetLatticeDataFromdb(Shared.SoftwareInformation.software_device_number, Convert.ToInt32(methodCoating.armValue));
Lattice lattice = latticeList.Find(s => s.lattice_num == tableName);
if (lattice == null)
{
LoggerHelper.InfoLog("Error: Can't find lattice with lattice_num=" + tableName);
return;
}
comboboxTablePos.SelectedItem = tableName;
methodCoating.positionText = tableName;
methodCoating.positionValue = lattice.lattice_id;
methodCoating.labwareText = lb.labware_name;
methodCoating.labwareValue = lb.labware_id;
}
private void comboboxTablePos_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (comboboxTablePos.SelectedItem == null)
return;
string name = comboboxTablePos.SelectedItem as string;
SetTableName(name, selectedLabware);
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
}
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (mark == 0)
{
}
else
{
methodCoating.name = tbxCommandName.Text;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
}
private void tbxWellPositionTips_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (mark == 0)
{
}
else
{
methodCoating.wellarray = tbxWellPositionTips.Text;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
mark += 1;
try
{
if (mark > 1)
{
return;
}
if (!string.IsNullOrEmpty(armText))
{
tbxCommandName.Text = name;
cbArm.SelectedValue = armValue;
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
textboxArmHead.Text = arm.head_type;
comboboxTablePos.SelectedItem = positionText;
tipsChannel.SelectedChannels = channels.ToList();
tipsChannel_SelectedChangedEvent(null, null);
tbxWellPositionTips.Text = wellarray;
wellPlate.Selection = wellarray;
//wellPlate.SetSelection(wellarray);
cbCoatingMode.SelectedValue = coatingmodeValue;
if (currmethodCoating != null)
{
methodCoating = currmethodCoating;
}
}
else
{
cbArm.SelectedIndex = curArmSelectedIndex;
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
textboxArmHead.Text = arm.head_type;
if (currmethodCoating != null)
{
methodCoating = currmethodCoating;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("ERROR:", ex);
}
}
#region 可用通道鼠标选择变更事件
///
/// 可用通道鼠标选择变更事件
///
///
///
private void tipsChannel_SelectedChangedEvent(object sender, EventArgs e)
{
methodCoating.channels = tipsChannel.SelectedChannels.ToArray();
}
#endregion
}
}