private async void OnFileListViewSelectionChanged(object sender, SelectionChangedEventArgs e) { if (FileListView.SelectedItem is FileItem f) { if (HitListView.SelectedItem == null || HitListView.SelectedItem is HitItem h && h.Fid != f.Fid) { if (f.HitRows > 0 && HitListView.ItemsSource is ObservableCollection <HitItem> hh) { HitListView.SelectedItem = hh.Where(x => x.Fid == f.Fid).FirstOrDefault(); } else { HitListView.SelectedItem = null; } if (HitListView.SelectedItem == null) { await client.OnSelectionChanged(f); ContentListView.SelectedIndex = 0; ContentListView.ScrollIntoView(ContentListView.SelectedItem); ContentListView.SelectedIndex = -1; } } } }
private async void ContentListView_ItemClick(object sender, ItemClickEventArgs e) { if (IsIndexPanelOpen) { IsIndexPanelOpen = false; return; } var line = (LineViewModel)e.ClickedItem; if (!line.IsImage && !ViewModel.EnableComments) { return; } var container = ContentListView.ContainerFromItem(line); ((FrameworkElement)CommentsFlyout.Content).DataContext = line; CommentsFlyout.ShowAt((FrameworkElement)container); //CommentInputBox.Focus(Windows.UI.Xaml.FocusState.Unfocused); if (line.HasComments && !line.IsLoading) { await line.LoadCommentsAsync(); } }
private async void JumpToButton_Click(object sender, RoutedEventArgs e) { int lineNo; var keyword = JumpToInputBox.Text.Trim(); var succ = int.TryParse(keyword, out lineNo); if (succ) { if (lineNo >= 1 && lineNo <= ViewModel.Contents.Count) { ContentListView.ScrollIntoView(ContentListView.Items[lineNo - 1], ScrollIntoViewAlignment.Leading); } else { MessageDialog dialog = new MessageDialog("Line No out of range", "Jump Failed"); await dialog.ShowAsync(); } } else { lineNo = GetCurrentLineNo(); var list = ViewModel.ChapterData.Lines as List <Service.Line>; lineNo = list.FindIndex(lineNo, l => (l.ContentType == LineContentType.TextContent && l.Content.Contains(keyword))); if (lineNo >= 0) { ContentListView.ScrollIntoView(ContentListView.Items[lineNo], ScrollIntoViewAlignment.Leading); } else { MessageDialog dialog = new MessageDialog("Cannot find specified keyword", "Jump Failed"); await dialog.ShowAsync(); } } }
public void GetContentListView(IContentModel model, ContentListView parent, int parentLevel = 0, int sortChildLevel = 4) { if (parentLevel > sortChildLevel) { return; } parentLevel++; var result = new ContentListView(); result.Id = model.Id; result.Title = model.Title; result.ParentId = model.ParentId; result.DisplayOrder = model.DisplayOrder; if (parent != null) { parent.Children.Add(result); } var children = model.Children; foreach (var item in children) { GetContentListView(item, result, parentLevel); } return; }
public static ContentListView GetContentListView(long?id, int parentLevel = 0) { if (id.HasValue) { var model = GetContent(id); if (model == null) { return(null); } var result = new ContentListView() { Id = model.Id, ParentId = model.ParentId, Title = model.Title, }; GetContentListView(model, result, 0); return(result.Children.FirstOrDefault()); } else { var roots = ModelManager.Read <BaseContent>(b => b.ParentId == null).ToList(); var result = new ContentListView(); roots.ForEach(b => GetContentListView(b, result, 0)); return(result); } }
protected override async void OnAppearing() { base.OnAppearing(); MessagingCenter.Subscribe <IKeyEventSender, string>(this, "KeyDown", (s, e) => { HandleKeyEvent(e); }); ContentListView.SetFocus(); await UpdateContentInfo(); }
private void setContent() { Route route = routes[routeIndex]; if (stop == route.TravelRoute.Last().Stop) { this.stop = route.TravelRoute.First().Stop; } var list = route.TravelRoute .Select(e => new TimeStopListModel <StopGroup> { Time = e.Time.ToString(), Stop = e.Stop }) .ToList(); list.Last().Disabled = true; ContentListView.ItemsSource = list; changeContent(); int current = list.IndexOf(list.First(x => x.Position == 0)); int ind = Math.Max(0, current - 4); if (ind != 0) { ContentListView.ForceScrollIntoView(list[ind]); } }
public ContentListView GetContentListView(long?id, int parentLevel = 0, int?langKey = null) { if (id.HasValue && id.Value > 0) { var model = GetContent(id); if (model == null) { return(null); } var result = new ContentListView() { Id = model.Id, ParentId = model.ParentId, Title = model.Title, }; GetContentListView(model, result, 0); return(result.Children.FirstOrDefault()); } else { var roots = Read <IContentModel>(BaseIContentModelType, b => b.ParentId == null && b.Lang == langKey).ToList(); var result = new ContentListView(); roots.ForEach(b => GetContentListView(b, result, 0)); return(result); } }
public void ShowSpaceContent(Space space) { _parent.Caption = "Confluence " + space.Name + " Content"; this.EnableCommand(false, _service, Guids.COMMAND_REFRESH_ID); this._contentListView = new ContentListView(space, this); this._historyNavigator.AddView(this._contentListView); SelectedView = this._contentListView; }
private void UpdateItem() { foreach (var content in ((ContentListPageViewModel)BindingContext).ContentList) { var item = new ContentItem { BindingContext = content }; ContentListView.Add(item); } }
void ContentListView_SizeChanged(object sender, SizeChangedEventArgs e) { int index = (int)ContentListView.GetValue(ContentListViewChangeViewRequestProperty); if (index >= 0 && e.NewSize.Height > 10 && ContentListView.Items.Count > 0 && index < ContentListView.Items.Count) { ContentListView.UpdateLayout(); ContentListView.ScrollIntoView(ViewModel.Contents[index], ScrollIntoViewAlignment.Leading); index = -1; ContentListView.SizeChanged -= ContentListView_SizeChanged; } }
private void RestorePageState(object obj) { this.ViewModel = (StopViewModel)obj; var viewSource = (CollectionViewSource)Resources["src"]; viewSource.Source = ViewModel.ItemsSource; if (ViewModel.ScrollPosition != null) { ContentListView.ScrollToGroupedPosition((ListViewPositionResult)ViewModel.ScrollPosition); } registerBottomObserver(); }
private void UpdateItem() { foreach (DetailContentData content in ((ContentListPageViewModel)BindingContext).ContentList) { ContentItem item = new ContentItem() { BindingContext = content }; item.OnContentSelect += new ContentSelectHandler(ContentSelected); ContentListView.Add(item); } }
private void RestorePageState() { ViewModel.ScrollIntoViewRequired += ViewModel_ScrollIntoViewRequired; if (ViewModel.usePivotPageing) { addContentToPivot(); } setFavoriteIcon(); if (ViewModel.ScrollPosition != null) { ContentListView.ScrollToGroupedPosition((ListViewPositionResult)ViewModel.ScrollPosition); } }
private void ContentListView_Loaded(object sender, RoutedEventArgs e) { int lineNo = ViewModel.CurrentLineNo; if (ContentListView.ItemsSource.Count > 0 && ContentListView.ItemsSource.Count > lineNo) { Dispatcher.BeginInvoke(() => ContentListView.ScrollTo(ContentListView.ItemsSource[lineNo])); } else { throw new System.IndexOutOfRangeException("ContentListView don't have a line at No." + lineNo); } }
protected override void OnSizeAllocated(double width, double height) { base.OnSizeAllocated(width, height); if (width == -1 || height == -1) { return; } // FIXME: Workaround for Tizen // Sometimes height of list is calculated as wrong // Set the height explicitly for fixing this issue ContentListView.SetHeight(height * 0.21); }
public bool HandleUrl(string url) { var contentList = ((ContentListPageViewModel)BindingContext).ContentList; var index = contentList.FindIndex(content => content.Source.Equals(url)); if (index == -1) { return(false); } var item = ContentListView.GetItem(index); ContentSelected(item); return(true); }
private async void IllustrationRefreshButton_Click(object sender, RoutedEventArgs e) { var lvm = ((FrameworkElement)sender).DataContext as LineViewModel; if (lvm.IsImageCached) // LocalUri { var container = ContentListView.ContainerFromIndex(lvm.No - 1) as SelectorItem; if (container != null) { var iv = container.ContentTemplateRoot as Grid; HideImageRefreshButton(); await RefreshCruptedImageItem(iv); } } }
private async void OnHitListViewSelectionChanged(object sender, SelectionChangedEventArgs e) { if (HitListView.SelectedItem is HitItem h) { await client.OnSelectionChanged(h); int v = h.Line - 1; ContentListView.SelectedIndex = v; ContentListView.ScrollIntoView(ContentListView.SelectedItem); } else { ContentListView.SelectedIndex = -1; } }
void ChangeView(int page, int line = -1) { if (line >= 0) { ContentListView.UpdateLayout(); if (ContentListView.Items.Count == 0) { ContentListView.SetValue(ContentListViewChangeViewRequestProperty, line); ContentListView.SizeChanged += ContentListView_SizeChanged; } else if (line < ContentListView.Items.Count) { ContentListView.ScrollIntoView(ViewModel.Contents[line], ScrollIntoViewAlignment.Leading); } } }
void ViewModel_CommentsListLoaded(object sender, IEnumerable <int> e) { foreach (int idx in e) { var container = ContentListView.ContainerFromIndex(idx - 1) as SelectorItem; if (container != null) { var iv = container.ContentTemplateRoot as Grid; if (iv == null) { continue; } var commentIndicator = iv.FindName("CommentIndicator") as Rectangle; commentIndicator.Opacity = 1; } } }
private void changeContent() { var list = ContentListView.ItemsSource <TimeStopListModel <StopGroup> >(); var selectedItem = list.FirstOrDefault(x => x.Stop == stop) ?? list.First(); int delta = Int32.Parse(selectedItem.Time); int n = 1, sgn = -1; foreach (var item in list) { item.Position = sgn * n++; item.Time = (Int32.Parse(item.Time) - delta).ToString(); if (item.Stop == selectedItem.Stop) { item.Position = 0; sgn = 1; } } }
public bool HandleUrl(string url) { var contentListPageViewModel = (ContentListPageViewModel)BindingContext; var contentList = contentListPageViewModel.ContentList; var index = contentList.FindIndex(content => content.Source.Equals(url)); if (index == -1) { return(false); } contentListPageViewModel.IsBusy = true; var item = ContentListView.GetItem(index); ContentListView.SetFocusedContent(item).ContinueWith(async _ => { await UpdateContentInfo(); await ContentSelected(ContentListView.FocusedContent); contentListPageViewModel.IsBusy = false; }, TaskScheduler.FromCurrentSynchronizationContext()); return(true); }
private async Task HandleScrollEvent(KeyCode keyCode) { Task <bool> ScrollTask() { if (keyCode == KeyCode.Next) { return(ContentListView.ScrollToNext()); } if (keyCode == KeyCode.Previous) { return(ContentListView.ScrollToPrevious()); } throw new ArgumentOutOfRangeException(nameof(keyCode), keyCode, null); } var listScrolled = await ScrollTask(); if (listScrolled) { await UpdateContentInfo(); } }
private object SavePageState() { ViewModel.ScrollPosition = ContentListView.GetGroupedScrollPosition(ViewModel.ItemsSource); return(ViewModel); }
private async void ViewModel_ScrollIntoViewRequired(object sender, object scrollTargetItem) { await Task.Delay(100); ContentListView.ScrollTo(scrollTargetItem); }
void ContentListView_ItemRealized_ScrollToCurrentLine(object sender, ItemRealizationEventArgs e) { ContentListView.ItemRealized -= ContentListView_ItemRealized_ScrollToCurrentLine; ContentListView.ScrollTo(ContentListView.ItemsSource[ViewModel.CurrentLineNo - 1]); }
int GetCurrentLineNo() { return(ContentListView.GetFirstVisibleIndex()); }
private void TopScroller_OnTopScrollingRequested(object sender, EventArgs e) { ContentListView.ScrollToTheTop(); }
protected override void OnAppearing() { base.OnAppearing(); ContentListView.SetFocus(); }