using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using DTS.Common.Controls;
using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList;
using DTS.Common.Utils;
// ReSharper disable CheckNamespace
namespace HardwareList
{
///
///
/// Interaction logic for HardwareListSelectView.xaml
///
public partial class HardwareListSelectView : IHardwareListSelectView
{
public HardwareListSelectView()
{
InitializeComponent();
}
public void InitializeColumns(bool bSteamingTest)
{
var view = (GridView)LvHardware.View;
var calDateIndex = view.Columns.IndexOf(CalDateColumn);
if (calDateIndex < 0) { calDateIndex = 0; }
if (bSteamingTest)
{
AddColumn(view, DSPStreamingColumn, calDateIndex - 1);
}
else
{
RemoveColumn(view, DSPStreamingColumn);
}
}
private void AddColumn(GridView view, GridViewColumn column, int index)
{
if (!view.Columns.Contains(column)) { view.Columns.Insert(index, column); }
}
private void RemoveColumn(GridView view, GridViewColumn column)
{
if (view.Columns.Contains(column)) { view.Columns.Remove(column); }
}
private void ListViewHeader_Click(object sender, System.Windows.RoutedEventArgs e)
{
var colHeader = (GridViewColumnHeader)e.OriginalSource;
var viewModel = (IHardwareListViewModel)colHeader.DataContext;
viewModel.Sort(colHeader.Tag, true);
}
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
{
var searchTerm = (string)e.OriginalSource;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
var viewModel = (IHardwareListViewModel)DataContext;
viewModel.Filter(columnTag, searchTerm);
}
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
{
var vm = (IHardwareListViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ??
Utils.FindChild((DependencyObject)e.OriginalSource, null)?.Tag ??
(e.OriginalSource as GridViewColumnHeader)?.Tag;
vm?.Sort(columnTag, true);
}
private void GridViewColumnHeaderCheckBox_OnClick(object sender, RoutedEventArgs e)
{
var viewModel = (IHardwareListViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSelectable)?.Tag ?? Utils.FindChild((DependencyObject)e.OriginalSource, null)?.Tag;
viewModel?.Sort(columnTag, true);
}
private void Included_Click(object sender, RoutedEventArgs e)
{
if (!(DataContext is HardwareListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IHardware hardware)) { return; }
if (vm.ShowCompact)
{
vm.IncludeChildren(hardware);
}
}
private void ChainSampleRateMixed_Clicked(object sender, RoutedEventArgs e)
{
if (!(DataContext is HardwareListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IHardware hardware)) { return; }
vm.RemoveMultipleButton(hardware);
}
}
}