Example #1
0
        public bool Open(TreeViewItemVM sender)
        {
            if (!sender.CanEdit())
            {
                MessageBox.Show(String.Format("Can't open {0}", sender.Header));
                return(false);
            }

            object DataContext;
            string Title = sender.PersonaFile.Name;

            switch (sender.PersonaFile.GameData.Type)
            {
            case FormatEnum.SPR:
                DataContext = new SPREditorVM(sender.PersonaFile.GameData as SPR);
                break;

            case FormatEnum.SPD:
                DataContext = new SPDEditorVM(sender.PersonaFile.GameData as SPD);
                break;

            case FormatEnum.PTP:
                DataContext = new PTPEditorVM(sender.PersonaFile.GameData as PTP);
                break;

            case FormatEnum.BMD:
                DataContext = new BMDEditorVM(sender.PersonaFile);
                break;

            case FormatEnum.FTD:
                DataContext = new FTDEditorVM(sender.PersonaFile.GameData as FTD);
                break;

            case FormatEnum.FNT:
                DataContext = new FNTEditorVM(sender.PersonaFile.GameData as FNT);
                break;

            case FormatEnum.FNT0:
                DataContext = new FNT0EditorVM(sender.PersonaFile.GameData as FNT0);
                break;

            case FormatEnum.DAT:
                DataContext = new HEXEditorVM(sender.PersonaFile.GameData as DAT);
                break;

            default:
                return(false);
            }

            ClosableTabItemVM closableTabItemVM = new ClosableTabItemVM();

            closableTabItemVM.DataContext      = DataContext;
            closableTabItemVM.TabTitle         = Title;
            closableTabItemVM.PropertyChanged += ClosableTabItemVM_PropertyChanged;
            closableTabItemVM.PersonaFile      = sender;

            tabCollection.Add(closableTabItemVM);
            SelectedTabIndex = tabCollection.IndexOf(closableTabItemVM);

            sender.UnEnable();
            return(true);
        }