Exemple #1
0
        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();
        }
Exemple #2
0
        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);
                }
            }
        }