using Eplan.EplApi.MasterData; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; 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 KPlan.Forms.Bean; using KPlan.Util; namespace KPlan.Forms { /// /// Interaction logic for Config_Classification.xaml /// public partial class Config_Classification : UserControl { private ObservableCollection class_config = new ObservableCollection(); public Config_Classification() { InitializeComponent(); this.table_Class.ItemsSource = class_config; } public void LoadPartGroups() { EPlanTreeItem tree_home = new EPlanTreeItem("Parts"); tree_Part_Groups.Items.Add(tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Electric, tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Mechanic, tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Fluid, tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Process, tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Invaild, tree_home); Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup.Undefined, tree_home); this.Dispatcher.Invoke(new Action(delegate { tree_home.IsExpanded = true; })); } private void Init_TopGroup(MDPartsDatabaseItem.Enums.ProductTopGroup topGroup, EPlanTreeItem tree_home) { EPlanTreeItem tree_TopGroup = new EPlanTreeItem(topGroup); //KUtil.Log(tree_TopGroup.Header.ToString()); tree_home.Items.Add(tree_TopGroup); //加载Group MDPartsDatabaseItem.Enums.ProductGroup[] groups = MDPartsDatabaseItem.GetAvailableProductGroups(topGroup); for (int i = 0; i < groups.Length; i++) { MDPartsDatabaseItem.Enums.ProductGroup group = groups[i]; EPlanTreeItem tree_Group = new EPlanTreeItem(topGroup,group); tree_TopGroup.Items.Add(tree_Group); } tree_TopGroup.Items.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); tree_TopGroup.Items.Refresh(); } public void SaveConfiguration() { table_Class.Items.Refresh(); KUtil.ClearConfigSection(KConfigure.PART_SYNC_CLASSIFICATION); //eplan to tc Dictionary classMap = new Dictionary(); for (int i = 0; i < class_config.Count; i++) { PartSyncClassConfigBean bean = class_config[i]; //KUtil.Log(bean.from+"->"+bean.to); if (!KUtil.IsEmpty(bean.to) && !KUtil.IsEmpty(bean.from)) { classMap.Add(bean.from, bean.to); } } KUtil.SetConfigValue(KConfigure.PART_SYNC_CLASSIFICATION, classMap); } public void LoadConfiguration() { Dictionary eplan_to_tc = KUtil.GetConfigValue(KConfigure.PART_SYNC_CLASSIFICATION); foreach (string key in eplan_to_tc.Keys) { string val = eplan_to_tc[key]; //KUtil.Log(key + "->" + val); if (!KUtil.IsEmpty(key) && !KUtil.IsEmpty(val)) { PartSyncClassConfigBean bean = new PartSyncClassConfigBean() { from = key, to = val }; class_config.Add(bean); } } } private void Tree_Part_Groups_MouseDoubleClick(object sender, MouseButtonEventArgs e) { EPlanTreeItem selectedItem = tree_Part_Groups.SelectedItem as EPlanTreeItem; if (selectedItem == null || !selectedItem.isProductGroup) { return; } PartSyncClassConfigBean bean = new PartSyncClassConfigBean() { from = selectedItem.productTopGroup.ToString() + "." + selectedItem.productGroup.ToString() }; if (!class_config.Contains(bean)) { class_config.Add(bean); } table_Class.Items.Refresh(); table_Class.SelectedItem = bean; table_Class.ScrollIntoView(bean); } } }