프로젝트

일반

사용자정보

개정판 752b18ef

ID752b18ef3834a207ff653710921f9f96cc1b986a
상위 3212270d
하위 30878507

김태성이(가) 약 4년 전에 추가함

compare 기능 수정
- 현재 문서의 크기와 이전 REVISION 크기를 맞춤

Change-Id: Ie0e7f388c4888625e1d0083d31212af16b412fd0

차이점 보기:

KCOM/Views/MainMenu.xaml.cs
662 662

  
663 663
        private async Task PageChangingAsync(DOCPAGE currentPage, int changePageNumber,CancellationToken token)
664 664
        {
665
            CompareMode.IsChecked = false;
666 665
            var BalancePoint = ViewerDataModel.Instance.PageBalanceMode == true ? changePageNumber + ViewerDataModel.Instance.PageBalanceNumber : changePageNumber;
667 666

  
668 667
            #region 페이지가 벗어난 경우
......
681 680

  
682 681
            #endregion 페이지가 벗어난 경우
683 682

  
684
            ViewerDataModel.Instance.PageNumber = BalancePoint;
683
            ViewerDataModel.Instance.SyncPageNumber = BalancePoint;
685 684

  
686 685
            var pageWidth = Convert.ToDouble(currentPage.PAGE_WIDTH);
687 686
            var pageHeight = Convert.ToDouble(currentPage.PAGE_HEIGHT);
......
714 713
                if (IsSyncPDFMode)
715 714
                {
716 715
                    Get_FinalImage.Get_PdfImage get_PdfImage = new Get_FinalImage.Get_PdfImage();
717
                    var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.PageNumber)));
716
                    var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.SyncPageNumber)));
718 717

  
719 718
                    Logger.sendCheckLog("pageNavigator_PageChanging_pdfpath Image Downloading", 1);
720 719
                    if (pdfpath.IsDownloading)
......
742 741
                }
743 742
                else
744 743
                {
745
                    Logger.sendCheckLog("pageNavigator_PageChanging_uri2 값 설정", 1);
746
                    string uri2 = this.GetImageURL(CurrentRev.DOCUMENT_ID, BalancePoint);
747

  
748
                    Logger.sendCheckLog("pageNavigator_PageChanging_defaultBitmapImage_Compare BitmapImage 설정", 1);
749
                    var defaultBitmapImage_Compare = new BitmapImage();
750
                    defaultBitmapImage_Compare.BeginInit();
751
                    defaultBitmapImage_Compare.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
752
                    defaultBitmapImage_Compare.CacheOption = BitmapCacheOption.OnLoad;
753
                    defaultBitmapImage_Compare.UriSource = new Uri(uri2);
754
                    //defaultBitmapImage_Compare.DecodePixelWidth = Int32.Parse(e.CurrentPage.PAGE_WIDTH);
755
                    //defaultBitmapImage_Compare.DecodePixelHeight = Int32.Parse(e.CurrentPage.PAGE_HEIGHT);
756
                    defaultBitmapImage_Compare.EndInit();
757

  
758
                    ViewerDataModel.Instance.ImageViewPath_C = null;
759

  
760
                    Logger.sendCheckLog("pageNavigator_PageChanging_zoomAndPanControl ZoomTo 설정", 1);
761
                    zoomAndPanControl.ZoomTo(new Rect
762
                    {
763
                        X = 0,
764
                        Y = 0,
765
                        Width = Math.Max(zoomAndPanCanvas.Width, zoomAndPanCanvas2.Width),
766
                        Height = Math.Max(zoomAndPanCanvas.Height, zoomAndPanCanvas2.Height),
767
                    });
768

  
769
                    Logger.sendCheckLog("pageNavigator_PageChanging_defaultBitmapImage_Compare Downloading", 1);
770
                    if (defaultBitmapImage_Compare.IsDownloading)
771
                    {
772
                        defaultBitmapImage_Compare.DownloadCompleted += (ex, arg) =>
773
                        {
774
                            defaultBitmapImage_Compare.Freeze();
775
                            ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
776
                            ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
777
                            ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
778
                            ComparePanel.UpdateLayout();
779
                            zoomAndPanCanvas2.Width = defaultBitmapImage_Compare.PixelWidth;
780
                            zoomAndPanCanvas2.Height = defaultBitmapImage_Compare.PixelHeight;
781

  
782
                            zoomAndPanControl.ZoomTo(new Rect
783
                            {
784
                                X = 0,
785
                                Y = 0,
786
                                Width = Math.Max(zoomAndPanCanvas.Width, zoomAndPanCanvas2.Width),
787
                                Height = Math.Max(zoomAndPanCanvas.Height, zoomAndPanCanvas2.Height),
788
                            });
789

  
790
                            //defaultBitmapImage_Compare dispose
791
                            defaultBitmapImage_Compare = null;
792
                            GC.Collect();
793
                        };
794
                    }
744
                    Logger.sendCheckLog("Compare Image Download", 1);
745
                    string compareImageUri = this.GetImageURL(CurrentRev.DOCUMENT_ID, BalancePoint);
746
                    ComparePageLoad(compareImageUri,false);
795 747
                }
748

  
796 749
                tlSyncPageNum.Text = String.Format("Current Page : {0}", BalancePoint);
797 750
            }
798 751

  
......
801 754
            this.pageNavigator.ChangePage(changePageNumber);
802 755
        }
803 756

  
757
        private void ComparePageLoad(string pageUri, bool IsOriginalSize)
758
        {
759
            /// 현재 보고 있는 VP와 같은 크기로 로딩
760
            ViewerDataModel.Instance.ImageViewPath_C = null;
761

  
762
            if (IsOriginalSize && OriginalSizeMode.IsChecked)
763
            {
764
                ViewerDataModel.Instance.ImageViewPath_C = ImageSourceHelper.GetDownloadImage(pageUri);
765
            }
766
            else
767
            {
768
                var imageSize = new Size(ViewerDataModel.Instance.ImageViewWidth, ViewerDataModel.Instance.ImageViewHeight);
769
                ViewerDataModel.Instance.ImageViewPath_C = ImageSourceHelper.GetDownloadImage(pageUri, imageSize);
770
            }
771

  
772
            if (ViewerDataModel.Instance.ImageViewPath_C != null)
773
            {
774
                ViewerDataModel.Instance.ImageViewWidth_C = ViewerDataModel.Instance.ImageViewPath_C.PixelWidth;
775
                ViewerDataModel.Instance.ImageViewHeight_C = ViewerDataModel.Instance.ImageViewPath_C.PixelHeight;
776
                zoomAndPanCanvas2.Width = ViewerDataModel.Instance.ImageViewPath_C.PixelWidth;
777
                zoomAndPanCanvas2.Height = ViewerDataModel.Instance.ImageViewPath_C.PixelHeight;
778

  
779
                zoomAndPanControl.ZoomTo(new Rect
780
                {
781
                    X = 0,
782
                    Y = 0,
783
                    Width = Math.Max(zoomAndPanCanvas.Width, zoomAndPanCanvas2.Width),
784
                    Height = Math.Max(zoomAndPanCanvas.Height, zoomAndPanCanvas2.Height),
785
                });
786

  
787
                if (Sync.IsChecked)
788
                {
789
                    Sync_Click(null, new RoutedEventArgs());
790
                }
791

  
792
                if (CompareMode.IsChecked)
793
                {
794
                    SyncCompare_Click(null, new RoutedEventArgs());
795
                }
796
            }
797
        }
798

  
804 799
        /// <summary>
805 800
        /// called after page is changed
806 801
        /// </summary>
......
4763 4758
            testPanel2.IsHidden = true;
4764 4759
            ViewerDataModel.Instance.PageBalanceMode = false;
4765 4760
            ViewerDataModel.Instance.PageBalanceNumber = 0;
4766
            ViewerDataModel.Instance.PageNumber = 0;
4761
            ViewerDataModel.Instance.SyncPageNumber = 0;
4767 4762
            ViewerDataModel.Instance.MarkupControls_Sync.Clear();
4768 4763
            this.gridViewRevMarkup.Visibility = Visibility.Collapsed;
4769 4764
            UserList.IsChecked = false;
......
4777 4772
                //Compare 초기화
4778 4773
                CompareMode.IsChecked = false;
4779 4774
                var balancePoint = Convert.ToInt32((sender as System.Windows.Controls.Control).Tag);
4780

  
4781
                if (ViewerDataModel.Instance.PageNumber == 0)
4775
                
4776
                if (ViewerDataModel.Instance.SyncPageNumber == 0)
4782 4777
                {
4783
                    ViewerDataModel.Instance.PageNumber = 1;
4778
                    ViewerDataModel.Instance.SyncPageNumber = 1;
4784 4779
                }
4785 4780

  
4786 4781
                if (ViewerDataModel.Instance.PageBalanceNumber == pageNavigator.PageCount)
......
4791 4786
                    ViewerDataModel.Instance.PageBalanceNumber += balancePoint;
4792 4787
                }
4793 4788

  
4794
                if (ViewerDataModel.Instance.PageNumber == pageNavigator.PageCount && balancePoint > 0)
4789
                if (ViewerDataModel.Instance.SyncPageNumber == pageNavigator.PageCount && balancePoint > 0)
4795 4790
                {
4796 4791
                }
4797
                else if ((ViewerDataModel.Instance.PageNumber + balancePoint) >= 1)
4792
                else if ((ViewerDataModel.Instance.SyncPageNumber + balancePoint) >= 1)
4798 4793
                {
4799
                    ViewerDataModel.Instance.PageNumber += balancePoint;
4794
                    ViewerDataModel.Instance.SyncPageNumber += balancePoint;
4800 4795
                }
4801 4796

  
4802 4797
                //pageNavigator.GotoPage(ViewerDataModel.Instance.PageNumber);
......
4806 4801
                    if (IsSyncPDFMode)
4807 4802
                    {
4808 4803
                        Get_FinalImage.Get_PdfImage get_PdfImage = new Get_FinalImage.Get_PdfImage();
4809
                        var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.PageNumber)));
4804
                        var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.SyncPageNumber)));
4810 4805

  
4811 4806
                        if (pdfpath.IsDownloading)
4812 4807
                        {
......
4831 4826
                    }
4832 4827
                    else
4833 4828
                    {
4834
                        string uri = this.GetImageURL(CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.PageNumber);
4835

  
4836
                        var defaultBitmapImage_Compare = new BitmapImage(new Uri(uri));
4837

  
4838
                        ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
4839
                        ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
4840
                        ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
4841

  
4842
                        zoomAndPanCanvas2.Width = defaultBitmapImage_Compare.PixelWidth;
4843
                        zoomAndPanCanvas2.Height = defaultBitmapImage_Compare.PixelHeight;
4844

  
4845
                        if (defaultBitmapImage_Compare.IsDownloading)
4846
                        {
4847
                            defaultBitmapImage_Compare.DownloadCompleted += (ex, arg) =>
4848
                            {
4849
                                ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
4850
                                ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
4851
                                ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
4829
                        string uri = this.GetImageURL(CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.SyncPageNumber);
4852 4830

  
4853
                                zoomAndPanCanvas2.Width = defaultBitmapImage_Compare.PixelWidth;
4854
                                zoomAndPanCanvas2.Height = defaultBitmapImage_Compare.PixelHeight;
4855
                            };
4856
                        }
4831
                        var isOriginalSize = !(ViewerDataModel.Instance.SyncPageNumber == pageNavigator.CurrentPage.PageNumber);
4832
                        ComparePageLoad(uri, isOriginalSize);
4857 4833
                    }
4858 4834
                   
4859 4835
                    //강인구 추가(페이지 이동시 코멘트 재 호출)
......
4862 4838

  
4863 4839
                    foreach (var item in gridSelectionRevItem)
4864 4840
                    {
4865
                        var markupitems = item.MarkupList.Where(pageItem => pageItem.PageNumber == ViewerDataModel.Instance.PageNumber).ToList();
4841
                        var markupitems = item.MarkupList.Where(pageItem => pageItem.PageNumber == ViewerDataModel.Instance.SyncPageNumber).ToList();
4866 4842
                        foreach (var markupitem in markupitems)
4867 4843
                        {
4868 4844
                            await MarkupParser.ParseExAsync(ViewerDataModel.Instance.CancellationToken(), App.ViewInfo.ProjectNO, markupitem.Data, Common.ViewerDataModel.Instance.MarkupControls_Sync,0, item.DisplayColor, "", item.MarkupInfoID);
4869 4845
                        }
4870 4846
                    }
4871 4847

  
4872
                    //강인구 추가
4873
                    zoomAndPanControl2.ZoomTo(new Rect
4874
                    {
4875
                        X = 0,
4876
                        Y = 0,
4877
                        Width = Math.Max(zoomAndPanCanvas.Width, zoomAndPanCanvas2.Width),
4878
                        Height = Math.Max(zoomAndPanCanvas.Height, zoomAndPanCanvas2.Height),
4879
                    });
4880

  
4881
                    tlSyncPageNum.Text = String.Format("Current Page : {0}", ViewerDataModel.Instance.PageNumber);
4848
                    tlSyncPageNum.Text = String.Format("Current Page : {0}", ViewerDataModel.Instance.SyncPageNumber);
4882 4849
                }
4883 4850
            }
4884 4851
        }
......
4957 4924

  
4958 4925
                var uri = CurrentRev.TO_VENDOR;
4959 4926

  
4960
                if (ViewerDataModel.Instance.PageNumber == 0)
4927
                if (ViewerDataModel.Instance.SyncPageNumber == 0)
4961 4928
                {
4962
                    ViewerDataModel.Instance.PageNumber = 1;
4929
                    ViewerDataModel.Instance.SyncPageNumber = 1;
4963 4930
                }
4964 4931

  
4965 4932
                //PDF모드 잠시 대기(강인구)
4966 4933
                Get_FinalImage.Get_PdfImage get_PdfImage = new Get_FinalImage.Get_PdfImage();
4967
                var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.PageNumber)));
4934
                var pdfpath = new BitmapImage(new Uri(get_PdfImage.Run(CurrentRev.TO_VENDOR, App.ViewInfo.ProjectNO, CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.SyncPageNumber)));
4968 4935

  
4969 4936
                if (pdfpath.IsDownloading)
4970 4937
                {
......
4992 4959
                IsSyncPDFMode = false;
4993 4960
                string uri = this.GetImageURL(CurrentRev.DOCUMENT_ID, pageNavigator.CurrentPage.PageNumber);
4994 4961

  
4995
                var defaultBitmapImage_Compare = new BitmapImage(new Uri(uri));
4962
                ComparePageLoad(uri,false);
4996 4963

  
4997
                ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
4998
                ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
4999
                ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
5000

  
5001
                if (defaultBitmapImage_Compare.IsDownloading)
5002
                {
5003
                    defaultBitmapImage_Compare.DownloadCompleted += (ex, arg) =>
5004
                    {
5005
                        ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
5006
                        ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
5007
                        ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
5008
                    };
5009
                }
5010 4964
                zoomAndPanControl2.ApplyTemplate();
5011 4965
                zoomAndPanControl2.UpdateLayout();
5012 4966
                zoomAndPanCanvas2.Width = Convert.ToDouble(Common.ViewerDataModel.Instance.ContentWidth);
......
5040 4994
                {
5041 4995
                    ViewerDataModel.Instance.PageBalanceNumber = 1;
5042 4996
                }
5043
                if (ViewerDataModel.Instance.PageNumber == 0)
4997
                if (ViewerDataModel.Instance.SyncPageNumber == 0)
5044 4998
                {
5045
                    ViewerDataModel.Instance.PageNumber = 1;
4999
                    ViewerDataModel.Instance.SyncPageNumber = 1;
5046 5000
                }
5047 5001

  
5048 5002
                //Logger.sendReqLog("GetCompareRectAsync", _ViewInfo.ProjectNO + "," + _ViewInfo.DocumentItemID + "," + CurrentRev.DOCUMENT_ID +"," + pageNavigator.CurrentPage.PageNumber.ToString() + "," + ViewerDataModel.Instance.PageNumber.ToString() + "," + userData.COMPANY != "EXT" ? "true" : "false", 1);
5049 5003

  
5050 5004
                /// 비교대상원본, 비교할 대상
5051
                BaseClient.GetCompareRectAsync(_ViewInfo.ProjectNO,  CurrentRev.DOCUMENT_ID, _ViewInfo.DocumentItemID,  ViewerDataModel.Instance.PageNumber.ToString(), pageNavigator.CurrentPage.PageNumber.ToString(), userData.COMPANY != "EXT" ? "true" : "false");
5005
                BaseClient.GetCompareRectAsync(_ViewInfo.ProjectNO, _ViewInfo.DocumentItemID,  CurrentRev.DOCUMENT_ID,  ViewerDataModel.Instance.SyncPageNumber.ToString(), pageNavigator.CurrentPage.PageNumber.ToString(), userData.COMPANY != "EXT" ? "true" : "false");
5052 5006
            }
5053 5007
            else
5054 5008
            {
......
5090 5044
                        gridViewRevMarkup.ItemsSource = ViewerDataModel.Instance._markupInfoRevList;
5091 5045

  
5092 5046
                        string uri = this.GetImageURL(CurrentRev.DOCUMENT_ID, pageNavigator.CurrentPage.PageNumber);
5047
                        ComparePageLoad(uri,false);
5093 5048

  
5094 5049
                        Sync_Offset_Point = new Point(zoomAndPanControl.ContentOffsetX, zoomAndPanControl.ContentOffsetY);
5095
                        
5096
                        var defaultBitmapImage_Compare = ImageSourceHelper.GetDownloadImage(uri);
5097
                        ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
5098
                        ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
5099
                        ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
5100
                        zoomAndPanCanvas2.Width = defaultBitmapImage_Compare.PixelWidth;
5101
                        zoomAndPanCanvas2.Height = defaultBitmapImage_Compare.PixelHeight;
5102 5050

  
5103 5051
                        zoomAndPanControl2.ApplyTemplate();
5104 5052
                        zoomAndPanControl2.UpdateLayout();
......
5141 5089
            }
5142 5090
        }
5143 5091

  
5092
        private void OriginalSizeMode_Click(object sender,RoutedEventArgs e)
5093
        {
5094
            string uri = this.GetImageURL(CurrentRev.DOCUMENT_ID, ViewerDataModel.Instance.SyncPageNumber);
5095
            var isOriginalSize = !(ViewerDataModel.Instance.SyncPageNumber == pageNavigator.CurrentPage.PageNumber);
5096

  
5097
            ComparePageLoad(uri, isOriginalSize);
5098
        }
5099

  
5144 5100
        private void EnsembleLink_Button_Click(object sender, RoutedEventArgs e)
5145 5101
        {
5146 5102
            try
......
5194 5150

  
5195 5151
                    Sync_Offset_Point = new Point(zoomAndPanControl.ContentOffsetX, zoomAndPanControl.ContentOffsetY);
5196 5152

  
5197
                    var defaultBitmapImage_Compare = new BitmapImage(new Uri(uri));
5198

  
5199
                    ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
5200
                    ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
5201
                    ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
5202

  
5203
                    if (defaultBitmapImage_Compare.IsDownloading)
5204
                    {
5205
                        defaultBitmapImage_Compare.DownloadCompleted += (ex, arg) =>
5206
                        {
5207
                            ViewerDataModel.Instance.ImageViewPath_C = defaultBitmapImage_Compare;
5208
                            ViewerDataModel.Instance.ImageViewWidth_C = defaultBitmapImage_Compare.PixelWidth;
5209
                            ViewerDataModel.Instance.ImageViewHeight_C = defaultBitmapImage_Compare.PixelHeight;
5210
                        };
5211
                    }
5153
                    ComparePageLoad(uri,false);
5212 5154

  
5213 5155
                    zoomAndPanCanvas2.Width = Convert.ToDouble(Common.ViewerDataModel.Instance.ContentWidth);
5214 5156
                    zoomAndPanCanvas2.Height = Convert.ToDouble(Common.ViewerDataModel.Instance.ContentHeight);

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)