private string ToFilePath(Index2Entry entry) { // i.e. songs.dragonforce.ttfaf.fused.rif -> songs/dragonforce/ttfaf/fused.rif int lastIdx = entry.FilePath.Value.LastIndexOf("."); if (lastIdx == -1) { return(entry.FilePath.Value.ToLower()); } if (entry.IsZObject()) { lastIdx++; } char[] chars = entry.FilePath.Value.ToCharArray(); for (int i = 0; i < lastIdx; i++) { if (chars[i] == '.') { chars[i] = '/'; } } return(new string(chars).ToLower()); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { string path = "pack://application:,,,/Assets/"; if (value is Index2 || value is FEnvironment) { // Root path += "box.png"; } else if (value is Index2Entry) { // Index2 entry Index2Entry entry = value as Index2Entry; if (entry.IsZObject()) { path += "page_white_text.png"; // TODO: Add a pretty switch statement } else { path += "page_white.png"; } } else { // Assume folder path += "folder_closed.png"; } // Returns assigned icon return(new BitmapImage(new Uri(path))); }
private TreeViewItem AddNode(TreeViewItem parent, string currentPath, string text, bool folder, Index2Entry entry) { //node.Items.Cast<TreeViewItem>(). string key = CreateKey(currentPath, folder); object needle = TreeView_Archive.FindName(key); if (needle != null) { return(needle as TreeViewItem); } else { //TreeFileEntry temp = new TreeFileEntry(); TreeViewItem child = new TreeViewItem(); child.Header = text; child.Name = key; child.Selected += (sender, e) => { //this.selectedObject = entry; if (!entry.IsZObject()) { selectedObject = null; ListView_Catalog.Items.Clear(); return; } var zObject = manager[entry.FilePath]; if (zObject is Catalog2 catalog2) { ListView_Catalog.ItemsSource = catalog2.Entries; } else { selectedObject = null; ListView_Catalog.ItemsSource = null; } }; //temp.Path = currentPath; TreeView_Archive.RegisterName(key, child); int returnIdx = parent.Items.Add(child); if (!folder) { child.Tag = entry; } SetNodeProperties(child); return(parent.Items[returnIdx] as TreeViewItem); } }