m4n71k0r

Untitled

Oct 24th, 2011
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 14.17 KB | None | 0 0
  1.         public bool XmlSerialize(XmlNode xmlNode)
  2.         {
  3.             bool        serialized  = false;
  4.             XmlDocument xmlDoc      = null;
  5.             XmlElement  elementRoot = null;
  6.             XmlElement  element0    = null;
  7.             XmlElement  element1    = null;
  8.             XmlElement  element2    = null;
  9.             XmlElement  tabElement  = null;
  10.             XmlElement  itemElement = null;
  11.             ToolBoxTab  tab         = null;
  12.             ToolBoxItem item        = null;
  13.             int         iLoop1      = 0;
  14.             int         iLoop2      = 0;
  15.  
  16.             try
  17.             {
  18.                 if(xmlNode is XmlDocument)
  19.                 {
  20.                     xmlDoc = (XmlDocument)xmlNode;
  21.                 }
  22.                 else
  23.                 {
  24.                     xmlDoc = xmlNode.OwnerDocument;
  25.                 }
  26.                 //Main toolbox node and its properties.
  27.                 elementRoot = xmlDoc.CreateElement(Xml_Root_Node);
  28.                 elementRoot.SetAttribute(Xml_Version_Attr,"1");
  29.  
  30.                 element0 = elementRoot;
  31.  
  32.                 xmlNode.AppendChild(element0);
  33.  
  34.                 // Toolbox main config
  35.                 element1 = xmlDoc.CreateElement(Xml_Config_Node);
  36.                 element0.AppendChild(element1);
  37.  
  38.                 element0 = element1;
  39.                 element2 = element1;
  40.  
  41.                 // Tab height
  42.                 element1 = xmlDoc.CreateElement(Xml_TabHeight_Node);
  43.                 element1.AppendChild(xmlDoc.CreateTextNode(_tabHeight.ToString()));
  44.                 element0.AppendChild(element1);
  45.  
  46.                 // Item height
  47.                 element1 = xmlDoc.CreateElement(Xml_ItemHeight_Node);
  48.                 element1.AppendChild(xmlDoc.CreateTextNode(_itemHeight.ToString()));
  49.                 element0.AppendChild(element1);
  50.  
  51.                 // Tab spacing
  52.                 element1 = xmlDoc.CreateElement(Xml_TabSpacing_Node);
  53.                 element1.AppendChild(xmlDoc.CreateTextNode(_tabSpacing.ToString()));
  54.                 element0.AppendChild(element1);
  55.  
  56.                 // Item spacing
  57.                 element1 = xmlDoc.CreateElement(Xml_ItemSpacing_Node);
  58.                 element1.AppendChild(xmlDoc.CreateTextNode(_itemSpacing.ToString()));
  59.                 element0.AppendChild(element1);
  60.  
  61.                 // Layout delay
  62.                 element1 = xmlDoc.CreateElement(Xml_LayoutDelay_Node);
  63.                 element1.AppendChild(xmlDoc.CreateTextNode(_layoutDelay.ToString()));
  64.                 element0.AppendChild(element1);
  65.  
  66.                 // Scroll delay
  67.                 element1 = xmlDoc.CreateElement(Xml_ScrollDelay_Node);
  68.                 element1.AppendChild(xmlDoc.CreateTextNode(_scrollDelay.ToString()));
  69.                 element0.AppendChild(element1);
  70.  
  71.                 // Scroll wait
  72.                 element1 = xmlDoc.CreateElement(Xml_ScrollWait_Node);
  73.                 element1.AppendChild(xmlDoc.CreateTextNode(_scrollWait.ToString()));
  74.                 element0.AppendChild(element1);
  75.  
  76.                 // Background color
  77.                 element1 = xmlDoc.CreateElement(Xml_BgColor_Node);
  78.                 if(!BackColor.IsEmpty)
  79.                 {
  80.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(BackColor)));
  81.                 }
  82.                 element0.AppendChild(element1);
  83.  
  84.                 // Item background color
  85.                 element1 = xmlDoc.CreateElement(Xml_ItemBgColor_Node);
  86.                 if(!_itemBgColor.IsEmpty)
  87.                 {
  88.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemBgColor)));
  89.                 }
  90.                 element0.AppendChild(element1);
  91.  
  92.                 // Item border color
  93.                 element1 = xmlDoc.CreateElement(Xml_ItemBorderColor_Node);
  94.                 if(!_itemBorderColor.IsEmpty)
  95.                 {
  96.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemBorderColor)));
  97.                 }
  98.                 element0.AppendChild(element1);
  99.  
  100.                 // Normal item color
  101.                 element1 = xmlDoc.CreateElement(Xml_NormItemColor_Node);
  102.                 element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemNormalColor)));
  103.                 element0.AppendChild(element1);
  104.  
  105.                 // Selected item color
  106.                 element1 = xmlDoc.CreateElement(Xml_SelItemColor_Node);
  107.                 element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_selectedItemColor)));
  108.                 element0.AppendChild(element1);
  109.  
  110.                 // Hover item color
  111.                 element1 = xmlDoc.CreateElement(Xml_HoverItemColor_Node);
  112.                 element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemHoverColor)));
  113.                 element0.AppendChild(element1);
  114.  
  115.                 // Normal item text color
  116.                 element1 = xmlDoc.CreateElement(Xml_NormItemTxtColor_Node);
  117.                 if(!_itemTxtNormalColor.IsEmpty)
  118.                 {
  119.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtNormalColor)));
  120.                 }
  121.                 element0.AppendChild(element1);
  122.  
  123.                 // Selected item text color
  124.                 element1 = xmlDoc.CreateElement(Xml_SelItemTxtColor_Node);
  125.                 if(!_itemTxtSelectColor.IsEmpty)
  126.                 {
  127.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtSelectColor)));
  128.                 }
  129.                 element0.AppendChild(element1);
  130.  
  131.                 // Hover item text color
  132.                 element1 = xmlDoc.CreateElement(Xml_HoverItemTxtColor_Node);
  133.                 if(!_itemTxtHoverColor.IsEmpty)
  134.                 {
  135.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtHoverColor)));
  136.                 }
  137.                 element0.AppendChild(element1);
  138.  
  139.                 // Normal tab text color
  140.                 element1 = xmlDoc.CreateElement(Xml_NormTabTxtColor_Node);
  141.                 if(!_tabTxtNormalColor.IsEmpty)
  142.                 {
  143.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtNormalColor)));
  144.                 }
  145.                 element0.AppendChild(element1);
  146.  
  147.                 // Selected tab text color
  148.                 element1 = xmlDoc.CreateElement(Xml_SelTabTxtColor_Node);
  149.                 if(!_tabTxtSelectColor.IsEmpty)
  150.                 {
  151.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtSelectColor)));
  152.                 }
  153.                 element0.AppendChild(element1);
  154.  
  155.                 // Hover tab text color
  156.                 element1 = xmlDoc.CreateElement(Xml_HoverTabTxtColor_Node);
  157.                 if(!_tabTxtHoverColor.IsEmpty)
  158.                 {
  159.                     element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtHoverColor)));
  160.                 }
  161.                 element0.AppendChild(element1);
  162.  
  163.                 // "Select All text while renaming" flag
  164.                 element1 = xmlDoc.CreateElement(Xml_SelAllTxtInRename_Node);
  165.                 element1.AppendChild(xmlDoc.CreateTextNode(_selAllTextInRename.ToString().ToLower()));
  166.                 element0.AppendChild(element1);
  167.  
  168.                 // "Show only one item per row" flag
  169.                 element1 = xmlDoc.CreateElement(Xml_ShowOneItemPerRow_Node);
  170.                 element1.AppendChild(xmlDoc.CreateTextNode(_onlyOneItemPerRow.ToString().ToLower()));
  171.                 element0.AppendChild(element1);
  172.  
  173.                 // "Allow swapping by drag drop" flag
  174.                 element1 = xmlDoc.CreateElement(Xml_AllowDragSwap_Node);
  175.                 element1.AppendChild(xmlDoc.CreateTextNode(_allowDragSwap.ToString().ToLower()));
  176.                 element0.AppendChild(element1);
  177.  
  178.                 // "use item color in rename" flag
  179.                 element1 = xmlDoc.CreateElement(Xml_UseItemClrInRen_Node);
  180.                 element1.AppendChild(xmlDoc.CreateTextNode(_useItemClrInRename.ToString().ToLower()));
  181.                 element0.AppendChild(element1);
  182.  
  183.                 // Large item size
  184.                 element1 = xmlDoc.CreateElement(Xml_LargeItemSize_Node);
  185.                 element1.SetAttribute(Xml_Width_Attr ,_largeItemSize.Width.ToString() );
  186.                 element1.SetAttribute(Xml_Height_Attr,_largeItemSize.Height.ToString());
  187.                 element0.AppendChild(element1);
  188.  
  189.                 // Small item size
  190.                 element1 = xmlDoc.CreateElement(Xml_SmallItemSize_Node);
  191.                 element1.SetAttribute(Xml_Width_Attr ,_smallItemSize.Width.ToString() );
  192.                 element1.SetAttribute(Xml_Height_Attr,_smallItemSize.Height.ToString());
  193.                 element0.AppendChild(element1);
  194.  
  195.                 // Scroll buttons
  196.                 element1 = xmlDoc.CreateElement(Xml_Scrolls_Node);
  197.                 element0.AppendChild(element1);
  198.  
  199.                 //Up Scroll
  200.                 itemElement = xmlDoc.CreateElement(_upScroll.ScrollDirection.ToString());
  201.                 itemElement.SetAttribute(Xml_Enabled_Attr,_upScroll.Enabled.ToString().ToLower());
  202.                 if(0 < _upScroll.ToolTip.Length)
  203.                 {
  204.                     element2 = xmlDoc.CreateElement(Xml_ToolTip_Node);
  205.                     element2.AppendChild(xmlDoc.CreateTextNode(_upScroll.ToolTip));
  206.                     itemElement.AppendChild(element2);
  207.                 }
  208.                 element1.AppendChild(itemElement);
  209.  
  210.                 //Down Scroll
  211.                 itemElement = xmlDoc.CreateElement(_dnScroll.ScrollDirection.ToString());
  212.                 itemElement.SetAttribute(Xml_Enabled_Attr,_dnScroll.Enabled.ToString().ToLower());
  213.                 if(0 < _dnScroll.ToolTip.Length)
  214.                 {
  215.                     element2 = xmlDoc.CreateElement(Xml_ToolTip_Node);
  216.                     element2.AppendChild(xmlDoc.CreateTextNode(_dnScroll.ToolTip));
  217.                     itemElement.AppendChild(element2);
  218.                 }
  219.  
  220.                 element1.AppendChild(itemElement);
  221.  
  222.                 // Back to root node.
  223.                 element0 = elementRoot;
  224.  
  225.                 //Tabs
  226.                 element1 = xmlDoc.CreateElement(Xml_Tabs_Node);
  227.                 element0.AppendChild(element1);
  228.  
  229.                 element1.SetAttribute(Xml_SelTabIdx_Attr,_toolBoxTabs.IndexOf(_selectedTab).ToString());
  230.  
  231.                 for(iLoop1=0;iLoop1<_toolBoxTabs.Count;iLoop1++)
  232.                 {
  233.                     tab        = this[iLoop1];
  234.  
  235.                     // Create the node
  236.                     tabElement = SerializeToolBoxItem(tab,xmlDoc,Xml_Tab_Node);
  237.  
  238.                     //View Type
  239.                     tabElement.SetAttribute(Xml_ViewMode_Attr,tab.View.ToString().ToLower());
  240.  
  241.                     // Item spacing
  242.                     if(0 < tab.ItemSpacing)
  243.                     {
  244.                         tabElement.SetAttribute(Xml_ItemSpacing_Attr,tab.ItemSpacing.ToString());
  245.                     }
  246.  
  247.                     // One item per row
  248.                     if(tab.ShowOnlyOneItemPerRow)
  249.                     {
  250.                         tabElement.SetAttribute(Xml_OneItemPerRow_Attr,tab.ShowOnlyOneItemPerRow.ToString().ToLower());
  251.                     }
  252.  
  253.                     // Item bg color
  254.                     if(!tab.ItemBackgroundColor.IsEmpty)
  255.                     {
  256.                         tabElement.SetAttribute(Xml_ItemBgClr_Attr,ColorToHtmlString(tab.ItemBackgroundColor));
  257.                     }
  258.  
  259.                     //Item border color
  260.                     if(!tab.ItemBorderColor.IsEmpty)
  261.                     {
  262.                         tabElement.SetAttribute(Xml_ItemBorderClr_Attr,ColorToHtmlString(tab.ItemBorderColor));
  263.                     }
  264.  
  265.                     //Item normal color
  266.                     if(!tab.ItemNormalColor.IsEmpty)
  267.                     {
  268.                         tabElement.SetAttribute(Xml_ItemNormClr_Attr,ColorToHtmlString(tab.ItemNormalColor));
  269.                     }
  270.  
  271.                     //Item selected color
  272.                     if(!tab.ItemSelectedColor.IsEmpty)
  273.                     {
  274.                         tabElement.SetAttribute(Xml_ItemSelClr_Attr,ColorToHtmlString(tab.ItemSelectedColor));
  275.                     }
  276.  
  277.                     //Item hover color
  278.                     if(!tab.ItemHoverColor.IsEmpty)
  279.                     {
  280.                         tabElement.SetAttribute(Xml_ItemHoverClr_Attr,ColorToHtmlString(tab.ItemHoverColor));
  281.                     }
  282.  
  283.                     element1.AppendChild(tabElement);
  284.  
  285.                     try
  286.                     {
  287.                         // Invoke serialize event (if any) to serialize the object for this tab.
  288.                         if(null != OnSerializeObject)
  289.                         {
  290.                             OnSerializeObject(tab,new XmlSerializationEventArgs(tab.Object,tabElement,false));
  291.                         }
  292.                     }
  293.                     catch
  294.                     {
  295.                     }
  296.  
  297.                     // Tab items
  298.                     element0 = xmlDoc.CreateElement(Xml_TabItems_Node);
  299.                     element0.SetAttribute(Xml_SelItemIdx_Attr,tab.SelectedItemIndex.ToString());
  300.  
  301.                     tabElement.AppendChild(element0);
  302.  
  303.                     for(iLoop2=0;iLoop2<tab.ItemCount;iLoop2++)
  304.                     {
  305.                         item        = tab[iLoop2];
  306.                         itemElement = SerializeToolBoxItem(item,xmlDoc, Xml_TabItem_Node);
  307.  
  308.                         try
  309.                         {
  310.                             // Invoke serialize event (if any) to serialize the object for this tabItem.
  311.                             if(null != OnSerializeObject)
  312.                             {
  313.                                 OnSerializeObject(item,new XmlSerializationEventArgs(item.Object,itemElement,false));
  314.                             }
  315.                         }
  316.                         catch
  317.                         {
  318.                         }
  319.  
  320.                         element0.AppendChild(itemElement);
  321.                     }
  322.                 }
  323.  
  324.                 serialized = true;
  325.             }
  326.             catch
  327.             {
  328.                 serialized = false;
  329.             }
  330.  
  331.             return serialized;
  332.         }
Advertisement
Add Comment
Please, Sign In to add comment