Example #1
0
        //Загрузка библиотеки нодов и постройка списка
        private void LoadNodesLibrary()
        {
            Sheduler.Start();
            NodeLibrary.InitializeLibrary();

            var categories = NodeLibrary.Nodes.Select(x => x.Category).Distinct().ToList();

            foreach (var cat in categories)
            {
                var incCat = cat.Split(new char[] { '/' });

                var          tvs    = NodesPanel.Items.OfType <TreeViewItem>().Where(x => ((string)x.Header) == incCat[0]);
                var          asdq   = NodesPanel.Items.OfType <TreeViewItem>();
                TreeViewItem tvitem = tvs.Count() > 0 ? tvs.First() : null;

                if (tvitem == null)
                {
                    tvitem = new TreeViewItem()
                    {
                        Header = incCat[0], Margin = new Thickness(0, 5, 10, 5)
                    };
                    NodesPanel.Items.Add(tvitem);
                }


                var nodes = NodeLibrary.Nodes.Where(x => x.Category == incCat[0]);
                foreach (var node in nodes)
                {
                    if (tvitem.Items.OfType <Label>().Where(x => ((string)x.Content) == node.NCName).Count() != 0)
                    {
                        continue;
                    }
                    tvitem.Items.Add(new Label()
                    {
                        Content = node.NCName, Margin = new Thickness(0, 0, 10, 0)
                    });
                }

                string path   = incCat[0];
                var    preTvi = tvitem;

                for (int i = 1; i < incCat.Length; i++)
                {
                    path += "/" + incCat[i];
                    var          tvis = preTvi.Items.OfType <TreeViewItem>().Where(x => ((string)x.Header) == path);
                    TreeViewItem tvi  = tvis.Count() > 0 ? tvis.First() : null;
                    if (tvi == null)
                    {
                        tvi = new TreeViewItem()
                        {
                            Header = incCat[i], Margin = new Thickness(0, 5, 10, 5)
                        };
                        preTvi.Items.Add(tvi);
                    }

                    var catNodes = NodeLibrary.Nodes.Where(x => x.Category == path);
                    foreach (var node in catNodes)
                    {
                        if (tvi.Items.OfType <Label>().Where(x => (string)x.Content == node.NCName).Count() != 0)
                        {
                            continue;
                        }
                        tvi.Items.Add(new Label()
                        {
                            Content = node.NCName, Margin = new Thickness(0, 0, 10, 0)
                        });
                    }

                    preTvi = tvi;
                }
            }
        }
Example #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var a = new Sheduler();

            a.Start(target.Text);
        }