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;
|
|
/// <summary>
|
/// Interaction logic for UserControl1.xaml
|
/// </summary>
|
public partial class SeqEditor : PluginControl
|
{
|
public SeqEditor()
|
{
|
InitializeComponent();
|
CbFilter.ItemsSource = (IEnumerable<MultiComboBoxData>)
|
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);
|
}
|
|
/// <summary>
|
/// Ê÷Êý¾Ýչʾ¹ýÂË
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void CollectionViewSource_Filter(object sender, FilterEventArgs e)
|
{
|
if (e.Item is TreeItemData data)
|
{
|
e.Accepted = data.IsVisible;
|
}
|
}
|
|
// <summary>
|
/// Ê÷Õ¹¿ª/¹Ø±Õʼþ
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
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 ? "Ò»¼üÊÕÆð" : "Ò»¼üÕ¹¿ª";
|
}
|
}
|