source: trunk/CrypPlugins/Wizard/WizardControl.xaml.cs @ 2284

Last change on this file since 2284 was 2284, checked in by sauer, 11 years ago

added preliminary configuration XML files for the wizard

File size: 3.3 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows;
6using System.Windows.Controls;
7using System.Windows.Data;
8using System.Windows.Documents;
9using System.Windows.Input;
10using System.Windows.Media;
11using System.Windows.Media.Imaging;
12using System.Windows.Navigation;
13using System.Windows.Shapes;
14using System.Xml.Linq;
15using System.IO;
16using System.Reflection;
17
18namespace Wizard
19{
20    /// <summary>
21    /// Interaction logic for WizardControl.xaml
22    /// </summary>
23    public partial class WizardControl : UserControl
24    {
25
26        private string culture = System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
27        private const string configXMLPath = "Wizard.Config.wizard.config.start.xml";
28        private XElement wizardConfigXML;
29
30        public WizardControl()
31        {
32            try
33            {
34                // DEBUG HELP string[] names = this.GetType().Assembly.GetManifestResourceNames();
35
36                Stream fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(configXMLPath);
37                XElement xml = XElement.Load(fileStream);
38                GenerateXML(xml);
39            }
40            catch (Exception)
41            {
42               
43            }
44            InitializeComponent();
45        }
46
47        // Generate the full XML tree for the wizard
48        private void GenerateXML(XElement xml)
49        {
50            try
51            {
52                //find all nested subcategories and add them to the tree
53                IEnumerable<XElement> categories = xml.Elements("category");
54                if (categories.Any())
55                {
56                    foreach (XElement cat in categories)
57                    {
58                        IEnumerable<XElement> files = cat.Elements("file");
59                        if (files.Any())
60                        {
61                            foreach (XElement element in files)
62                            {
63                                XAttribute att = element.Attribute("resource");
64                                if (att != null)
65                                {
66                                    string path = "Wizard.Config." + att.Value;
67                                    Stream fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(path);
68                                    XElement sub = XElement.Load(fileStream);
69                                    IEnumerable<XElement> elems = sub.Elements();
70                                    if (elems.Any())
71                                    {
72                                        foreach (XElement ele in elems)
73                                        {
74                                            cat.Add(ele);
75                                        } 
76                                    }
77                                }
78                            }
79                        }
80
81                        GenerateXML(cat);
82
83                    } 
84                }
85
86                wizardConfigXML = xml;
87
88            }
89            catch (Exception)
90            {
91               
92            }
93        }
94
95        private void GetCategoryList()
96        {
97
98        }
99
100    }
101}
Note: See TracBrowser for help on using the repository browser.