using System;
using System.Collections.Generic;
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 XCommon.Log;
using XHandler.View.Com;
using XHandler.View.Classes;
using XImagingXhandler.XDAL;
using DataEntity.Share;
using DataEntity.UserManager;
using DataRWDAL.UserManager;
using System.Collections.ObjectModel;
namespace XHandler.View.User
{
///
/// MenuManagement.xaml 的交互逻辑
///
public partial class MenuManagement : UserControl
{
public event EventHandler menuChanged;
ObservableCollection menuList;
MenuTree menuTree = new MenuTree();
public MenuManagement()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
tv.ItemsSource = null;
menuList = new ObservableCollection(MenuInfoDB.GetAllRootMenu());
listboxMenu.ItemsSource = menuList;
GetMenuTree();
tv.ItemsSource = menuTree.Children;
}
private void GetMenuTree()
{
try
{
ObservableCollection methods = MethodDB.GetMethodFromdb(Shared.SoftwareInformation.software_device_number);
ObservableCollection group = MethodGroupDB.GetMethodGroupFromdb();
foreach (var mg in group)
{
MenuTree menu = new MenuTree();
menu.Id = mg.id;
menu.Name = mg.method_group_name;
menu.IsExpanded = true;
menu.ImgDefault = "";
var list = methods.Where(s => s.method_group_id == mg.method_group_id).ToList();
foreach (var item in list)
{
MenuTree mt = new MenuTree();
mt.Id = item.method_id;
mt.Name = item.method_name;
mt.Level = item.method_group_id;
mt.ImgDefault = item.method_ico;
mt.IsExpanded = false;
if (item.method_status == 1)
mt.IsChecked = true;
else
mt.IsChecked = false;
menu.Children.Add(mt);
}
menuTree.Children.Add(menu);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("btnUp_Click error ", ex);
}
}
private void btnUp_Click(object sender, RoutedEventArgs e)
{
try
{
if (listboxMenu.SelectedItem == null)
return;
int index = listboxMenu.SelectedIndex;
menuList.Move(index, index - 1);
listboxMenu.SelectedIndex = index - 1;
listboxMenu.Focus();
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("btnUp_Click error ", ex);
}
}
private void btnDown_Click(object sender, RoutedEventArgs e)
{
try
{
if (listboxMenu.SelectedItem == null)
return;
int index = listboxMenu.SelectedIndex;
menuList.Move(index, index + 1);
listboxMenu.SelectedIndex = index + 1;
listboxMenu.Focus();
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("btnDown_Click error ", ex);
}
}
private void btnMenuSave_Click(object sender, RoutedEventArgs e)
{
try
{
for (int i = 0; i < menuList.Count; i++)
{
MenuInfoModel menu = menuList[i];
menu.Sequence = i + 1;
MenuInfoDB.Update(menu);
}
menuChanged?.Invoke(this, new EventArgs());
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("btnMenuSave_Click error ", ex);
}
}
private void btnCommandSave_Click(object sender, RoutedEventArgs e)
{
try
{
foreach (var menu in menuTree.Children)
{
foreach (var item in menu.Children)
{
Method method = new Method();
method.method_id = item.Id;
method.method_status = item.IsChecked == true ? 1 : 0;
MethodDB.UpdateMethodIntodb(method);
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("btnCommandSave_Click error ", ex);
}
}
private void listboxCommand_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
try
{
ItemsControl items = (ItemsControl)sender;
ScrollViewer scroll = XHandler.Class.Utilities.FindVisualChild(items);
if (scroll != null)
{
scroll.ScrollToVerticalOffset(scroll.VerticalOffset - e.Delta);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("listboxCommand_PreviewMouseWheel ERROR:", ex);
}
}
}
}