[RTL]
[reactos.git] / reactos / tools / sysgen / RosBuilder / Controls / ModuleFiltersListView.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Text;
7 using System.Windows.Forms;
8
9 using SysGen.RBuild.Framework;
10 using SysGen.BuildEngine;
11 using SysGen.BuildEngine.Tasks;
12
13 namespace TriStateTreeViewDemo
14 {
15 public class ModuleFiltersListViewItem : ListViewItem
16 {
17 private ModuleFilter m_ModuleFilter = null;
18
19 public ModuleFiltersListViewItem(ModuleFilter filter)
20 {
21 m_ModuleFilter = filter;
22
23 Text = filter.Name;
24 SubItems.Add(filter.Modules.Count.ToString());
25 }
26
27 public ModuleFilter Filter
28 {
29 get { return m_ModuleFilter; }
30 }
31 }
32
33 public class ModuleFiltersListView : ListView
34 {
35 private ISysGenDesigner m_SysGenDesigner = null;
36
37 public ModuleFiltersListView()
38 {
39 View = View.Details;
40
41 FullRowSelect = true;
42 CheckBoxes = true;
43
44 Columns.Add("Name", 200);
45 Columns.Add("Modules", 100);
46 }
47
48 public void SetCatalog(ISysGenDesigner sysGenDesigner)
49 {
50 //Set the software catalog
51 m_SysGenDesigner = sysGenDesigner;
52 //m_SysGenDesigner.PlatformController.PlatformModulesUpdated += new EventHandler(PlatformController_PlatformModulesUpdated);
53
54 foreach (ModuleFilter filter in sysGenDesigner.ModuleFilterController.ModuleFilters)
55 {
56 Items.Add(new ModuleFiltersListViewItem(filter));
57 }
58 }
59
60 //protected override void OnItemCheck(ItemCheckEventArgs ice)
61 //{
62 // base.OnItemCheck(ice);
63 //}
64
65 //protected override void OnItemChecked(ItemCheckedEventArgs e)
66 //{
67 // base.OnItemChecked(e);
68 //}
69
70 private void PlatformController_PlatformModulesUpdated(object sender, EventArgs e)
71 {
72 BeginUpdate();
73
74 foreach (ModuleFiltersListViewItem filterItem in Items)
75 {
76 foreach (RBuildModule module in m_SysGenDesigner.ProjectController.Project.Platform.Modules)
77 {
78 if (!filterItem.Filter.Modules.Contains(module))
79 {
80 filterItem.Checked = false;
81 break;
82 }
83 }
84
85 filterItem.Checked = true;
86 }
87
88 EndUpdate();
89 }
90 }
91 }