| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.IO;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Xml;
 
- namespace Aitex.Core.UI.View.Frame
 
- {
 
-     public class ViewItem
 
-     {
 
-         public string Id { get; set; }
 
-         public string Name { get; set; }
 
-         public string ViewClass { get; set; }
 
-         public string AssemblyName { get; set; }
 
-         public bool IsSelected { get; set; }
 
-         public List<ViewItem> SubView { get; set; }
 
-         public Dictionary<string, string> GlobalName
 
-         {
 
-             get; set; }
 
-     }
 
-     class UILayoutParser
 
-     {
 
-         public List<string> ViewIdList { get; set; }
 
-         public ViewItem TitleView { get; private set; }
 
-         public List<ViewItem> NavigationView { get; private set; }
 
-         public int PreferTopPanelHeight = -1;
 
-         public int PreferCenterPanelHeight = -1;
 
-         public int PreferBottomPanelHeight = -1;
 
-         public int PreferWidth = -1;
 
-         public UILayoutParser(string xmlFile)
 
-         {
 
-             ViewIdList = new List<string>();
 
-             ParseLayout(xmlFile);
 
-         }
 
-         void ParseLayout(string xmlFile)
 
-         {
 
-             if (String.IsNullOrEmpty(xmlFile))
 
-                 throw new ApplicationException("The UI layout config filename is empty,can not initialize UI");
 
-             if (!File.Exists(xmlFile))
 
-                 throw new ApplicationException("Did not find the UI layout config file, " + xmlFile);
 
-             XmlDocument doc = new XmlDocument();
 
-             try
 
-             {
 
-                 doc.Load(xmlFile);
 
-                 var node =   doc.SelectSingleNode("/MECFUI") as XmlNode;
 
-                 int parsed = -1;
 
-                 if (node.Attributes["TopPanelHeight"] != null && int.TryParse(node.Attributes["TopPanelHeight"].Value, out parsed))
 
-                 {
 
-                     PreferTopPanelHeight = parsed;
 
-                 }
 
-                 if (node.Attributes["CenterPanelHeight"] != null && int.TryParse(node.Attributes["CenterPanelHeight"].Value, out parsed))
 
-                 {
 
-                     PreferCenterPanelHeight = parsed;
 
-                 }
 
-                 if (node.Attributes["BottomPanelHeight"] != null && int.TryParse(node.Attributes["BottomPanelHeight"].Value, out parsed))
 
-                 {
 
-                     PreferBottomPanelHeight = parsed;
 
-                 }
 
-                 if (node.Attributes["Width"] != null && int.TryParse(node.Attributes["Width"].Value, out parsed))
 
-                 {
 
-                     PreferWidth = parsed;
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 throw new ApplicationException("UI layout config file " + xmlFile + " is not valid, " + ex.Message);
 
-             }
 
-             TitleView = ParseNode(doc.SelectSingleNode("/MECFUI/Title"));
 
-             foreach (XmlNode nav in doc.SelectNodes("/MECFUI/Navigation"))
 
-             {
 
-                 ViewItem menu = ParseNode(nav);
 
-                 if (menu == null)
 
-                     continue;
 
-                 foreach (XmlNode ele in nav.SelectNodes("SubView"))
 
-                 {
 
-                     if (menu.SubView == null)
 
-                         menu.SubView = new List<ViewItem>();
 
-                     ViewItem item = ParseNode(ele);
 
-                     if (item != null)
 
-                     {
 
-                         menu.SubView.Add(item);
 
-                         ViewIdList.Add(item.Id);
 
-                     }
 
-                 }
 
-                 if (NavigationView == null)
 
-                     NavigationView = new List<ViewItem>();
 
-                 
 
-                 NavigationView.Add(menu);
 
-             }
 
-         }
 
-         ViewItem ParseNode(XmlNode node)
 
-         {
 
-             if (node == null)
 
-                 return null;
 
-             ViewItem item = new ViewItem();
 
-             item.GlobalName = new Dictionary<string, string>();
 
-             if (node.Attributes["Id"] != null)
 
-                 item.Id = node.Attributes["Id"].Value;
 
-             if (node.Attributes["Name"] != null)
 
-                 item.Name = node.Attributes["Name"].Value;
 
-             if (node.Attributes["Name.en-US"] != null)
 
-                 item.GlobalName["en-US"] = node.Attributes["Name.en-US"].Value;
 
-             if (node.Attributes["Name.zh-CN"] != null)
 
-                 item.GlobalName["zh-CN"] = node.Attributes["Name.zh-CN"].Value;
 
-             if (node.Attributes["ViewClass"] != null)
 
-                 item.ViewClass = node.Attributes["ViewClass"].Value;
 
-             if (node.Attributes["Assembly"] != null)
 
-                 item.AssemblyName = node.Attributes["Assembly"].Value;
 
-             return item;
 
-         }
 
-     }
 
- }
 
 
  |