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");
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
 private void Item_SelectedItemOpen(UserTreeViewItem sender) => SelectedItemOpen?.Invoke(sender);
Beispiel #5
0
 private void Item_SelectedItem(UserTreeViewItem sender) => SelectedItemChanged?.Invoke(sender);
 private void Tree_SelectedItemDataOpen(UserTreeViewItem sender)
 {
     MainWindowType = "Single";
     Tab.Open(sender);
 }