private void Tree_SelectedItemData(UserTreeViewItem sender) { if (sender.PersonaFile.Object is IImage image) { Tab.SetPreview(image.GetImage()); } else { Tab.SetPreview(null); } statusBar = ""; if (sender.PersonaFile.Object is IFile file) { int size = file.Size(); statusBar = "Size: " + String.Format("0x{0:X8}", size) + " (" + size + ")"; Notify("StatusBar"); } }
public void SetRoot(ObjectFile personaFile) { if (tree.Count > 0) { if (!tree[0].Close()) { return; } } tree.Clear(); UserTreeViewItem item = new UserTreeViewItem(personaFile); item.SelectedItemChanged += Item_SelectedItem; item.SelectedItemOpen += Item_SelectedItemOpen; tree.Add(item); if (personaFile.Object is IPersonaFile pfile && pfile.SubFiles.Count == 0) { Item_SelectedItemOpen(item); } }
public bool Open(UserTreeViewItem sender) { if (!sender.CanEdit()) { MessageBox.Show(String.Format("Can't open {0}", sender.Header)); return(false); } if (sender.PersonaFile.Object is IPersonaFile pf) { TabItemType DataContextType = TabItemType.Null; object DataContext; string Title = sender.PersonaFile.Name; if (pf.Type == FileType.SPR) { DataContext = new Editors.SPREditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.SPR.SPR); DataContextType = TabItemType.SPR; } else if (pf.Type == FileType.SPD) { DataContext = new Editors.SPREditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.SPR.SPD); DataContextType = TabItemType.SPR; } else if (pf.Type == FileType.PTP) { DataContext = new Editors.PTPEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.Text.PTP); DataContextType = TabItemType.PTP; } else if (pf.Type == FileType.BMD) { DataContext = new Editors.BMDEditorVM(sender.PersonaFile); DataContextType = TabItemType.BMD; } else if (pf.Type == FileType.FTD) { DataContext = new Editors.FTDEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.Text.FTD); DataContextType = TabItemType.FTD; } //else if (pf.Type == FileType.FNT) //{ // DataContext = new Editors.FNTEditorVM(sender.personaFile.Object as PersonaEditorLib.FileStructure.FNT.FNT); // DataContextType = TabItemType.FNT; //} else if (pf.Type == FileType.DAT) { DataContext = new Editors.HEXEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.DAT); DataContextType = TabItemType.HEX; } else { return(false); } ClosableTabItemVM closableTabItemVM = new ClosableTabItemVM(); closableTabItemVM.DataContext = DataContext; closableTabItemVM.DataContextType = DataContextType; closableTabItemVM.TabTitle = Title; closableTabItemVM.PropertyChanged += ClosableTabItemVM_PropertyChanged; closableTabItemVM.PersonaFile = sender; tabCollection.Add(closableTabItemVM); SelectedTabIndex = tabCollection.IndexOf(closableTabItemVM); sender.UnEnable(); return(true); } return(false); }
private void Item_SelectedItemOpen(UserTreeViewItem sender) => SelectedItemOpen?.Invoke(sender);
private void Item_SelectedItem(UserTreeViewItem sender) => SelectedItemChanged?.Invoke(sender);
private void Tree_SelectedItemDataOpen(UserTreeViewItem sender) { MainWindowType = "Single"; Tab.Open(sender); }