Exemplo n.º 1
0
        public void UpdateListPageEl(UIBaseEl new_el = null)
        {
            // Загружает информацию напрямую из сохранённой страницы
            //

            if (list_page_name.SelectedIndex == -1)
            {
                return;
            }

            APage editPage = pageList[list_page_name.SelectedIndex];

            elementsPageStackPanel.Children.Clear();

            if (new_el != null)
            {
                editPage.Elements.Add(new_el.CompileElement());
            }

            UIControlList.Clear();

            foreach (var el in editPage.Elements)
            {
                AbstrUIBase UIel = PageElCenter.TryGenUiControl(el);

                if (UIel != null)
                {
                    AppendNewUIel(UIel);
                }
            }

            curPage = editPage;

            SoftUpdate();
        }
        static public void WritePageListToXML(List <APage> pageList, string fileName)
        {
            XmlDocument xdd = new XmlDocument();

            var xmlDeclaration = xdd.CreateXmlDeclaration("1.0", "UTF-8", null);
            var root           = xdd.CreateElement(
                (XMLDefines.XMLTag.Pages).ToString());

            xdd.AppendChild(xmlDeclaration);
            xdd.AppendChild(root);

            if (pageList.Count > 0)
            {
                foreach (var page in pageList)
                {
                    // Создаём нод для описания страницы
                    var xmlPage = xdd.CreateElement(
                        (XMLDefines.XMLTag.Page).ToString());

                    // Аттрибут для описания имени и ID
                    var attrName =
                        xdd.CreateAttribute(XMLDefines.XMLPageAttr.Name.ToString());
                    var attrID =
                        xdd.CreateAttribute(XMLDefines.XMLPageAttr.ID.ToString());

                    attrName.Value = page.Name;
                    attrID.Value   = page.ID.ToString();

                    xmlPage.Attributes.Append(attrName);
                    xmlPage.Attributes.Append(attrID);

                    if (page.Elements.Count > 0)
                    {
                        foreach (var pageEl in page.Elements)
                        {
                            var xmlEl = PageElCenter.TryWriteToXml(pageEl, xdd);

                            if (xmlEl != null)
                            {
                                xmlPage.AppendChild(xmlEl);
                            }
                        }
                    }

                    root.AppendChild(xmlPage);
                }
            }

            try
            {
                xdd.Save(fileName);
            }
            catch
            { }
        }
Exemplo n.º 3
0
        public void MenuItemAddPageEl_Click(object sender, RoutedEventArgs e)
        {
            string nm = ((MenuItem)sender).Header.ToString();

            foreach (KeyValuePair <int, string> kv in PageElCenter.getDict())
            {
                if (nm == kv.Value)
                {
                    CreateNewUIel(kv.Key);
                    SoftUpdate();
                    break;
                }
            }
        }
Exemplo n.º 4
0
        //
        // Context Menu events
        //

        // Context Menu: New Element
        private void MenuItemAdd_MouseEnter(object sender, RoutedEventArgs e)
        {
            List <MenuItem> lm = new List <MenuItem>();

            foreach (KeyValuePair <int, string> kv in PageElCenter.getDict())
            {
                MenuItem mi = new MenuItem();

                mi.Header = kv.Value;
                mi.Click += MenuItemAddPageEl_Click;

                lm.Add(mi);
            }

            ((MenuItem)sender).ItemsSource = lm;
        }
Exemplo n.º 5
0
        public void MenuItemAddPageEl_Click(object sender, RoutedEventArgs e)
        {
            string nm = ((MenuItem)sender).Header.ToString();

            foreach (KeyValuePair <int, string> kv in PageElCenter.getDict())
            {
                if (nm == kv.Value)
                {
                    AbstrUIBase UIel = PageElCenter.TryGenUiControl(kv.Key);
                    if (UIel != null)
                    {
                        AppendNewUIel(UIel);
                        SoftUpdate();
                        break;
                    }
                }
            }
        }
        static public List <APage> LoadPageListFromXML(string fileName)
        {
            XmlDocument  xdd      = new XmlDocument();
            List <APage> pageList = new List <APage>();

            try
            {
                xdd.Load(fileName);

                XmlNode root = xdd.DocumentElement;

                if (root.HasChildNodes)
                {
                    foreach (XmlNode nd_page in root)
                    {
                        // Просмотр записанных страниц
                        // Чтение имени и ID страницы
                        XmlNode ndName = nd_page.Attributes.GetNamedItem(XMLDefines.XMLPageAttr.Name);
                        XmlNode ndID   = nd_page.Attributes.GetNamedItem(XMLDefines.XMLPageAttr.ID);

                        List <AbstrPageEl> page_elements = new List <AbstrPageEl>();
                        foreach (XmlNode nd_el in nd_page)
                        {
                            if (nd_el.Name == XMLDefines.XMLTag.PageEl)
                            {
                                // Собираем элемент страницы по шаблону
                                //

                                int type_ep = int.Parse(
                                    nd_el.Attributes.GetNamedItem(
                                        XMLDefines.XMLBaseElAttr.TypeEl
                                        ).Value);

                                PageEl pl = (PageEl)PageElCenter.TryLoadFromXml(type_ep, nd_el);

                                if (pl != null)
                                {
                                    page_elements.Add(pl);
                                }
                            }
                        }

                        APage page = new APage(
                            ndName.Value,
                            int.Parse(ndID.Value),
                            page_elements
                            );
                        pageList.Add(page);
                    }
                }
            }
            catch (System.IO.FileNotFoundException ex)
            {
                MessageBox.Show("В директории не неайден существующий файл с настройками, поэтому будет создан новый.");
                var ls = new List <APage>();
                ls.Add(new APage());
                Writer.WritePageListToXML(ls, fileName);
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
            return(pageList);
        }
Exemplo n.º 7
0
        private void CreateNewUIel(int ind)
        {
            AbstrUIBase UIel = PageElCenter.TryGenUiControl(ind);

            AddUItoList(UIel);
        }