public void PreviewColumn(ColumnViewModel columnViewModel) { mainPageViewModel.TableViewModel.SkipAllAnimationToFill(); previewingColumnViewModel = columnViewModel; if (ViewStatus.SelectedColumnViewModels.IndexOf(previewingColumnViewModel) >= 0) { return; } // 현재 선택된 view status를 가져옴 ViewStatus selectedViewStatus = ViewStatus.Clone(); // 새 컬럼 추가 selectedViewStatus.SelectedColumnViewModels.Add(columnViewModel); selectedViewStatus.Refresh(); // 현재 추가된 컬럼으로 groupedRows와 GroupedRowViewModels를 만듦. selectedViewStatus.Generate(mainPageViewModel.SheetViewModel); // 탑 페이지 뷰 모델 가져와서 PageViewModel pageViewModel = TopPageView.ViewModel; // 복제한 view status를 추가 한 다음 pageViewModel.ViewStatus = selectedViewStatus; pageViewModel.State = PageViewModel.PageViewState.Previewing; // 이걸로 pageView를 채움 pageViewModel.Reflect(ReflectReason.Preview); // ReflectType2.TrackPreviousParagraph | ReflectType2.OnCreate, ReflectReason2.PreviewRequested); TopPageView.ReflectState(); ExpandFilters(); }
public void ReflectAll(ViewStatus viewStatus, ReflectReason reason) { Boolean isN = viewStatus.IsN; foreach (ColumnViewModel cvm in SheetViewModel.ColumnViewModels) { cvm.IsSelected = viewStatus.SelectedColumnViewModels.IndexOf(cvm) >= 0; } if (reason == ReflectReason.RowFiltered) { View.SelectionView.ChangeSelecion(null, SelectionChangedType.Clear, false); tableViewModel.SelectedRows = null; } if (reason == ReflectReason.ColumnUnselected && viewStatus.SelectedCount == 0) { View.SelectionView.ChangeSelecion(null, SelectionChangedType.Clear, false); } Logger.Instance.Log($"{reason}"); viewStatus.Generate(SheetViewModel); // sheet 업데이트 SheetViewModel.Reflect(viewStatus); // 테이블 업데이트 TableViewModel.Reflect(viewStatus, reason); Boolean updateAllPageViews = reason.UpdateAllPageViews(); Boolean updateLastPageView = reason.UpdateLastPageView(); // 차트 업데이트 if (updateAllPageViews) { foreach (PageView pageView in ExplorationViewModel.SelectedPageViews) { if (pageView.ViewModel.ViewStatus != viewStatus) { pageView.ViewModel.ViewStatus.Generate(sheetViewModel); } pageView.ViewModel.Reflect(reason); } { PageView topPageView = ExplorationViewModel.TopPageView; if (topPageView.ViewModel.ViewStatus != null) { topPageView.ViewModel.ViewStatus.Generate(sheetViewModel); topPageView.ViewModel.Reflect(reason); } } } else if (updateLastPageView) { if (ExplorationViewModel.SelectedPageViews.Count > 0) { PageView pageView = ExplorationViewModel.SelectedPageViews.Last(); if (pageView.ViewModel.ViewStatus != viewStatus) { pageView.ViewModel.ViewStatus.Generate(sheetViewModel); } pageView.ViewModel.Reflect(reason); } } }