예제 #1
0
        private List <BrowserTreeViewItemModel> GetChildrenByPath(string FilePath)
        {
            List <BrowserTreeViewItemModel> children = new List <BrowserTreeViewItemModel>();

            foreach (var path in Directory.GetDirectories(FilePath))
            {
                // if @path is a folder
                if (Directory.Exists(@path))
                {
                    DirectoryInfo dir = new DirectoryInfo(path);

                    // if this directory is not readonly or hidden
                    if (FileAttributes.Directory == dir.Attributes || dir.Attributes.ToString().Equals("ReadOnly, Directory"))
                    {
                        BrowserTreeViewItemModel model = new BrowserTreeViewItemModel();
                        model.Text     = dir.Name;
                        model.Icon     = treeViewIcons["folder"];
                        model.Path     = @path;
                        model.IsFolder = true;
                        children.Add(model);
                    }
                }
            }

            foreach (var path in Directory.GetFiles(FilePath))
            {
                // file
                if (File.Exists(@path))
                {
                    FileInfo file = new FileInfo(@path);

                    //if (file.Extension.Equals(".fbx") || file.Extension.Equals(".png"))
                    {
                        BrowserTreeViewItemModel model = new BrowserTreeViewItemModel();
                        model.Text = file.Name;
                        if (file.Extension.ToLower().Equals(".dds") || file.Extension.ToLower().Equals(".png") || file.Extension.ToLower().Equals(".jpg") || file.Extension.ToLower().Equals(".tga"))
                        {
                            model.Icon = treeViewIcons["image"];
                        }
                        else if (file.Extension.ToLower().Equals(".fbx"))
                        {
                            model.Icon = treeViewIcons["mesh"];
                        }
                        else if (file.Extension.ToLower().Equals(".gmat"))
                        {
                            model.Icon = treeViewIcons["material"];
                        }
                        else
                        {
                            model.Icon = treeViewIcons["document"];
                        }
                        model.Path     = @path;
                        model.IsFolder = false;
                        children.Add(model);
                    }
                }
            }

            return(children);
        }
예제 #2
0
        public void LoadBrowser()
        {
            String ContentFolder = workDirectory + @"Content\";

            if (ContentFolder == null)
            {
                MessageBox.Show("ContentFolder is null");
                return;
            }
            browserTreeView.ItemsSource = null;
            //browserTreeView.Items.Clear();

            List <BrowserTreeViewItemModel> root = new List <BrowserTreeViewItemModel>();

            BrowserTreeViewItemModel content = new BrowserTreeViewItemModel();

            content.Text = "Content";
            content.Icon = treeViewIcons["folder"];
            //content.Path = AppDomain.CurrentDomain.BaseDirectory + @"Content\";
            content.Path     = workDirectory + @"Content\";
            content.IsFolder = true;
            content.Children = GetChildrenByPath(content.Path);

            root.Add(content);

            browserTreeView.ItemsSource = root;
        }
예제 #3
0
        void item_Selected(object sender, RoutedEventArgs e)
        {
            TreeViewItem             item  = e.OriginalSource as TreeViewItem;
            BrowserTreeViewItemModel model = item.DataContext as BrowserTreeViewItemModel;

            if (model.IsFolder)
            {
                GetFiles(model.Path);
            }
        }
예제 #4
0
        void folder_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem             item  = e.OriginalSource as TreeViewItem;
            BrowserTreeViewItemModel model = item.DataContext as BrowserTreeViewItemModel;

            foreach (BrowserTreeViewItemModel child in model.Children)
            {
                if (child.IsFolder)
                {
                    child.Children = GetChildrenByPath(child.Path);
                }
            }
        }