コード例 #1
0
ファイル: LinkCommands.cs プロジェクト: nisimpson/awful2
        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));
        }
コード例 #2
0
 private void OnJumpToPageRequest(Data.ThreadDataSource thread)
 {
     if (JumpToPageRequest != null)
     {
         JumpToPageRequest(thread, EventArgs.Empty);
     }
 }
コード例 #3
0
ファイル: ThreadViewModel.cs プロジェクト: nisimpson/awful2
        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);
        }
コード例 #4
0
ファイル: ThreadViewModel.cs プロジェクト: nisimpson/awful2
        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;
        }
コード例 #5
0
 private void UpdateDataContext(Data.ThreadDataSource threadDataSource)
 {
     this.DataContext = this;
 }
コード例 #6
0
 public ThreadNavEventArgs(Data.ThreadDataSource thread, int pagenumber)
 {
     Thread     = thread;
     PageNumber = pagenumber;
 }