管道基础大数据平台系统开发-【CS】-ExportMap
11
13693261870
2024-09-03 e05f48fc7ba368d3561d8702b18d65ee021b1ae2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
using DataLoader.CS;
using DataLoader.Model;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using CefSharp.Callback;
using System.Windows.Media;
 
namespace DataLoader
{
    public partial class ResWin : Window
    {
        private TreeItem items = new TreeItem();
 
        private List<SysDir> dirs;
 
        private CheckBox cbLast;
 
        public ResWin()
        {
            InitializeComponent();
        }
 
        private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            //
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            dirs = DBHelper.GetDirList();
            if (null == dirs || 0 == dirs.Count) return;
 
            FindTreeItems(dirs, items, 0);
            this.tvResTree.ItemsSource = items.Child;
            //SetCheckedBox();
        }
 
        private void FindTreeItems(List<SysDir> list, TreeItem ti, int pid)
        {
            if (ti.Child == null) ti.Child = new ObservableCollection<TreeItem>();
            foreach (SysDir dir in list)
            {
                if (pid == dir.pid)
                {
                    TreeItem item = new TreeItem();
                    item.ID = dir.id;
                    item.Name = dir.name;
                    item.FullName = dir.fullName;
                    item.IsExpanded = true;
                    item.IsChecked = CommonProp.dirId == dir.id;
                    ti.Child.Add(item);
 
                    FindTreeItems(list, item, dir.id);
                }
            }
        }
 
        private void SetCheckedBox()
        {
            if (CommonProp.dirId == 0) return;
 
            foreach (var item in this.tvResTree.Items)
            {
                TreeViewItem tvItem = this.tvResTree.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem;
                if (null == tvItem) continue;  //((System.Windows.Controls.Panel)tvItem.VisualParent).Children
 
                for (int i = 0, c = VisualTreeHelper.GetChildrenCount(tvItem); i < c; i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(this.tvResTree, i);
                    if (child is CheckBox)
                    {
                        CheckBox cb = child as CheckBox;
                        if (cb.IsChecked == true)
                        {
                            this.cbLast = cb;
                            return;
                        }
                    }
                }
            }
        }
 
        private void CheckBox_Click(object sender, RoutedEventArgs e)
        {
            CheckBox cb = sender as CheckBox;
            if (cb.IsChecked == true)
            {
                if (null != this.cbLast) this.cbLast.IsChecked = false;
                this.cbLast = cb;
            }
            else
            {
                this.cbLast = null;
            }
        }
 
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            SysDir dir = null;
            if (this.cbLast != null)
            {
                CommonProp.dirId = int.Parse(this.cbLast.Tag.ToString());
                dir = (from d in dirs where d.id == CommonProp.dirId select d).First<SysDir>();
            }
 
            this.Hide();
            CommonProp.Owner.SetRes(null == dir ? null : dir.code, null == dir ? null : dir.fullName);
            e.Cancel = true;
        }
    }
}