コード例 #1
0
        /// <summary>
        /// 复制控件
        /// </summary>
        /// <param name="newName">新的名称</param>
        /// <param name="control">控件</param>
        /// <param name="parent">父控件</param>
        public void copyControl(String newName, FCView control, FCView parent)
        {
            XmlNode      parentNode = m_nodes[parent];
            XmlNode      newNode    = m_nodes[control].Clone();
            XmlAttribute xmlAtr     = null;

            //检查是否存在属性
            foreach (XmlAttribute atr in newNode.Attributes)
            {
                if (atr.Name.ToLower() == "name")
                {
                    xmlAtr = atr;
                    break;
                }
            }
            if (xmlAtr == null)
            {
                xmlAtr = m_xmlDoc.CreateAttribute("name");
                newNode.Attributes.Append(xmlAtr);
            }
            xmlAtr.Value = newName;
            parentNode.AppendChild(newNode);
            FCView newControl = createControl(newNode, newNode.Name.ToLower());

            setAttributesBefore(newNode, newControl);
            parent.addControl(newControl);
            setAttributesAfter(newNode, newControl);
            m_controls.Add(newControl);
            onAddControl(newControl, newNode);
        }
コード例 #2
0
 /// <summary>
 /// 添加控件到XML中
 /// </summary>
 /// <param name="control">控件</param>
 /// <param name="parent">父控件</param>
 public void addControl(FCView control, FCView parent)
 {
     if (m_nodes.ContainsKey(control))
     {
         XmlNode node = m_nodes[control];
         if (m_nodes.ContainsKey(parent))
         {
             XmlNode parentNode = m_nodes[parent];
             parentNode.AppendChild(node);
             parent.addControl(control);
             m_controls.Add(control);
             onAddControl(control, node);
         }
     }
 }
コード例 #3
0
        /// <summary>
        /// 读取XML
        /// </summary>
        /// <param name="node">XML节点</param>
        /// <param name="parent">父控件</param>
        public virtual FCView readNode(XmlNode node, FCView parent)
        {
            String type    = node.Name.ToLower();
            FCView control = createControl(node, type);

            if (control != null)
            {
                control.Native = m_native;
                if (parent != null)
                {
                    parent.addControl(control);
                }
                else
                {
                    m_native.addControl(control);
                }
                //前设置属性
                setAttributesBefore(node, control);
                if (control is FCSplitLayoutDiv)
                {
                    //创建分割层
                    createSplitLayoutSubProperty(node, control as FCSplitLayoutDiv);
                }
                else if (control is FCChart)
                {
                    createChartSubProperty(node, control as FCChart);
                }
                else if (control is FCTableLayoutDiv)
                {
                    createTableLayoutSubProperty(node, control as FCTableLayoutDiv);
                }
                else
                {
                    //加载子节点
                    readChildNodes(node, control);
                }
                //后设置属性
                setAttributesAfter(node, control);
                control.update();
                onAddControl(control, node);
            }
            else
            {
                //创建子属性
                createSubProperty(node, parent);
            }
            return(control);
        }
コード例 #4
0
 /// <summary>
 /// 创建控件到XML中
 /// </summary>
 /// <param name="type">类型</param>
 /// <param name="parent">父控件</param>
 public FCView createControl(String type, FCView parent)
 {
     if (m_nodes.ContainsKey(parent))
     {
         String lowerType  = type.ToLower();
         String createType = "";
         if (lowerType == "grid")
         {
             lowerType = "table";
         }
         else if (lowerType == "splitlayoutdiv")
         {
             lowerType  = "div";
             createType = "splitlayout";
         }
         else if (lowerType == "tablelayoutdiv")
         {
             lowerType  = "div";
             createType = "tablelayout";
         }
         else if (lowerType == "layoutdiv")
         {
             lowerType  = "div";
             createType = "layout";
         }
         else if (lowerType == "groupbox")
         {
             lowerType  = "div";
             createType = "groupbox";
         }
         else if (lowerType == "tabcontrol")
         {
             lowerType  = "div";
             createType = "tabcontrol";
         }
         else if (lowerType == "tabpage")
         {
             lowerType  = "div";
             createType = "tabpage";
         }
         else if (lowerType == "button")
         {
             lowerType  = "input";
             createType = "button";
         }
         else if (lowerType == "checkbox")
         {
             lowerType  = "input";
             createType = "checkbox";
         }
         else if (lowerType == "datepicker")
         {
             lowerType  = "input";
             createType = "datetime";
         }
         else if (lowerType == "radiobutton")
         {
             lowerType  = "input";
             createType = "radio";
         }
         else if (lowerType == "spin")
         {
             lowerType  = "input";
             createType = "range";
         }
         else if (lowerType == "textbox")
         {
             lowerType  = "input";
             createType = "text";
         }
         else if (lowerType == "combobox")
         {
             lowerType = "select";
         }
         else if (lowerType == "linklabel")
         {
             lowerType = "a";
         }
         XmlNode parentNode = m_nodes[parent];
         XmlNode node       = m_xmlDoc.CreateNode(XmlNodeType.Element, lowerType, "");
         parentNode.AppendChild(node);
         if (createType != null && createType.Length > 0)
         {
             XmlAttribute xmlAtr = m_xmlDoc.CreateAttribute("type");
             xmlAtr.Value = createType;
             node.Attributes.Append(xmlAtr);
         }
         FCView control = createControl(node, type);
         parent.addControl(control);
         m_nodes[control] = node;
         onAddControl(control, node);
         return(control);
     }
     return(null);
 }