using HMI.Base;
using HMI.UI;
using Panuon.WPF.UI;
using Plugin.SeqEditor.Entity;
using Plugin.SeqEditor.Util;
using Plugin.SeqEditor.ViewModel;
using System.Web.UI.WebControls;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
namespace Plugin.SeqEditor;
///
/// Interaction logic for UserControl1.xaml
///
public partial class SeqEditor : PluginControl
{
public SeqEditor()
{
InitializeComponent();
CbFilter.ItemsSource = (IEnumerable)
new MultiComboBoxDataConverter().Convert(FilterTypeData.ItemSource,
null, null, null
);
}
public override void InitFinish()
{
this.DataContext = new SeqEditorViewModel(this, log);
}
public void BackgroundAction(Action action, string message)
{
new MaskWindow((WindowX)Window.GetWindow(this),
(win) =>
{
action?.Invoke();
}
).Info(message);
}
///
/// Ê÷Êý¾Ýչʾ¹ýÂË
///
///
///
private void CollectionViewSource_Filter(object sender, FilterEventArgs e)
{
if (e.Item is TreeItemData data)
{
e.Accepted = data.IsVisible;
}
}
//
/// Ê÷Õ¹¿ª/¹Ø±Õʼþ
///
///
///
private void treeDataGrid_ExpandedChange(object sender, bool e)
{
//CollectionViewSource cvs = this.Resources["TreeGridFilter"] as CollectionViewSource;
//cvs?.View.Refresh();
}
private void treeDataGrid_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
e.Handled = false;
}
private void Expander_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
e.Handled = false;
}
private void TreeListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
//var treeListView = sender as TreeListView;
//var columns = treeListView.Columns;
//var width = treeListView.ActualWidth;
//columns[0].Width = columns[0].Width + (width - columns[0].Width - columns[1].Width - columns[2].Width - columns[3].Width);
//foreach (var col in columns) {
// col.Width =
//}
}
public void HandleStatus(ItemContainerGenerator cg, StepUI step, bool status)
{
DependencyObject dObject = cg.ContainerFromItem(step);
if (status == true)
{
if (dObject is TreeViewItem item)
{
if (step.Children != null && step.Children.Count > 0)
{
if (item.IsExpanded != status)
{
item.IsExpanded = status;
item.UpdateLayout();
}
foreach (var child in step.Children)
{
HandleStatus(item.ItemContainerGenerator, child, status);
}
}
}
}
else
{
if (dObject is TreeViewItem item)
{
if (step.Children != null && step.Children.Count > 0)
{
foreach (var child in step.Children)
{
HandleStatus(item.ItemContainerGenerator, child, status);
}
item.IsExpanded = status;
}
}
}
}
public bool expandAll = false;
private void Button_Click(object sender, RoutedEventArgs e)
{
treeList.UpdateLayout();
foreach (var item in treeList.Items)
{
if (item is StepUI step)
{
HandleStatus(treeList.ItemContainerGenerator, step, !expandAll);
}
}
expandAll = !expandAll;
//treeAll.Content = expandAll ? "Ò»¼üÊÕÆð" : "Ò»¼üÕ¹¿ª";
}
}