Exemple #1
0
 /// <summary>
 /// 注册所有控件类型
 ///
 /// 后面会通过该类型创建对象
 /// </summary>
 void initInstance()
 {
     SVNameToObject.addInstance(typeof(SVButton));
     SVNameToObject.addInstance(typeof(SVLabel));
     SVNameToObject.addInstance(typeof(SVAnalog));
     SVNameToObject.addInstance(typeof(SVBinary));
     SVNameToObject.addInstance(typeof(SVCurve));
     SVNameToObject.addInstance(typeof(SVGif));
     SVNameToObject.addInstance(typeof(SVIcon));
     SVNameToObject.addInstance(typeof(SVLine));
     SVNameToObject.addInstance(typeof(SVHeartbeat));
 }
Exemple #2
0
        /*
         * 通过XML文件来加载页面控件对象
         *
         * xml - 一个页面对应的xml对象
         * isCreate - true: 创建新的ID号
         *            false: 直接使用文件中的ID号
         * */
        public void loadXML(SVXml xml, Boolean isCreate = false)
        {
            _redoUndo.setEnabled(false);

            XmlElement page = xml.CurrentElement;

            if (isCreate)
            {
                var instance = SVUniqueID.instance();
                _attrib.id = instance.newUniqueID();
                instance.saveFile();
            }
            else
            {
                _attrib.id = UInt16.Parse(page.GetAttribute("ID"));
            }

            try
            {
                XmlElement width = xml.select("Width");
                _attrib.Width = int.Parse(width.InnerText);

                XmlElement height = xml.select("Height");
                _attrib.Height = int.Parse(height.InnerText);

                XmlElement back = xml.select("Backcolor");
                _attrib.BackColor = Color.FromArgb(int.Parse(back.InnerText));

                XmlElement mainPage = xml.select("MainPage");
                _attrib.IsMainPage = Boolean.Parse(mainPage.InnerText);
                if (_attrib.IsMainPage)
                {
                    setToMainPageWidget();
                }

                XmlElement backGroundType = xml.select("BackGroundType");
                _attrib.BackGroundType = Byte.Parse(backGroundType.InnerText);

                XmlElement picShowName = xml.select("PicShowName");
                _attrib.PicIconData.ShowName = picShowName.InnerText;

                XmlElement picFile = xml.select("PicFile");
                _attrib.PicIconData.ImageFileName = picFile.InnerText;


                XmlElement alignMent = xml.select("alignment");
                _attrib.IsAlignment = Byte.Parse(alignMent.InnerText);
            }
            catch (Exception)
            {
            }

            //读取当前页面的所有子控件
            List <XmlElement> listNodes = xml.selectChilds();

            foreach (XmlElement node in listNodes)
            {
                SVPanel svPanel = SVNameToObject.getInstance(node.Name) as SVPanel;
                if (svPanel == null)
                {
                    continue;
                }

                svPanel.setRedoUndoObject(_redoUndo);
                svPanel.setParentID(_attrib.id);

                svPanel.MouseDown += new MouseEventHandler((sder, ev) =>
                {
                    MouseSelectEvent(sder, ev);
                });

                svPanel.MouseUp += new MouseEventHandler((sder, ev) =>
                {
                    MouseSelectEvent(sder, ev);
                });

                this.Controls.Add(svPanel);
                xml.CurrentElement = node;
                svPanel.loadXML(xml, isCreate);
                svPanel.refreshPropertyToPanel();
            }

            _redoUndo.setEnabled(true);
        }