using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Xml;
using Aitex.Core.UI.View.Common;
namespace Aitex.Core.UI.Dialog
{
    /// 
    /// Interaction logic for RecipeSelectDialog.xaml
    /// 
    public partial class RecipeSelectDialog : Window
    {
        private string _recipeList;
        public RecipeSelectDialog(string recipeList)
        {
            _recipeList = recipeList;
            InitializeComponent();
            Loaded += new RoutedEventHandler(RecipeSelectDialog_Loaded);
        }
        /// 
        /// load recipe file list
        /// 
        /// 
        /// 
        void RecipeSelectDialog_Loaded(object sender, RoutedEventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(_recipeList);
            CreateTreeViewItems(doc.DocumentElement, this.treeView1);
        }
        /// 
        /// Create TreeViewItems
        /// 
        /// 
        void CreateTreeViewItems(XmlElement curElementNode, ItemsControl itemsControl)
        {
            foreach (XmlElement ele in curElementNode.ChildNodes)
            {
                if (ele.Name == "File")
                {
                    string fileName = ele.Attributes["Name"].Value;
                    fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
                    TreeViewFileItem item = new TreeViewFileItem(ele.Attributes["Name"].Value);
                    item.Tag = ele.Attributes["Name"].Value;
                    item.ToolTip = ele.Attributes["Name"].Value;
                    itemsControl.Items.Add(item);
                }
                else if (ele.Name == "Folder")
                {
                    string folderName = ele.Attributes["Name"].Value;
                    folderName = folderName.Substring(folderName.LastIndexOf('\\') + 1);
                    TreeViewFolderItem item = new TreeViewFolderItem(folderName);
                    item.Tag = ele.Attributes["Name"].Value;
                    CreateTreeViewItems(ele, item);
                    item.IsExpanded = false;
                    itemsControl.Items.Add(item);
                }
            }
        }
        /// 
        /// Selected recipe file
        /// 
        public string SelectedRecipe
        {
            get
            {
                var file = treeView1.SelectedItem as TreeViewFileItem;
                if (file != null)
                    return file.FileName;
                return string.Empty;
            }
        }
        /// 
        /// On click cancel button
        /// 
        /// 
        /// 
        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
            Hide();
        }
        /// 
        /// On click ok button
        /// 
        /// 
        /// 
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
            Close();
        }
        private void TreeView1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            btnOK_Click(sender, e);
        }
    }
}