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 XCore;
|
using XHandler.Class.DataEx;
|
using XHandler.Controls;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.BacteriaProperty
|
{
|
/// <summary>
|
/// 挑选转板方法属性页面
|
/// </summary>
|
public partial class PickAndTransferProperty : UserControl, IMethodProperty
|
{
|
#region 变量
|
private TransferFileBll transferFileBll = new TransferFileBll();
|
private static int mark = 0;
|
private PromptTextBox labwareTextBox = null; // 耗材类型文本框
|
public MethodChoiceAndTransfer methodChoice = null;
|
private int[] channels = Shared.ChannelsId;
|
#endregion
|
|
#region 构造函数
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="method"></param>
|
public PickAndTransferProperty(MethodEx method)
|
{
|
InitializeComponent();
|
|
mark = 0;
|
methodChoice = new MethodChoiceAndTransfer();
|
methodChoice.strIndex = method.strIndex;
|
methodChoice.label = method.method_name; // 命令标签
|
methodChoice.name = method.method_name; // 命令名称
|
methodChoice.status = (method.isEnabled == true ? "enable" : "disable"); // 使能状态
|
this.DataContext = methodChoice;
|
|
#region 获取机械臂信息
|
methodChoice.channels = Shared.ChannelsId;
|
List<DeviceArm> armList = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = armList;
|
// 只有一个臂的情况下默认选中该臂
|
cbArm.SelectedIndex = armList.Count == 2 ? 1 : 0;
|
#endregion
|
|
#region 获取菌的信息
|
cbBacteria.ItemsSource = DataModule.getInstance().GetBacterias();
|
cbBacteria.SelectedIndex = 0;
|
#endregion
|
|
#region 获取挑菌方式
|
cbPickMode.ItemsSource = DataModule.getInstance().GetChoiceMode(Shared.SoftwareInformation.software_device_number);
|
cbPickMode.SelectedIndex = 0;
|
#endregion
|
|
if (Shared.ChannelCount > 1)
|
{
|
tipsChannel.CanEdit = true;
|
}
|
|
methodChoice.autoOpenCloseCover = 0;
|
if (method.tag != null)
|
{
|
methodChoice = (MethodChoiceAndTransfer)method.tag;
|
channels = methodChoice.channels;
|
}
|
}
|
#endregion
|
|
#region 界面初期表示事件
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
|
#region 机械臂
|
if (!string.IsNullOrEmpty(methodChoice.armText))
|
{
|
tbxCommandName.Text = methodChoice.name;
|
cbArm.SelectedValue = methodChoice.armValue;
|
cbBacteria.SelectedValue = methodChoice.bacteriaValue;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
textboxArmHead.Text = arm.head_type;
|
// 通道
|
tipsChannel.SelectedChannels = channels.ToList();
|
tipsChannel_SelectedChangedEvent(null, null);
|
}
|
else
|
{
|
cbArm.SelectedIndex = 0;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
if (arm != null)
|
{
|
textboxArmHead.Text = arm.head_type;
|
}
|
}
|
#endregion
|
|
#region 挑菌前环境设置
|
ChoiceAgoAspirateChildProperty choiceAgoAspirateChildProperty = new ChoiceAgoAspirateChildProperty(methodChoice.choiceAgoAspirateData);
|
gridChoiceAgoAspirateChild.Children.Add(choiceAgoAspirateChildProperty);
|
#endregion
|
|
#region 挑菌方式
|
cbPickMode.SelectedValue = methodChoice.choiceMode.ToString();
|
#endregion
|
|
#region 挑菌耗材
|
pickLabware.Tag = methodChoice.choiceLabwareValue;
|
pickLabware.Text = methodChoice.choiceLabwareText;
|
#endregion
|
|
#region 挑菌耗材
|
tipsLabware.Tag = methodChoice.tipsLabwareValue;
|
tipsLabware.Text = methodChoice.tipsLabwareText;
|
#endregion
|
|
#region 自动开关盖
|
ckbAutoOpenCloseCover.IsChecked = methodChoice.autoOpenCloseCover == 1;
|
#endregion
|
|
#region 调高
|
tbxChoiceOffset.Text = methodChoice.choiceOffset.ToString();
|
#endregion
|
|
#region 超声探测
|
UltrasonicChildProperty property = new UltrasonicChildProperty(methodChoice.ultrasonicData, true);
|
gridUltrasonicProperty.Children.Add(property);
|
cbxEnableUltrasonic.IsChecked = methodChoice.isEnableultrasonic;
|
#endregion
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 方法标签文件更改事件
|
/// <summary>
|
/// 方法标签文件更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandLabel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
methodChoice.label = tbxCommandLabel.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 方法名称更改事件
|
/// <summary>
|
/// 方法名称更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
methodChoice.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 机械臂选择变更事件
|
/// <summary>
|
/// 机械臂选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
// 臂未选择
|
if (cbArm.SelectedIndex < 0 || cbArm.SelectedIndex == 0)
|
{
|
methodChoice.armText = ""; // 机械臂
|
methodChoice.armValue = "";
|
textboxArmHead.Text = ""; // 挑菌枪
|
|
tipsChannel.SetTotalChannelCount(0);
|
tipsChannel.SelectedChannels = new List<int>();
|
tipsChannel.SetSelectedChannels();
|
tipsChannel_SelectedChangedEvent(null, null);
|
return;
|
}
|
|
#region 设置移液枪信息
|
tipsChannel.SelectedChannels = Shared.ChannelsId.ToList();
|
tipsChannel.SetTotalChannelCount(Shared.ChannelCount);
|
tipsChannel.SetSelectedChannels();
|
tipsChannel_SelectedChangedEvent(null, null);
|
#endregion
|
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
methodChoice.armText = arm.device_arm_name;
|
methodChoice.armValue = methodChoice.choiceAgoAspirateData.armValue = arm.device_arm_id.ToString();
|
methodChoice.headType = arm.head_type;
|
textboxArmHead.Text = arm.head_type;
|
}
|
#endregion
|
|
#region 菌名称选择变更事件
|
/// <summary>
|
/// 菌名称选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbBacteria_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbBacteria.SelectedIndex < 0)
|
return;
|
if (methodChoice == null)
|
return;
|
|
Bacteria bacteria = cbBacteria.SelectedItem as Bacteria;
|
methodChoice.bacteriaValue = bacteria.bacteria_id;
|
methodChoice.bacteriaText = bacteria.bacteria_name;
|
}
|
#endregion
|
|
#region 挑选耗材类型文字变更事件
|
/// <summary>
|
/// 挑选耗材类型文字变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void pickLabware_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
methodChoice.choiceLabwareText = pickLabware.Text;
|
methodChoice.choiceLabwareValue = pickLabware.Tag.ToString();
|
}
|
|
/// <summary>
|
/// 耗材文本框获得焦点事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void labware_GotFocus(object sender, RoutedEventArgs e)
|
{
|
labwareTextBox = (PromptTextBox)sender;
|
}
|
#endregion
|
|
#region 枪头类型耗材类型文字变更事件
|
/// <summary>
|
/// 枪头类型耗材类型文字变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tipsLabware_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
methodChoice.tipsLabwareText = tipsLabware.Text;
|
methodChoice.tipsLabwareValue = tipsLabware.Tag.ToString();
|
}
|
#endregion
|
|
#region 挑选模式选择变更事件
|
/// <summary>
|
/// 挑选模式选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbPickMode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbPickMode.SelectedIndex < 0 ||
|
methodChoice == null)
|
{
|
return;
|
}
|
|
DropdownName dpdItem = (DropdownName)cbPickMode.SelectedItem;
|
methodChoice.choiceMode = Convert.ToInt32(dpdItem.dropdown_id);
|
|
#region 自动勾选【开启挑菌前吸液】
|
if (gridChoiceAgoAspirateChild.Children.Count > 0)
|
{
|
ChoiceAgoAspirateChildProperty choiceAgoAspirateChildProperty = (ChoiceAgoAspirateChildProperty)gridChoiceAgoAspirateChild.Children[0];
|
choiceAgoAspirateChildProperty.ChangeDisp(methodChoice.choiceMode);
|
}
|
#endregion
|
}
|
#endregion
|
|
#region 自动开关盖点击事件
|
/// <summary>
|
/// 自动开关盖点击事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void ckbAutoOpenCloseCover_Click(object sender, RoutedEventArgs e)
|
{
|
methodChoice.autoOpenCloseCover = ckbAutoOpenCloseCover.IsChecked == true ? 1 : 0;
|
}
|
#endregion
|
|
#region 设置已选择的台面数据
|
public void SetTableName(string tableName, Labware lb)
|
{
|
if (lb == null || string.IsNullOrEmpty(lb.labware_id))
|
{
|
return;
|
}
|
|
List<Lattice> latticeList = LatticeDB.GetLatticeDataFromdb(Shared.SoftwareInformation.software_device_number, Convert.ToInt32(methodChoice.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;
|
}
|
|
if (gridLiquidParam.Visibility == Visibility.Visible)
|
{
|
if (gridChoiceAgoAspirateChild.Children.Count > 0)
|
{
|
ChoiceAgoAspirateChildProperty choiceAgoAspirateChildProperty = (ChoiceAgoAspirateChildProperty)gridChoiceAgoAspirateChild.Children[0];
|
choiceAgoAspirateChildProperty.SetTableName(tableName, lb);
|
}
|
}
|
else
|
{
|
if (labwareTextBox != null)
|
{
|
labwareTextBox.Tag = lb.labware_id;
|
labwareTextBox.Text = lb.labware_name;
|
}
|
}
|
}
|
#endregion
|
|
#region 调高变更事件
|
/// <summary>
|
/// 调高变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxChoiceOffset_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
float choiceOffset = 0;
|
methodChoice.choiceOffset = choiceOffset;
|
if (float.TryParse(tbxChoiceOffset.Text, out choiceOffset))
|
{
|
methodChoice.choiceOffset = choiceOffset;
|
}
|
}
|
#endregion
|
|
#region 超声探测
|
/// <summary>
|
/// 开启超声探测
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbxEnableUltrasonic_Click(object sender, RoutedEventArgs e)
|
{
|
methodChoice.isEnableultrasonic = (bool)cbxEnableUltrasonic.IsChecked;
|
}
|
#endregion
|
|
#region 超声探测 下一步
|
private void btnUltrasonicNext_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridUltrasonic.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Visible;
|
//scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 挑菌前环境设置 上一步
|
private void btnLiquidParamPrev_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Prev();
|
gridUltrasonic.Visibility = Visibility.Visible;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
//scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 可用通道鼠标选择变更事件
|
/// <summary>
|
/// 可用通道鼠标选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tipsChannel_SelectedChangedEvent(object sender, EventArgs e)
|
{
|
methodChoice.channels = tipsChannel.SelectedChannels.ToArray();
|
}
|
#endregion
|
}
|
}
|