using DataRWDAL;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using DataEntity;
|
using DataEntity.Page;
|
using XImagingXhandler.XDAL;
|
using XCommon.Log;
|
using XHandler.Class;
|
|
namespace XHandler.View.TestList
|
{
|
/// <summary>
|
/// ExperimentFolder.xaml 的交互逻辑
|
/// </summary>
|
public partial class ExperimentFolder : UserControl
|
{
|
ObservableCollection<Experiment> experimentList = new ObservableCollection<Experiment>();
|
public MainWindow mainWindow = null;
|
// 分页数据
|
private Pagination m_pagination = new Pagination();
|
|
public ExperimentFolder()
|
{
|
InitializeComponent();
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
gdContent.RowDefinitions[0].Height = new GridLength(0);
|
BindingTestListCollection();
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
|
private void btnChangeFolder_Click(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void btnSearch_Click(object sender, RoutedEventArgs e)
|
{
|
dgResult.ItemsSource = null;
|
pagerToolsControl_paging.Current = PaginationDefaultParameter.Current;
|
}
|
|
#region 绑定数据日志集合到界面
|
private void BindingTestListCollection()
|
{
|
DataBinding(m_pagination);
|
}
|
#endregion
|
|
/// <summary>
|
/// 分页绑定
|
/// </summary>
|
/// <param name="pagination"></param>
|
private void DataBinding(Pagination pagination)
|
{
|
experimentList = GenerateTestListCollection();
|
var resultExperimentList = GetPagedData(experimentList, pagination.Current, pagination.PageSize);
|
var result = new Tuple<IEnumerable<Experiment>, int>(resultExperimentList, experimentList.Count());
|
if (result != null)
|
{
|
pagerToolsControl_paging.IsTrigger = false;
|
pagerToolsControl_paging.DataCount = result.Item2; // 当前查到数量
|
pagerToolsControl_paging.Current = pagination.Current;
|
pagerToolsControl_paging.IsTrigger = true;
|
dgResult.ItemsSource = result.Item1;
|
}
|
}
|
|
public ObservableCollection<Experiment> GenerateTestListCollection()
|
{
|
string strExperimentName = this.tbxFileName.Text;
|
var resultExperimentList = ExperimentListDB.GetExperimentCollectionFromdb(strExperimentName);
|
for(int i=0;i<resultExperimentList.Count;i++)
|
{
|
resultExperimentList[i].indexNum = i + 1;
|
}
|
return resultExperimentList;
|
}
|
|
#region 集合数据分页方法
|
private static IEnumerable<T> GetPagedData<T>(IEnumerable<T> source, int currentPageNumber, int pageSize)
|
{
|
if (source == null || !source.Any()) return Enumerable.Empty<T>();
|
|
int startIndex = (currentPageNumber - 1) * pageSize;
|
int endIndex = Math.Min(startIndex + pageSize, source.Count());
|
|
return source.Skip(startIndex).Take(endIndex - startIndex);
|
}
|
#endregion
|
|
private void pagerToolsControl_paging_PageCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
DataBinding(m_pagination);
|
}
|
|
private void pagerToolsControl_paging_OnePageRowCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
m_pagination.PageSize = e.PagerNum;
|
DataBinding(m_pagination);
|
}
|
|
private void DataGridCell_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
{
|
|
}
|
|
private void btnRemark_Click(object sender, RoutedEventArgs e)
|
{
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string index = (string)btn.Tag;
|
Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index);
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
ExperimentRemark saveDlg = new ExperimentRemark();
|
saveDlg.experimentId = index;
|
saveDlg.experimentName = experiment.experimentfile;
|
saveDlg.remark = experiment.remark;
|
saveDlg.closeEvent += SubWnd_closeEvent;
|
saveDlg.saveEvent += SaveDlg_saveEvent;
|
grid.Children.Add(saveDlg);
|
}
|
}
|
|
#region 编辑——保存委托事件
|
private void SaveDlg_saveEvent(object sender, EventArgs e)
|
{
|
ExperimentRemark saveDlg = (ExperimentRemark)sender;
|
UpdateRemark(saveDlg.experimentId, saveDlg.experimentRemark);
|
BindingTestListCollection();
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
UIElement element = sender as UIElement;
|
grid.Children.Remove(element);
|
|
}
|
#endregion
|
|
public int UpdateRemark(string experimentId, string remark)
|
{
|
int result = 0;
|
//判断是否存在同名的,如果不存在则添加,如果存在则更新
|
Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(experimentId);
|
|
if (experiment.experimentid != "")
|
{
|
try
|
{
|
experiment.remark = remark;
|
|
int iResult = ExperimentListDB.UpdateExperiment(experiment);
|
if (iResult == 1)
|
{
|
result = iResult;
|
}
|
else
|
{
|
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("修改实验时错误:" + ex.ToString());
|
}
|
}
|
return result;
|
}
|
|
private void SubWnd_closeEvent(object sender, EventArgs e)
|
{
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
UIElement element = sender as UIElement;
|
grid.Children.Remove(element);
|
}
|
|
|
private void btnEdit_Click(object sender, RoutedEventArgs e)
|
{
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string index = (string)btn.Tag;
|
//跳转到实验设计并加载选中的实验
|
if (mainWindow != null)
|
{
|
mainWindow.btnTestDesign.IsChecked = true;
|
Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index);
|
mainWindow.tbCaption.Text = Properties.Resources.strXHandler + " - " + experiment.experimentfile;
|
mainWindow.OpenAndLoadMethod(experiment.experimentxmlcontent);
|
|
}
|
}
|
}
|
|
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string index = (string)btn.Tag;
|
Experiment experiment = ExperimentListDB.GetSingleExperimentFromdb(index);
|
experimentList.Remove(experiment);
|
experiment.status = 0;
|
ExperimentListDB.UpdateExperiment(experiment);
|
BindingTestListCollection();
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
}
|
}
|