void ReadBook(Book bookAsParam) { try { if (bookAsParam.IsSecured) { return; } //get type must be done in containing assembly string vm = DocumentFactory.Instance.GetViewModel(bookAsParam); if (!string.IsNullOrEmpty(vm)) { Type cbr = Type.GetType(vm); BookViewModelBase newElem = (BookViewModelBase)ReflectionHelper.CreateInstance(cbr, new object[] { bookAsParam }); if (newElem != null) { Documents.Add(newElem); SetActiveWorkspace(newElem); return; } } ProcessHelper.LaunchShellUri(new Uri(bookAsParam.FilePath)); } catch (Exception err) { LogHelper.Manage("MainViewModel:ReadBook", err); } }
private void HandleActiveDocumentChange(DocumentViewModel o) { if (o is BookViewModelBase) { BookViewModelBase bbk = o as BookViewModelBase; if (bbk.HasTableOfContent) { HandleTocContentChange(new TocChangedNotification(bbk.TableOfContent)); } } else { HandleTocContentChange(new TocChangedNotification(null)); } }
internal void SwapTwoPageMode(BookViewModelBase o) { //Documents.Remove(o); BookViewModelBase newModel = null; BookViewModelBase oldModel = null; if (o is ComicViewModel) { ComicViewModel comic = o as ComicViewModel; newModel = new TwoPageViewModel(o.Data, comic.CurrentPage.Index, comic.FitMode, comic.PreviousScale); } else { TwoPageViewModel comic = o as TwoPageViewModel; newModel = new ComicViewModel(o.Data, comic.CurrentPageIndex, comic.FitMode, comic.PreviousScale); } oldModel = o; Documents.Add(newModel); SetActiveWorkspace(newModel); Documents.Remove(oldModel); }