프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / KCOM / Common / ViewerDataModel.cs @ ed705a3d

이력 | 보기 | 이력해설 | 다운로드 (34.3 KB)

1
using KCOM.Events;
2
using KCOM.Messenger;
3
using KCOMDataModel.DataModel;
4
//using Leadtools;
5
using MarkupToPDF.Common;
6
using Newtonsoft.Json;
7
using System;
8
using System.Collections;
9
using System.Collections.Generic;
10
using System.Collections.ObjectModel;
11
using System.ComponentModel;
12
using System.IO;
13
using System.Linq;
14
using System.Text;
15
using System.Threading.Tasks;
16
using System.Windows;
17
using System.Windows.Controls;
18
using System.Windows.Ink;
19
using System.Windows.Media;
20
using System.Xml;
21
using System.Xml.Serialization;
22
//using IKCOM;
23

    
24
namespace KCOM.Common
25
{
26
    public class ViewerDataModel : INotifyPropertyChanged
27
    {
28

    
29
        System.Threading.CancellationTokenSource TokenSource;
30

    
31
        public System.Threading.CancellationToken CancellationToken()
32
        {
33
            return TokenSource.Token;
34
        }
35

    
36
        public System.Threading.CancellationToken NewCancellationToken()
37
        {
38
            if (TokenSource != null)
39
            {
40
                System.Diagnostics.Debug.WriteLine("cancel Token");
41
                TokenSource.Cancel();
42
            }
43

    
44
            TokenSource = new System.Threading.CancellationTokenSource();
45

    
46
            return TokenSource.Token;
47
        }
48

    
49

    
50
        private static DateTime KeyInputTime = DateTime.Now;
51
        private static TimeSpan KeyInputDelay = new TimeSpan(0, 0, 1);
52

    
53
        public bool IsFastKeyInput()
54
        {
55
            if(DateTime.Now - KeyInputTime < KeyInputDelay)
56
            {
57
                return true;
58
            }
59
            else
60
            {
61
                KeyInputTime = DateTime.Now;
62
                return false;
63
            }
64
        }
65

    
66
        #region Data Members
67

    
68
        private static ViewerDataModel instance = new ViewerDataModel();
69

    
70
        //private ObservableCollection<CommentUserInfo> markupControls_Pre = new ObservableCollection<CommentUserInfo>();
71

    
72
        private ObservableCollection<CommentUserInfo> markupControls = new ObservableCollection<CommentUserInfo>();
73
        private ObservableCollection<CommentUserInfo> markupControls_Sync = new ObservableCollection<CommentUserInfo>();
74
        private ObservableCollection<CommentUserInfo> markupControls_User = new ObservableCollection<CommentUserInfo>();
75

    
76

    
77
        ////강인구 추가
78
        //private List<Check_Inferface> check_Item = new List<Check_Inferface>();
79
        private ObservableCollection<KCOMDataModel.DataModel.DOCPAGE> document_Info = new ObservableCollection<KCOMDataModel.DataModel.DOCPAGE>();
80
        private ObservableCollection<Undo_data> undoDataList = new ObservableCollection<Undo_data>();
81
        
82
        //public  UndoDataList { get; set; }
83

    
84

    
85
        private ObservableCollection<IKCOM.MarkupInfoItem> markupInfoList = new ObservableCollection<IKCOM.MarkupInfoItem>();
86
        private ObservableCollection<MarkupUserInfo> markupUserList = new ObservableCollection<MarkupUserInfo>();
87
        
88
        private ObservableCollection<IKCOM.MarkupInfoItem> markupInfoRevList = new ObservableCollection<IKCOM.MarkupInfoItem>();
89

    
90
        public List<FAVORITE_DOC> FavoriteSelctedSet = new List<FAVORITE_DOC>();
91
        public List<FAVORITE_DOC> FavoriteSet = new List<FAVORITE_DOC>();
92
        public List<KCOMDataModel.DataModel.DOCPAGE> RotationDocs = new List<KCOMDataModel.DataModel.DOCPAGE>();
93
        //_markupInfoList
94

    
95
        private StrokeCollection markupPens = new StrokeCollection();
96

    
97
        //private ObservableCollection<RectangleData> rectangles = new ObservableCollection<RectangleData>();
98

    
99

    
100
        private double contentScale = 1;
101

    
102
        private double contentOffsetY = 0;
103

    
104
        private double contentOffsetX = 0;
105

    
106
        private double Sync_contentScale = 1;
107

    
108
        private double Sync_contentOffsetY = 0;
109

    
110
        private double Sync_contentOffsetX = 0;
111

    
112
        private double contentViewportHeight = 0;
113

    
114
        private double contentViewportWidth = 0;
115

    
116
        private double contentWidth = 0;
117

    
118
        private MessageCollection _k_talkMessageSet;
119

    
120
        private double contentHeight = 0;
121

    
122
        private double markupAngle = 0;
123

    
124
        private double pageAngle = 0;
125

    
126
        private double angleOffsetX = 0;
127

    
128
        private double angleOffsetY = 0;
129

    
130
        private ImageBrush backgroundImage;
131

    
132
        //private RasterImage _rasterimage;
133

    
134

    
135
        #endregion Data Members
136

    
137
        #region Property Member
138

    
139
        public bool IsWheelPageChanage = false;
140

    
141
        public static ViewerDataModel Instance
142
        {
143
            get
144
            {
145
                return instance;
146
            }
147
        }
148

    
149
        private bool isDownloadOriginal;
150
        public bool IsDownloadOriginal
151
        {
152
            get => isDownloadOriginal;
153
            set
154
            {
155
                if (isDownloadOriginal != value)
156
                {
157
                    isDownloadOriginal = value;
158
                    OnPropertyChanged("IsDownloadOriginal");
159
                }
160
            }
161
        }
162

    
163
        private bool isAdmin;
164
        public bool IsAdmin
165
        {
166
            //get => true;
167
            get => isAdmin;
168
            set
169
            {
170
                isAdmin = value;
171
                OnPropertyChanged("IsAdmin");
172
            }
173
        }
174

    
175
        private bool isDocumentHistory;
176
        public bool IsDocumentHistory
177
        {
178
            get => isDocumentHistory;
179
            set
180
            {
181
                isDocumentHistory = value;
182
                OnPropertyChanged("IsDocumentHistory");
183
            }
184
        }
185

    
186
        private bool isDownloadCancel;
187
        public bool IsDownloadCancel
188
        {
189
            get => isDownloadCancel;
190
            set
191
            {
192
                if (isDownloadCancel != value)
193
                {
194
                    isDownloadCancel = value;
195
                    OnPropertyChanged("IsDownloadCancel");
196
                }
197
            }
198
        }
199

    
200
        private int downloadFileProgress;
201
        public int DownloadFileProgress
202
        {
203
            get => downloadFileProgress;
204
            set
205
            {
206
                if (downloadFileProgress != value)
207
                {
208
                    downloadFileProgress = value;
209
                    OnPropertyChanged("DownloadFileProgress");
210
                }
211
            }
212
        }
213

    
214
        private string originalTempFile;
215
        public string OriginalTempFile
216
        {
217
            get => originalTempFile;
218
            set
219
            {
220
                if (originalTempFile != value)
221
                {
222
                    originalTempFile = value;
223
                    OnPropertyChanged("OriginalTempFile");
224
                }
225
            }
226
        }
227

    
228
        private List<IKCOM.MarkupItemEx> _MarkupList_MY { get; set; }
229
        public List<IKCOM.MarkupItemEx> MarkupList_MY
230
        {
231
            get
232
            {
233
                if (_MarkupList_MY == null)
234
                {
235
                    _MarkupList_MY = new List<IKCOM.MarkupItemEx>();
236
                }
237

    
238
                return _MarkupList_MY;
239
            }
240
            set
241
            {
242

    
243
                _MarkupList_MY = value;
244
                OnPropertyChanged("MarkupList_MY");
245
            }
246
        }
247

    
248
        private List<IKCOM.MarkupItemEx> _MarkupList_USER { get; set; }
249
        public List<IKCOM.MarkupItemEx> MyMarkupList
250
        {
251
            get
252
            {
253
                if (_MarkupList_USER == null)
254
                {
255
                    _MarkupList_USER = new List<IKCOM.MarkupItemEx>();
256
                }
257

    
258
                return _MarkupList_USER;
259
            }
260
            set
261
            {
262

    
263
                _MarkupList_USER = value;
264
                OnPropertyChanged("_MarkupList_USER");
265
            }
266
        }
267

    
268
        private List<IKCOM.MarkupItemEx> _MarkupList_Pre { get; set; }
269
        public List<IKCOM.MarkupItemEx> MarkupList_Pre
270
        {
271
            get
272
            {
273
                if (_MarkupList_Pre == null)
274
                {
275
                    _MarkupList_Pre = new List<IKCOM.MarkupItemEx>();
276
                }
277

    
278
                return _MarkupList_Pre;
279
            }
280
            set
281
            {
282

    
283
                _MarkupList_Pre = value;
284
                OnPropertyChanged("MarkupList_Pre");
285
            }
286

    
287
        }
288

    
289
        private System.IO.FileInfo _searchPDF { get; set; }
290
        public System.IO.FileInfo searchPDF
291
        {
292
            get
293
            {
294
                return _searchPDF;
295
            }
296
            set
297
            {
298
                _searchPDF = value;
299
                OnPropertyChanged("searchPDF");
300
            }
301
        }
302

    
303

    
304
        /// <summary>
305
        /// 현재 상단 메뉴에서 선택된 컨트롤
306
        /// </summary>
307
        private string _SelectedControl { get; set; }
308
        public string SelectedControl
309
        {
310
            get
311
            {
312
                return _SelectedControl;
313
            }
314
            set
315
            {
316
                _SelectedControl = value;
317
                OnPropertyChanged("SelectedControl");
318
            }
319
        }
320

    
321
        private List<KCOM.Common.MacroItem> _MacroItems;
322

    
323
        public List<KCOM.Common.MacroItem> MacroItems
324
        {
325
            get
326
            {
327
                return _MacroItems;
328
            }
329

    
330
            set
331
            {
332
                _MacroItems = value;
333
            }
334
        }
335

    
336
        private int _MacroCommandIndex;
337

    
338
        public int MacroCommandIndex
339
        {
340
            get
341
            {
342
                return _MacroCommandIndex;
343
            }
344

    
345
            set
346
            {
347
                _MacroCommandIndex = value;
348
            }
349
        }
350

    
351
        private bool _IsMacroCommand;
352

    
353
        public bool IsMacroCommand
354
        {
355
            get
356
            {
357
                return _IsMacroCommand;
358
            }
359

    
360
            set
361
            {
362
                _IsMacroCommand = value;
363
            }
364
        }
365

    
366
        /// <summary>
367
        /// 현재 상단 메뉴의 선 굵기값
368
        /// </summary>
369
        private double _LineSize { get; set; }
370
        public double LineSize
371
        {
372
            get
373
            {
374
                return _LineSize;
375
            }
376
            set
377
            {
378
                _LineSize = value;
379
                OnPropertyChanged("LineSize");
380
            }
381
        }
382

    
383
        private double _Interval { get; set; }
384
        public double Interval
385
        {
386
            get
387
            {
388
                return _Interval;
389
            }
390
            set
391
            {
392
                _Interval = value;
393
                OnPropertyChanged("Interval");
394
            }
395
        }
396
        private double _SaveInterval { get; set; }
397
        public double SaveInterval
398
        {
399
            get
400
            {
401
                return _SaveInterval;
402
            }
403
            set
404
            {
405
                _SaveInterval = value;
406
                OnPropertyChanged("SaveInterval");
407
            }
408
        }
409
        private double _ArcLength { get; set; }
410
        public double ArcLength
411
        {
412
            get
413
            {
414
                return _ArcLength;
415
            }
416
            set
417
            {
418
                _ArcLength = value;
419
                OnPropertyChanged("ArcLength");
420
            }
421
        }
422

    
423
        public bool IsPressShift
424
        {
425
            get
426
            {
427
                return ((System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Shift) == System.Windows.Input.ModifierKeys.Shift);
428
            }
429
        }
430

    
431
        public bool IsPressCtrl
432
        {
433
            get
434
            {
435
                return ((System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) == System.Windows.Input.ModifierKeys.Control);
436
            }
437
        }
438

    
439
        /// <summary>
440
        /// Dash 사이즈 
441
        /// </summary>
442
        private DoubleCollection _DashSize { get; set; }
443
        public DoubleCollection DashSize
444
        {
445
            get
446
            {
447
                return _DashSize;
448
            }
449
            set
450
            {
451
                _DashSize = value;
452
                OnPropertyChanged("DashSize");
453
            }
454
        }
455

    
456
        private string _ControlTag { get; set; }
457
        public string ControlTag
458
        {
459
            get
460
            {
461
                return _ControlTag;
462
            }
463
            set
464
            {
465
                _ControlTag = value;
466
                OnPropertyChanged("ControlTag");
467
            }
468
        }
469

    
470
        private string _CheckStatus { get; set; }
471
        public string CheckStatus
472
        {
473
            get
474
            {
475
                return _CheckStatus;
476
            }
477
            set
478
            {
479
                _CheckStatus = value;
480
                OnPropertyChanged("CheckStatus");
481
            }
482
        }
483

    
484

    
485

    
486
        //private bool _IsPageChanged { get; set; }
487
        //public bool IsPageChanged
488
        //{
489
        //    get
490
        //    {
491
        //        return _IsPageChanged;
492
        //    }
493
        //    set
494
        //    {
495
        //        _IsPageChanged = value;
496
        //        OnPropertyChanged("IsPageChanged");
497
        //    }
498
        //}
499

    
500

    
501

    
502
        ///// <summary>
503
        ///// 강인구 추가(Check List관련)
504
        ///// </summary>
505
        //public List<Check_Inferface> Check_Item
506
        //{
507
        //    get
508
        //    {
509
        //        return check_Item;
510
        //    }
511
        //}
512

    
513
        private bool _IsConsolidate { get; set; }
514
        public bool IsConsolidate
515
        {
516
            get
517
            {
518
                return _IsConsolidate;
519
            }
520
            set
521
            {
522
                _IsConsolidate = value;
523
                OnPropertyChanged("IsConsolidate");
524
            }
525
        }
526

    
527
        ////////////////////////////////////////////////
528

    
529

    
530
        #region Angle 관련
531
        private Visibility _MarkupAngleVisibility { get; set; }
532
        public Visibility MarkupAngleVisibility
533
        {
534
            get
535
            {
536
                return _MarkupAngleVisibility;
537
            }
538
            set
539
            {
540
                _MarkupAngleVisibility = value;
541
                OnPropertyChanged("MarkupAngleVisibility");
542
            }
543

    
544
        }
545

    
546
        public double MarkupAngle
547
        {
548
            get
549
            {
550
                return markupAngle;
551
            }
552
            set
553
            {
554
                markupAngle = value;
555
                OnPropertyChanged("MarkupAngle");
556
            }
557
        }
558

    
559
        public double PageAngle
560
        {
561
            get
562
            {
563
                return pageAngle;
564
            }
565
            set
566
            {
567
                pageAngle = value;
568
                OnPropertyChanged("PageAngle");
569
            }
570
        }
571

    
572
        private string _HelperContent { get; set; }
573
        public string HelperContent
574
        {
575
            get
576
            {
577
                return _HelperContent;
578
            }
579
            set
580
            {
581
                _HelperContent = value;
582
                OnPropertyChanged("HelperContent");
583
            }
584
        }
585

    
586
        private string _HelperHeader { get; set; }
587
        public string HelperHeader
588
        {
589
            get
590
            {
591
                return _HelperHeader;
592
            }
593
            set
594
            {
595
                _HelperHeader = value;
596
                OnPropertyChanged("HelperHeader");
597
            }
598
        }
599

    
600
        private bool _HelperExit { get; set; }
601
        public bool HelperExit
602
        {
603
            get
604
            {
605
                return _HelperExit;
606
            }
607
            set
608
            {
609
                _HelperExit = value;
610
                OnPropertyChanged("HelperExit");
611
            }
612
        }
613

    
614
        #endregion
615

    
616
        public event EventHandler<EventArgs> PageLoaded;
617

    
618
        /// <summary>
619
        /// 페이지 변경 후 페이지에 해당하는 마크업을 모두 읽었을때 이벤트를 보내도록 한다.
620
        /// </summary>
621
        public void LoadPageMarkupFinish(Rect rect)
622
        {
623
            if(PageLoaded != null)
624
            {
625
                PageLoaded(this, new EventArgs());
626
            }
627
            else
628
            {
629
                this.SystemMain.dzMainMenu.zoomAndPanControl.ZoomTo(rect);
630
            }
631
        }
632

    
633
        public void SetAngleVisible(Visibility visibility)
634
        {
635
            this.MarkupAngleVisibility = visibility;
636
        }
637

    
638

    
639
        public ObservableCollection<CommentUserInfo> MarkupControls
640
        {
641
            get
642
            {
643
                return markupControls;
644
            }
645
        }
646

    
647
        public ObservableCollection<CommentUserInfo> MarkupControls_Sync
648
        {
649
            get
650
            {
651
                return markupControls_Sync;
652
            }
653
        }
654
        public int current_page_commentcnt = 0;
655
        public ObservableCollection<CommentUserInfo> MarkupControls_USER
656
        {
657
            get
658
            {
659
                return markupControls_User;
660
            }
661
        }
662

    
663
        public ObservableCollection<Undo_data> UndoDataList
664
        {
665
            get
666
            {
667
                return undoDataList;
668
            }
669
        }
670
        
671
        public StrokeCollection MarkupPens
672
        {
673
            get
674
            {
675
                return markupPens;
676
            }
677

    
678
        }
679

    
680
        #region 버튼 여부
681

    
682
        /// <summary>
683
        /// 상단 Fill 버튼이 클릭 되어있는지
684
        /// </summary>
685
        private bool _checkFillShape { get; set; }
686
        public bool checkFillShape
687
        {
688
            get
689
            {
690
                return _checkFillShape;
691
            }
692
            set
693
            {
694
                _checkFillShape = value;
695
                OnPropertyChanged("checkFillShape");
696
            }
697
        }
698

    
699
        /// <summary>
700
        /// 상단 Hatch 버튼이 클릭 되어있는지
701
        /// </summary>
702
        private bool _checkHatchShape { get; set; }
703
        public bool checkHatchShape
704
        {
705
            get
706
            {
707
                return _checkHatchShape;
708
            }
709
            set
710
            {
711
                _checkHatchShape = value;
712
                OnPropertyChanged("checkHatchShape");
713
            }
714
        }
715

    
716
        private double _controlOpacity { get; set; }
717
        public double ControlOpacity
718
        {
719
            get
720
            {
721
                return _controlOpacity;
722
            }
723
            set
724
            {
725

    
726
                _controlOpacity = value;
727
                OnPropertyChanged("ControlOpacity");
728
            }
729
        }
730

    
731
        private MarkupToPDF.Controls.Common.PaintSet _paintSet { get; set; }
732
        public MarkupToPDF.Controls.Common.PaintSet paintSet
733
        {
734
            get
735
            {
736
                return _paintSet;
737
            }
738
            set
739
            {
740
                _paintSet = value;
741
                OnPropertyChanged("paintSet");
742
            }
743
        }
744

    
745
        /// <summary>
746
        /// 강인구 추가
747
        /// 상단 TextStyle 버튼이 클릭 되어있는지
748
        /// </summary>
749
        private bool _checkTextStyle { get; set; }
750
        public bool checkTextStyle
751
        {
752
            get
753
            {
754
                return _checkTextStyle;
755
            }
756
            set
757
            {
758
                _checkTextStyle = value;
759
                OnPropertyChanged("checkTextStyle");
760
            }
761
        }
762

    
763
        /// <summary>
764
        /// 강인구 추가
765
        /// 상단 TextWeight 버튼이 클릭 되어있는지
766
        /// </summary>
767
        private bool _checkTextWeight { get; set; }
768
        public bool checkTextWeight
769
        {
770
            get
771
            {
772
                return _checkTextWeight;
773
            }
774
            set
775
            {
776
                _checkTextWeight = value;
777
                OnPropertyChanged("checkTextWeight");
778
            }
779
        }
780

    
781
        /// <summary>
782
        /// 강인구 추가
783
        /// 상단 UnderLine 버튼이 클릭 되어있는지
784
        /// </summary>
785
        private bool _checkUnderLine { get; set; }
786
        public bool checkUnderLine
787
        {
788
            get
789
            {
790
                return _checkUnderLine;
791
            }
792
            set
793
            {
794
                _checkUnderLine = value;
795
                OnPropertyChanged("checkUnderLine");
796
            }
797
        }
798

    
799
        /// <summary>
800
        /// 상단 Hatch 버튼이 클릭 되어있는지
801
        /// </summary>
802
        private bool _checkHighShape { get; set; }
803
        public bool checkHighShape
804
        {
805
            get
806
            {
807
                return _checkHighShape;
808
            }
809
            set
810
            {
811
                _checkHighShape = value;
812
                OnPropertyChanged("checkHighShape");
813
            }
814
        }
815

    
816
        /// <summary>
817
        /// 상단 Axis 버튼이 클릭 되어있는지
818
        /// </summary>
819
        private bool _IsAxisLock { get; set; }
820
        public bool IsAxisLock
821
        {
822
            get
823
            {
824
                return _IsAxisLock;
825
            }
826
            set
827
            {
828
                _IsAxisLock = value;
829
                OnPropertyChanged("IsAxisLock");
830
            }
831
        }
832

    
833
        /// <summary>
834
        /// 상단 Highlight 버튼이 클릭 되어있는지
835
        /// </summary>
836
        private bool _checkHighlight { get; set; }
837
        public bool checkHighlight
838
        {
839
            get
840
            {
841
                return _checkHighlight;
842
            }
843
            set
844
            {
845
                _checkHighlight = value;
846
                OnPropertyChanged("checkHighlight");
847
            }
848
        }
849

    
850
        /// <summary>
851
        /// 강인구 추가
852
        /// 상단 TextWeight 버튼이 클릭 되어있는지
853
        /// </summary>
854
        private double _TextSize { get; set; }
855
        public double TextSize
856
        {
857
            get
858
            {
859
                return _TextSize;
860
            }
861
            set
862
            {
863
                _TextSize = value;
864
                OnPropertyChanged("TextSize");
865
            }
866
        }
867
        #endregion
868

    
869
        public ImageBrush BackgroundImage
870
        {
871
            get
872
            {
873
                return backgroundImage;
874
            }
875
            set
876
            {
877
                backgroundImage = value;
878
                OnPropertyChanged("BackgroundImage");
879
            }
880
        }
881

    
882
        public ObservableCollection<KCOMDataModel.DataModel.DOCPAGE> Document_Info
883
        {
884
            get
885
            {
886
                return document_Info;
887
            }
888
        }
889

    
890
        public double ContentScale
891
        {
892
            get
893
            {
894
                return contentScale;
895
            }
896
            set
897
            {
898
                contentScale = value;
899

    
900
                double minOffsetX = 0.0;
901
                double maxOffsetX = Math.Max(0.0, ContentWidth - ContentViewportWidth);
902
                contentOffsetX = Math.Min(Math.Max(contentOffsetX, minOffsetX), maxOffsetX);
903

    
904
                double minOffsetY = 0.0;
905
                double maxOffsetY = Math.Max(0.0, ContentHeight - ContentViewportHeight);
906
                contentOffsetY = Math.Min(Math.Max(contentOffsetY, minOffsetY), maxOffsetY);
907

    
908
                OnPropertyChanged("ContentScale");
909
            }
910
        }
911

    
912
        public double Sync_ContentScale
913
        {
914
            get
915
            {
916
                return Sync_contentScale;
917
            }
918
            set
919
            {
920
                Sync_contentScale = value;
921
                OnPropertyChanged("Sync_ContentScale");
922
            }
923
        }
924

    
925
        public ObservableCollection<IKCOM.MarkupInfoItem> _markupInfoList
926
        {
927
            get
928
            {
929
                return markupInfoList;
930
            }
931
            set
932
            {
933
                markupInfoList = value;
934
                OnPropertyChanged("_markupInfoList");
935
            }
936
        }
937

    
938
        public ObservableCollection<MarkupUserInfo> _markupUserList
939
        {
940
            get
941
            {
942
                return markupUserList;
943
            }
944
            set
945
            {
946
                markupUserList = value;
947
                OnPropertyChanged("_markupUserList");
948
            }
949
        }
950

    
951
        public ObservableCollection<IKCOM.MarkupInfoItem> _markupInfoRevList
952
        {
953
            get
954
            {
955
                return markupInfoRevList;
956
            }
957
            set
958
            {
959
                markupInfoRevList = value;
960
                OnPropertyChanged("_markupInfoRevList");
961
            }
962
        }
963

    
964
        public double ContentOffsetX
965
        {
966
            get
967
            {
968
                return contentOffsetX;
969
            }
970
            set
971
            {
972
                double minOffsetX = 0.0;
973
                double maxOffsetX = Math.Max(0.0, ContentWidth - ContentViewportWidth);
974
                contentOffsetX = Math.Min(Math.Max(value, minOffsetX), maxOffsetX);
975
                OnPropertyChanged("ContentOffsetX");
976
            }
977
        }
978

    
979
        public double ContentOffsetY
980
        {
981
            get
982
            {
983
                return contentOffsetY;
984
            }
985
            set
986
            {
987
                double minOffsetY = 0.0;
988
                double maxOffsetY = Math.Max(0.0, ContentHeight - ContentViewportHeight);
989
                contentOffsetY = Math.Min(Math.Max(value, minOffsetY), maxOffsetY);
990
                OnPropertyChanged("ContentOffsetY");
991
            }
992
        }
993

    
994
        public double Sync_ContentOffsetX
995
        {
996
            get
997
            {
998
                return Sync_contentOffsetX;
999
            }
1000
            set
1001
            {
1002
                Sync_contentOffsetX = value;
1003
                OnPropertyChanged("Sync_ContentOffsetX");
1004
            }
1005
        }
1006

    
1007
        public double Sync_ContentOffsetY
1008
        {
1009
            get
1010
            {
1011
                return Sync_contentOffsetY;
1012
            }
1013
            set
1014
            {
1015
                Sync_contentOffsetY = value;
1016
                OnPropertyChanged("Sync_ContentOffsetY");
1017
            }
1018
        }
1019

    
1020
        public MessageCollection k_talkMessageSet
1021
        {
1022
            get
1023
            {
1024
                if (_k_talkMessageSet == null)
1025
                {
1026
                    _k_talkMessageSet = new MessageCollection();
1027
                }
1028
                return _k_talkMessageSet;
1029
            }
1030
            set
1031
            {
1032
                _k_talkMessageSet = value;
1033
                OnPropertyChanged("k_talkMessageSet");
1034
            }
1035
        }
1036

    
1037
        public double ContentWidth
1038
        {
1039
            get
1040
            {
1041
                return contentWidth;
1042
            }
1043
            set
1044
            {
1045
                contentWidth = value;
1046
                OnPropertyChanged("ContentWidth");
1047
            }
1048
        }
1049

    
1050
        public double ContentHeight
1051
        {
1052
            get
1053
            {
1054
                return contentHeight;
1055
            }
1056
            set
1057
            {
1058
                contentHeight = value;
1059
                OnPropertyChanged("ContentHeight");
1060
            }
1061
        }
1062

    
1063
        public double ContentViewportWidth
1064
        {
1065
            get
1066
            {
1067
                return contentViewportWidth;
1068
            }
1069
            set
1070
            {
1071
                contentViewportWidth = value;
1072
                OnPropertyChanged("ContentViewportWidth");
1073
            }
1074
        }
1075

    
1076
        public double ContentViewportHeight
1077
        {
1078
            get
1079
            {
1080
                return contentViewportHeight;
1081
            }
1082
            set
1083
            {
1084
                contentViewportHeight = value;
1085
                OnPropertyChanged("ContentViewportHeight");
1086
            }
1087
        }
1088

    
1089
        public MainWindow SystemMain { get; set; }
1090

    
1091
        private bool _PageBalanceMode { get; set; }
1092
        public bool PageBalanceMode
1093
        {
1094
            get
1095
            {
1096
                return _PageBalanceMode;
1097
            }
1098
            set
1099
            {
1100
                _PageBalanceMode = value;
1101
                OnPropertyChanged("PageBalanceMode");
1102
            }
1103
        }
1104

    
1105
        private int _PageBalanceNumber { get; set; }
1106
        public int PageBalanceNumber
1107
        {
1108
            get
1109
            {
1110
                return _PageBalanceNumber;
1111
            }
1112
            set
1113
            {
1114
                _PageBalanceNumber = value;
1115
                OnPropertyChanged("PageBalanceNumber");
1116
            }
1117
        }
1118

    
1119
        private int _PageNumber { get; set; }
1120
        public int PageNumber
1121
        {
1122
            get
1123
            {
1124
                return _PageNumber;
1125
            }
1126
            set
1127
            {
1128
                if (_PageNumber != value)
1129
                {
1130
                    _PageNumber = value;
1131
                    OnPropertyChanged("PageNumber");
1132
                }
1133
            }
1134
        }
1135

    
1136
        public double AngleOffsetX
1137
        {
1138
            get
1139
            {
1140
                return angleOffsetX;
1141
            }
1142
            set
1143
            {
1144
                angleOffsetX = value;
1145
                OnPropertyChanged("AngleOffsetX");
1146
            }
1147
        }
1148

    
1149
        public double AngleOffsetY
1150
        {
1151
            get
1152
            {
1153
                return angleOffsetY;
1154
            }
1155
            set
1156
            {
1157
                angleOffsetY = value;
1158
                OnPropertyChanged("AngleOffsetY");
1159
            }
1160
        }
1161

    
1162
        //강인구 추가(체크리스트)
1163
        private string _CheckList_ID { get; set; }
1164
        public string CheckList_ID
1165
        {
1166
            get
1167
            {
1168
                return _CheckList_ID;
1169
            }
1170
            set
1171
            {
1172
                _CheckList_ID = value;
1173
                OnPropertyChanged("CheckList_ID");
1174
            }
1175
        }
1176
        //강인구 추가(캡쳐 모드)
1177
        private double _Capture_Opacity { get; set; }
1178
        public double Capture_Opacity
1179
        {
1180
            get
1181
            {
1182
                return _Capture_Opacity;
1183
            }
1184
            set
1185
            {
1186
                _Capture_Opacity = value;
1187
                OnPropertyChanged("Capture_Opacity");
1188
            }
1189
        }
1190

    
1191
        private Visibility _ViewVisible { get; set; }
1192
        public Visibility ViewVisible
1193
        {
1194
            get
1195
            {
1196
                return _ViewVisible;
1197
            }
1198
            set
1199
            {
1200
                _ViewVisible = value;
1201
                OnPropertyChanged("ViewVisible");
1202
            }
1203
        }
1204

    
1205
        private bool _IsSync { get; set; }
1206
        public bool IsSync
1207
        {
1208
            get
1209
            {
1210
                return _IsSync;
1211
            }
1212
            set
1213
            {
1214
                _IsSync = value;
1215
                OnPropertyChanged("IsSync");
1216
            }
1217
        }
1218

    
1219
        private System.Windows.Media.Imaging.BitmapFrame _ImageViewPath;
1220
        public System.Windows.Media.Imaging.BitmapFrame ImageViewPath
1221
        {
1222
            get
1223
            {
1224
                return _ImageViewPath;
1225
            }
1226
            set
1227
            {
1228
                _ImageViewPath = value;
1229
                OnPropertyChanged("ImageViewPath");
1230
            }
1231
        }
1232
        private double _ImageViewWidth { get; set; }
1233
        public double ImageViewWidth
1234
        {
1235
            get
1236
            {
1237
                return _ImageViewWidth;
1238
            }
1239
            set
1240
            {
1241
                _ImageViewWidth = value;
1242
                OnPropertyChanged("ImageViewWidth");
1243
            }
1244
        }
1245
        private double _ImageViewHeight { get; set; }
1246
        public double ImageViewHeight
1247
        {
1248
            get
1249
            {
1250
                return _ImageViewHeight;
1251
            }
1252
            set
1253
            {
1254
                _ImageViewHeight = value;
1255
                OnPropertyChanged("ImageViewHeight");
1256
            }
1257
        }
1258

    
1259
        private System.Windows.Media.Imaging.BitmapImage _ImageViewPath_C;
1260
        public System.Windows.Media.Imaging.BitmapImage ImageViewPath_C
1261
        {
1262
            get
1263
            {
1264
                return _ImageViewPath_C;
1265
            }
1266
            set
1267
            {
1268
                _ImageViewPath_C = value;
1269
                OnPropertyChanged("ImageViewPath_C");
1270
            }
1271
        }
1272
        private double _ImageViewWidth_C { get; set; }
1273
        public double ImageViewWidth_C
1274
        {
1275
            get
1276
            {
1277
                return _ImageViewWidth_C;
1278
            }
1279
            set
1280
            {
1281
                _ImageViewWidth_C = value;
1282
                OnPropertyChanged("ImageViewWidth_C");
1283
            }
1284
        }
1285
        private double _ImageViewHeight_C { get; set; }
1286
        public double ImageViewHeight_C
1287
        {
1288
            get
1289
            {
1290
                return _ImageViewHeight_C;
1291
            }
1292
            set
1293
            {
1294
                _ImageViewHeight_C = value;
1295
                OnPropertyChanged("ImageViewHeight_C");
1296
            }
1297
        }
1298

    
1299

    
1300
        #endregion Property Member
1301

    
1302
        public System.IO.Stream GetStreamFromUrl(string url)
1303
        {
1304
            byte[] imageData = null;
1305

    
1306
            using (var wc = new System.Net.WebClient())
1307
                imageData = wc.DownloadData(url);
1308

    
1309
            return new System.IO.MemoryStream(imageData);
1310
        }
1311

    
1312
        public ViewerDataModel()
1313
        {
1314
            //rectangles.Add(new RectangleData(50, 50, 80, 150, Colors.Blue));
1315
            //rectangles.Add(new RectangleData(550, 350, 80, 150, Colors.Green));
1316
            //rectangles.Add(new RectangleData(850, 850, 30, 20, Colors.Purple));
1317
            //rectangles.Add(new RectangleData(1850, 1850, 80, 150, Colors.Red));
1318

    
1319
            //RectangleControl rect1 = new RectangleControl();
1320
            //rect1.StartPoint = new Point(50, 50);
1321
            //rect1.LeftBottomPoint = new Point(100, 50);
1322
            //rect1.TopRightPoint = new Point(50, 100);
1323
            //rect1.EndPoint = new Point(100, 100);
1324
            //rect1.FillColor = new SolidColorBrush(Colors.Red);
1325
            //rectangles.Add(rect1);
1326
            //
1327
            // Populate the data model with some example data.
1328
            //
1329
            //rectangles.Add(new RectangleData(50, 50, 80, 150, Colors.Blue));
1330
            //rectangles.Add(new RectangleData(550, 350, 80, 150, Colors.Green));
1331
            //rectangles.Add(new RectangleData(850, 850, 30, 20, Colors.Purple));
1332
            //rectangles.Add(new RectangleData(1850, 1850, 80, 150, Colors.Red));
1333

    
1334
            this.ControlOpacity = 1;
1335

    
1336
            /* Default
1337
             LineSize = 3, TextSize = 30, Interval = 10, ArcLength = 10, SaveInterval = 5
1338
            */            
1339
            this.LineSize = KCOM.Properties.Settings.Default.LineSize;
1340

    
1341
            this.TextSize = KCOM.Properties.Settings.Default.TextSize;
1342

    
1343
            this.Interval = KCOM.Properties.Settings.Default.Interval;
1344

    
1345
            this.ArcLength = KCOM.Properties.Settings.Default.ArcLength;
1346

    
1347
            this.DashSize = new DoubleCollection();
1348

    
1349
            this.SaveInterval = KCOM.Properties.Settings.Default.SaveInterval;
1350
            this.MarkupAngleVisibility = Visibility.Collapsed;
1351
        }
1352

    
1353

    
1354
        public List<IKCOM.MarkupInfoItem> SelectedmarkupInfoItems { get; set; }
1355
       
1356
        #region INotifyPropertyChanged Event
1357

    
1358
        private void OnPropertyChanged(string name)
1359
        {
1360
            if (PropertyChanged != null)
1361
            {
1362
                PropertyChanged(this, new PropertyChangedEventArgs(name));
1363
            }
1364
        }
1365

    
1366
        public event PropertyChangedEventHandler PropertyChanged;
1367

    
1368
        #endregion
1369
    }
1370
}
클립보드 이미지 추가 (최대 크기: 500 MB)