Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public bool XmlSerialize(XmlNode xmlNode)
- {
- bool serialized = false;
- XmlDocument xmlDoc = null;
- XmlElement elementRoot = null;
- XmlElement element0 = null;
- XmlElement element1 = null;
- XmlElement element2 = null;
- XmlElement tabElement = null;
- XmlElement itemElement = null;
- ToolBoxTab tab = null;
- ToolBoxItem item = null;
- int iLoop1 = 0;
- int iLoop2 = 0;
- try
- {
- if(xmlNode is XmlDocument)
- {
- xmlDoc = (XmlDocument)xmlNode;
- }
- else
- {
- xmlDoc = xmlNode.OwnerDocument;
- }
- //Main toolbox node and its properties.
- elementRoot = xmlDoc.CreateElement(Xml_Root_Node);
- elementRoot.SetAttribute(Xml_Version_Attr,"1");
- element0 = elementRoot;
- xmlNode.AppendChild(element0);
- // Toolbox main config
- element1 = xmlDoc.CreateElement(Xml_Config_Node);
- element0.AppendChild(element1);
- element0 = element1;
- element2 = element1;
- // Tab height
- element1 = xmlDoc.CreateElement(Xml_TabHeight_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_tabHeight.ToString()));
- element0.AppendChild(element1);
- // Item height
- element1 = xmlDoc.CreateElement(Xml_ItemHeight_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_itemHeight.ToString()));
- element0.AppendChild(element1);
- // Tab spacing
- element1 = xmlDoc.CreateElement(Xml_TabSpacing_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_tabSpacing.ToString()));
- element0.AppendChild(element1);
- // Item spacing
- element1 = xmlDoc.CreateElement(Xml_ItemSpacing_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_itemSpacing.ToString()));
- element0.AppendChild(element1);
- // Layout delay
- element1 = xmlDoc.CreateElement(Xml_LayoutDelay_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_layoutDelay.ToString()));
- element0.AppendChild(element1);
- // Scroll delay
- element1 = xmlDoc.CreateElement(Xml_ScrollDelay_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_scrollDelay.ToString()));
- element0.AppendChild(element1);
- // Scroll wait
- element1 = xmlDoc.CreateElement(Xml_ScrollWait_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_scrollWait.ToString()));
- element0.AppendChild(element1);
- // Background color
- element1 = xmlDoc.CreateElement(Xml_BgColor_Node);
- if(!BackColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(BackColor)));
- }
- element0.AppendChild(element1);
- // Item background color
- element1 = xmlDoc.CreateElement(Xml_ItemBgColor_Node);
- if(!_itemBgColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemBgColor)));
- }
- element0.AppendChild(element1);
- // Item border color
- element1 = xmlDoc.CreateElement(Xml_ItemBorderColor_Node);
- if(!_itemBorderColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemBorderColor)));
- }
- element0.AppendChild(element1);
- // Normal item color
- element1 = xmlDoc.CreateElement(Xml_NormItemColor_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemNormalColor)));
- element0.AppendChild(element1);
- // Selected item color
- element1 = xmlDoc.CreateElement(Xml_SelItemColor_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_selectedItemColor)));
- element0.AppendChild(element1);
- // Hover item color
- element1 = xmlDoc.CreateElement(Xml_HoverItemColor_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemHoverColor)));
- element0.AppendChild(element1);
- // Normal item text color
- element1 = xmlDoc.CreateElement(Xml_NormItemTxtColor_Node);
- if(!_itemTxtNormalColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtNormalColor)));
- }
- element0.AppendChild(element1);
- // Selected item text color
- element1 = xmlDoc.CreateElement(Xml_SelItemTxtColor_Node);
- if(!_itemTxtSelectColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtSelectColor)));
- }
- element0.AppendChild(element1);
- // Hover item text color
- element1 = xmlDoc.CreateElement(Xml_HoverItemTxtColor_Node);
- if(!_itemTxtHoverColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_itemTxtHoverColor)));
- }
- element0.AppendChild(element1);
- // Normal tab text color
- element1 = xmlDoc.CreateElement(Xml_NormTabTxtColor_Node);
- if(!_tabTxtNormalColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtNormalColor)));
- }
- element0.AppendChild(element1);
- // Selected tab text color
- element1 = xmlDoc.CreateElement(Xml_SelTabTxtColor_Node);
- if(!_tabTxtSelectColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtSelectColor)));
- }
- element0.AppendChild(element1);
- // Hover tab text color
- element1 = xmlDoc.CreateElement(Xml_HoverTabTxtColor_Node);
- if(!_tabTxtHoverColor.IsEmpty)
- {
- element1.AppendChild(xmlDoc.CreateTextNode(ColorToHtmlString(_tabTxtHoverColor)));
- }
- element0.AppendChild(element1);
- // "Select All text while renaming" flag
- element1 = xmlDoc.CreateElement(Xml_SelAllTxtInRename_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_selAllTextInRename.ToString().ToLower()));
- element0.AppendChild(element1);
- // "Show only one item per row" flag
- element1 = xmlDoc.CreateElement(Xml_ShowOneItemPerRow_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_onlyOneItemPerRow.ToString().ToLower()));
- element0.AppendChild(element1);
- // "Allow swapping by drag drop" flag
- element1 = xmlDoc.CreateElement(Xml_AllowDragSwap_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_allowDragSwap.ToString().ToLower()));
- element0.AppendChild(element1);
- // "use item color in rename" flag
- element1 = xmlDoc.CreateElement(Xml_UseItemClrInRen_Node);
- element1.AppendChild(xmlDoc.CreateTextNode(_useItemClrInRename.ToString().ToLower()));
- element0.AppendChild(element1);
- // Large item size
- element1 = xmlDoc.CreateElement(Xml_LargeItemSize_Node);
- element1.SetAttribute(Xml_Width_Attr ,_largeItemSize.Width.ToString() );
- element1.SetAttribute(Xml_Height_Attr,_largeItemSize.Height.ToString());
- element0.AppendChild(element1);
- // Small item size
- element1 = xmlDoc.CreateElement(Xml_SmallItemSize_Node);
- element1.SetAttribute(Xml_Width_Attr ,_smallItemSize.Width.ToString() );
- element1.SetAttribute(Xml_Height_Attr,_smallItemSize.Height.ToString());
- element0.AppendChild(element1);
- // Scroll buttons
- element1 = xmlDoc.CreateElement(Xml_Scrolls_Node);
- element0.AppendChild(element1);
- //Up Scroll
- itemElement = xmlDoc.CreateElement(_upScroll.ScrollDirection.ToString());
- itemElement.SetAttribute(Xml_Enabled_Attr,_upScroll.Enabled.ToString().ToLower());
- if(0 < _upScroll.ToolTip.Length)
- {
- element2 = xmlDoc.CreateElement(Xml_ToolTip_Node);
- element2.AppendChild(xmlDoc.CreateTextNode(_upScroll.ToolTip));
- itemElement.AppendChild(element2);
- }
- element1.AppendChild(itemElement);
- //Down Scroll
- itemElement = xmlDoc.CreateElement(_dnScroll.ScrollDirection.ToString());
- itemElement.SetAttribute(Xml_Enabled_Attr,_dnScroll.Enabled.ToString().ToLower());
- if(0 < _dnScroll.ToolTip.Length)
- {
- element2 = xmlDoc.CreateElement(Xml_ToolTip_Node);
- element2.AppendChild(xmlDoc.CreateTextNode(_dnScroll.ToolTip));
- itemElement.AppendChild(element2);
- }
- element1.AppendChild(itemElement);
- // Back to root node.
- element0 = elementRoot;
- //Tabs
- element1 = xmlDoc.CreateElement(Xml_Tabs_Node);
- element0.AppendChild(element1);
- element1.SetAttribute(Xml_SelTabIdx_Attr,_toolBoxTabs.IndexOf(_selectedTab).ToString());
- for(iLoop1=0;iLoop1<_toolBoxTabs.Count;iLoop1++)
- {
- tab = this[iLoop1];
- // Create the node
- tabElement = SerializeToolBoxItem(tab,xmlDoc,Xml_Tab_Node);
- //View Type
- tabElement.SetAttribute(Xml_ViewMode_Attr,tab.View.ToString().ToLower());
- // Item spacing
- if(0 < tab.ItemSpacing)
- {
- tabElement.SetAttribute(Xml_ItemSpacing_Attr,tab.ItemSpacing.ToString());
- }
- // One item per row
- if(tab.ShowOnlyOneItemPerRow)
- {
- tabElement.SetAttribute(Xml_OneItemPerRow_Attr,tab.ShowOnlyOneItemPerRow.ToString().ToLower());
- }
- // Item bg color
- if(!tab.ItemBackgroundColor.IsEmpty)
- {
- tabElement.SetAttribute(Xml_ItemBgClr_Attr,ColorToHtmlString(tab.ItemBackgroundColor));
- }
- //Item border color
- if(!tab.ItemBorderColor.IsEmpty)
- {
- tabElement.SetAttribute(Xml_ItemBorderClr_Attr,ColorToHtmlString(tab.ItemBorderColor));
- }
- //Item normal color
- if(!tab.ItemNormalColor.IsEmpty)
- {
- tabElement.SetAttribute(Xml_ItemNormClr_Attr,ColorToHtmlString(tab.ItemNormalColor));
- }
- //Item selected color
- if(!tab.ItemSelectedColor.IsEmpty)
- {
- tabElement.SetAttribute(Xml_ItemSelClr_Attr,ColorToHtmlString(tab.ItemSelectedColor));
- }
- //Item hover color
- if(!tab.ItemHoverColor.IsEmpty)
- {
- tabElement.SetAttribute(Xml_ItemHoverClr_Attr,ColorToHtmlString(tab.ItemHoverColor));
- }
- element1.AppendChild(tabElement);
- try
- {
- // Invoke serialize event (if any) to serialize the object for this tab.
- if(null != OnSerializeObject)
- {
- OnSerializeObject(tab,new XmlSerializationEventArgs(tab.Object,tabElement,false));
- }
- }
- catch
- {
- }
- // Tab items
- element0 = xmlDoc.CreateElement(Xml_TabItems_Node);
- element0.SetAttribute(Xml_SelItemIdx_Attr,tab.SelectedItemIndex.ToString());
- tabElement.AppendChild(element0);
- for(iLoop2=0;iLoop2<tab.ItemCount;iLoop2++)
- {
- item = tab[iLoop2];
- itemElement = SerializeToolBoxItem(item,xmlDoc, Xml_TabItem_Node);
- try
- {
- // Invoke serialize event (if any) to serialize the object for this tabItem.
- if(null != OnSerializeObject)
- {
- OnSerializeObject(item,new XmlSerializationEventArgs(item.Object,itemElement,false));
- }
- }
- catch
- {
- }
- element0.AppendChild(itemElement);
- }
- }
- serialized = true;
- }
- catch
- {
- serialized = false;
- }
- return serialized;
- }
Advertisement
Add Comment
Please, Sign In to add comment