private SAThreadViewEventArgs CreateViewmodel(Uri parameter) { // try and parse a thread page from the html ThreadPageMetadata page = MetadataExtensions.ThreadPageFromUri(parameter); // since we have a page, create thread metadata from it ThreadMetadata thread = new ThreadMetadata() { ThreadID = page.ThreadID, Title = page.ThreadTitle, PageCount = page.LastPage }; // create binding wrappers Data.ThreadDataSource threadSource = new Data.ThreadDataSource(thread); Data.ThreadPageDataObject pageSource = new Data.ThreadPageDataObject(page); // create viewmodel ViewModels.ThreadViewModel viewmodel = new ViewModels.ThreadViewModel(); int pageIndex = pageSource.PageNumber - 1; viewmodel.UpdateModel(threadSource); viewmodel.Pages[pageIndex] = pageSource; // set the current page to page source viewmodel.SelectedItem = viewmodel.Pages[pageIndex]; viewmodel.SelectedIndex = pageIndex; return(new SAThreadViewEventArgs(viewmodel)); }
private void OnJumpToPageRequest(Data.ThreadDataSource thread) { if (JumpToPageRequest != null) { JumpToPageRequest(thread, EventArgs.Empty); } }
public ThreadPageProxy(Data.ThreadDataSource source) : base() { this._source = source; this._count = source.PageCount; //this._cache = new Queue<Data.ThreadPageDataSource>(MAX_CAPACITY); this._cacheTable = new Dictionary <int, ThreadPageDataSource>(source.PageCount); }
public void UpdateModel(ThreadViewPageState state) { var thread = Data.MainDataSource.Instance.FindThreadByID(state.ThreadID); if (thread == null) { ThreadMetadata metadata = new ThreadMetadata(); metadata.ThreadID = state.ThreadID; metadata.Title = state.Title; metadata.PageCount = state.PageCount; thread = new Data.ThreadDataSource(metadata); } this.Thread = thread; int index = state.PageNumber - 1; var page = this.Pages[index]; page.Html = state.Html; page.Posts = state.Posts; this.IsReady = true; }
private void UpdateDataContext(Data.ThreadDataSource threadDataSource) { this.DataContext = this; }
public ThreadNavEventArgs(Data.ThreadDataSource thread, int pagenumber) { Thread = thread; PageNumber = pagenumber; }