/// <summary> /// 获取筛选项 /// </summary> /// <param name="filter">筛选条件</param> /// <returns></returns> public static List <ResourceBrowserFilterItem> GetFilterItem(string filter) { if (filter.IsNullOrEmptyOrWhiteSpace()) { return(ResourceBrowserHelper.GetDefaultFilterItem()); } string[] tokens = filter.Split('|'); if (tokens.Length % 2 != 0) { return(ResourceBrowserHelper.GetDefaultFilterItem()); } List <ResourceBrowserFilterItem> list = new List <ResourceBrowserFilterItem>(); for (int i = 0; i < tokens.Length; i += 2) { ResourceBrowserFilterItem item = new ResourceBrowserFilterItem(); item.Label = tokens[i]; string str_types = tokens[i + 1]; string[] types = str_types.Split(';'); item.Filters = new List <string>(); item.Filters.AddRange(types); item.DisplayLabel = item.Label + "(" + str_types + ")"; list.Add(item); } return(list); }
/// <summary> /// 创建逻辑跟路径下的文件夹 /// </summary> /// <param name="temp_text">要创建文件夹的父目录信息</param> /// <param name="floderPath">要创建的目录完整路径</param> /// <param name="selected">当前树选中的节点</param> private void PART_CreateFloder_Click_LogicRoot(string temp_text, string floderPath, ResourceBrowserItem selected) { ResourceBrowserItem parent = ResourceBrowserHelper.FindItem(this.PART_Tree.ItemsSource, temp_text); if (parent != null) { if (parent.Items == null) { this.PART_Tree.Expand(parent); ResourceBrowserItem item = ResourceBrowserHelper.FindItem(this.PART_Tree.ItemsSource, floderPath); if (ResourceBrowserHelper.IsParent(selected, item)) { this.PART_Tree.SetSelectedValue(item); } } else { ResourceBrowserItem item = new ResourceBrowserItem(floderPath, false); parent.Items.Add(item); this.PART_Tree.Expand(parent); item.Parent = parent; if (ResourceBrowserHelper.IsParent(selected, item)) { this.PART_Tree.SetSelectedValue(item); } } } }
/// <summary> /// 构建一个资源项 /// </summary> /// <param name="isFile">是否是文件</param> /// <param name="path">路径</param> /// <param name="icon">图标</param> /// <param name="name">标题</param> public ResourceBrowserItem(string path, bool?isFile = null, Icon icon = null, string name = null) { this.FullPath = path; this.Icon = icon; if (isFile == null) { this.IsFile = ResourceBrowserHelper.IsFile(path); } else { this.IsFile = isFile.Value; } if (this.IsFile) { System.IO.FileInfo fi = new System.IO.FileInfo(this.FullPath); if (name == null) { this.Name = fi.Name; } else { this.Name = name; } this.Token = fi.Name.Replace("\\", string.Empty); if (icon == null) { this.Icon = ResourceBrowserHelper.GetFileIcon(fi.FullName); } } else { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(this.FullPath); if (name == null) { this.Name = di.Name; } else { this.Name = name; } this.Token = di.Name.Replace("\\", string.Empty).ToLower(); if (icon == null) { this.Icon = ResourceBrowserHelper.GetDirectoryIcon(); } } }
public System.Collections.IEnumerable SelectChildren(object item) { ResourceBrowserItem i = item as ResourceBrowserItem; if (i == null || i.IsFile) { return(null); } if (i.Items == null) { i.Items = ResourceBrowserHelper.GetDirectorys(i.FullPath); if (i.Items == null) { return(null); } foreach (ResourceBrowserItem v in i.Items) { v.Parent = i; } } return(i.Items); }
/// <summary> /// 点击向上按钮 /// </summary> private void PART_Up_Click(object sender, RoutedEventArgs e) { if (this.PART_TextBox.Text.IsNullOrEmptyOrWhiteSpace()) { return; } string path = System.IO.Path.GetDirectoryName(this.PART_TextBox.Text); if (path.IsNullOrEmptyOrWhiteSpace()) { return; } ResourceBrowserItem selected = this.PART_Tree.GetSelectedValue() as ResourceBrowserItem; if (selected == null) { return; } ResourceBrowserItem root = ResourceBrowserHelper.FindRoot(selected); ResourceBrowserItem item = ResourceBrowserHelper.FindItemEx(root, path); if (item == null) { this.DirectoryPath = path; this.PART_TextBox.Text = path; } else { this.PART_Tree.SetSelectedValue(item); this.PART_TextBox.Text = item.FullPath; this.DirectoryPath = item.FullPath; } }