1- using LogExpert . Core . Entities ;
1+ using LogExpert . Core . Entities ;
22using LogExpert . Core . Interface ;
33
44using NLog ;
55
6- namespace LogExpert . Core . Classes . Bookmark
6+ namespace LogExpert . Core . Classes . Bookmark ;
7+
8+ public class BookmarkDataProvider : IBookmarkData
79{
8- public class BookmarkDataProvider : IBookmarkData
9- {
10- #region Fields
10+ #region Fields
1111
12- private static readonly ILogger _logger = LogManager . GetCurrentClassLogger ( ) ;
12+ private static readonly Logger _logger = LogManager . GetCurrentClassLogger ( ) ;
1313
14- #endregion
14+ #endregion
1515
16- #region cTor
16+ #region cTor
1717
18- public BookmarkDataProvider ( )
19- {
20- BookmarkList = [ ] ;
21- }
18+ public BookmarkDataProvider ( )
19+ {
20+ BookmarkList = [ ] ;
21+ }
2222
23- public BookmarkDataProvider ( SortedList < int , Entities . Bookmark > bookmarkList )
24- {
25- BookmarkList = bookmarkList ;
26- }
23+ public BookmarkDataProvider ( SortedList < int , Entities . Bookmark > bookmarkList )
24+ {
25+ BookmarkList = bookmarkList ;
26+ }
2727
28- #endregion
28+ #endregion
2929
30- #region Delegates
30+ #region Delegates
3131
32- public delegate void AllBookmarksRemovedEventHandler ( object sender , System . EventArgs e ) ;
32+ public delegate void AllBookmarksRemovedEventHandler ( object sender , EventArgs e ) ;
3333
34- public delegate void BookmarkAddedEventHandler ( object sender , System . EventArgs e ) ;
34+ public delegate void BookmarkAddedEventHandler ( object sender , EventArgs e ) ;
3535
36- public delegate void BookmarkRemovedEventHandler ( object sender , System . EventArgs e ) ;
36+ public delegate void BookmarkRemovedEventHandler ( object sender , EventArgs e ) ;
3737
38- #endregion
38+ #endregion
3939
40- #region Events
40+ #region Events
4141
42- public event BookmarkAddedEventHandler BookmarkAdded ;
43- public event BookmarkRemovedEventHandler BookmarkRemoved ;
44- public event AllBookmarksRemovedEventHandler AllBookmarksRemoved ;
42+ public event BookmarkAddedEventHandler BookmarkAdded ;
43+ public event BookmarkRemovedEventHandler BookmarkRemoved ;
44+ public event AllBookmarksRemovedEventHandler AllBookmarksRemoved ;
4545
46- #endregion
46+ #endregion
4747
48- #region Properties
48+ #region Properties
4949
50- public BookmarkCollection Bookmarks => new ( BookmarkList ) ;
50+ public BookmarkCollection Bookmarks => new ( BookmarkList ) ;
5151
52- public SortedList < int , Entities . Bookmark > BookmarkList { get ; set ; }
52+ public SortedList < int , Entities . Bookmark > BookmarkList { get ; private set ; }
5353
54- #endregion
54+ #endregion
5555
56- #region Public methods
56+ #region Public methods
5757
58- public void ToggleBookmark ( int lineNum )
59- {
60- if ( IsBookmarkAtLine ( lineNum ) )
61- {
62- RemoveBookmarkForLine ( lineNum ) ;
63- }
64- else
65- {
66- AddBookmark ( new Entities . Bookmark ( lineNum ) ) ;
67- }
68- }
58+ public void SetBookmarks ( SortedList < int , Entities . Bookmark > bookmarkList )
59+ {
60+ BookmarkList = bookmarkList ;
61+ }
6962
70- public bool IsBookmarkAtLine ( int lineNum )
63+ public void ToggleBookmark ( int lineNum )
64+ {
65+ if ( IsBookmarkAtLine ( lineNum ) )
7166 {
72- return BookmarkList . ContainsKey ( lineNum ) ;
67+ RemoveBookmarkForLine ( lineNum ) ;
7368 }
74-
75- public int GetBookmarkIndexForLine ( int lineNum )
69+ else
7670 {
77- return BookmarkList . IndexOfKey ( lineNum ) ;
71+ AddBookmark ( new Entities . Bookmark ( lineNum ) ) ;
7872 }
73+ }
7974
80- public Entities . Bookmark GetBookmarkForLine ( int lineNum )
81- {
82- return BookmarkList [ lineNum ] ;
83- }
75+ public bool IsBookmarkAtLine ( int lineNum )
76+ {
77+ return BookmarkList . ContainsKey ( lineNum ) ;
78+ }
8479
85- #endregion
80+ public int GetBookmarkIndexForLine ( int lineNum )
81+ {
82+ return BookmarkList . IndexOfKey ( lineNum ) ;
83+ }
8684
87- #region Internals
85+ public Entities . Bookmark GetBookmarkForLine ( int lineNum )
86+ {
87+ return BookmarkList [ lineNum ] ;
88+ }
8889
89- public void ShiftBookmarks ( int offset )
90- {
91- SortedList < int , Entities . Bookmark > newBookmarkList = [ ] ;
92- foreach ( Entities . Bookmark bookmark in BookmarkList . Values )
93- {
94- int line = bookmark . LineNum - offset ;
95- if ( line >= 0 )
96- {
97- bookmark . LineNum = line ;
98- newBookmarkList . Add ( line , bookmark ) ;
99- }
100- }
101- BookmarkList = newBookmarkList ;
102- }
90+ #endregion
10391
104- public int FindPrevBookmarkIndex ( int lineNum )
92+ #region Internals
93+
94+ public void ShiftBookmarks ( int offset )
95+ {
96+ SortedList < int , Entities . Bookmark > newBookmarkList = [ ] ;
97+
98+ foreach ( Entities . Bookmark bookmark in BookmarkList . Values )
10599 {
106- IList < Entities . Bookmark > values = BookmarkList . Values ;
107- for ( int i = BookmarkList . Count - 1 ; i >= 0 ; -- i )
100+ var line = bookmark . LineNum - offset ;
101+ if ( line >= 0 )
108102 {
109- if ( values [ i ] . LineNum <= lineNum )
110- {
111- return i ;
112- }
103+ bookmark . LineNum = line ;
104+ newBookmarkList . Add ( line , bookmark ) ;
113105 }
114- return BookmarkList . Count - 1 ;
115106 }
116107
117- public int FindNextBookmarkIndex ( int lineNum )
108+ BookmarkList = newBookmarkList ;
109+ }
110+
111+ public int FindPrevBookmarkIndex ( int lineNum )
112+ {
113+ IList < Entities . Bookmark > values = BookmarkList . Values ;
114+ for ( var i = BookmarkList . Count - 1 ; i >= 0 ; -- i )
118115 {
119- IList < Entities . Bookmark > values = BookmarkList . Values ;
120- for ( int i = 0 ; i < BookmarkList . Count ; ++ i )
116+ if ( values [ i ] . LineNum <= lineNum )
121117 {
122- if ( values [ i ] . LineNum >= lineNum )
123- {
124- return i ;
125- }
118+ return i ;
126119 }
127- return 0 ;
128120 }
129121
130- public void RemoveBookmarkForLine ( int lineNum )
131- {
132- BookmarkList . Remove ( lineNum ) ;
133- OnBookmarkRemoved ( ) ;
134- }
122+ return BookmarkList . Count - 1 ;
123+ }
135124
136- public void RemoveBookmarksForLines ( List < int > lineNumList )
125+ public int FindNextBookmarkIndex ( int lineNum )
126+ {
127+ IList < Entities . Bookmark > values = BookmarkList . Values ;
128+ for ( var i = 0 ; i < BookmarkList . Count ; ++ i )
137129 {
138- foreach ( int lineNum in lineNumList )
130+ if ( values [ i ] . LineNum >= lineNum )
139131 {
140- BookmarkList . Remove ( lineNum ) ;
132+ return i ;
141133 }
142- OnBookmarkRemoved ( ) ;
143134 }
135+ return 0 ;
136+ }
144137
138+ public void RemoveBookmarkForLine ( int lineNum )
139+ {
140+ _ = BookmarkList . Remove ( lineNum ) ;
141+ OnBookmarkRemoved ( ) ;
142+ }
145143
146- public void AddBookmark ( Entities . Bookmark bookmark )
144+ public void RemoveBookmarksForLines ( List < int > lineNumList )
145+ {
146+ foreach ( var lineNum in lineNumList )
147147 {
148- BookmarkList . Add ( bookmark . LineNum , bookmark ) ;
149- OnBookmarkAdded ( ) ;
150- }
148+ _ = BookmarkList . Remove ( lineNum ) ;
151149
152- public void ClearAllBookmarks ( )
153- {
154- _logger . Debug ( "Removing all bookmarks" ) ;
155- BookmarkList . Clear ( ) ;
156- OnAllBookmarksRemoved ( ) ;
157150 }
158151
159- #endregion
152+ OnBookmarkRemoved ( ) ;
153+ }
160154
161- protected void OnBookmarkAdded ( )
162- {
163- BookmarkAdded ? . Invoke ( this , System . EventArgs . Empty ) ;
164- }
165155
166- protected void OnBookmarkRemoved ( )
167- {
168- BookmarkRemoved ? . Invoke ( this , System . EventArgs . Empty ) ;
169- }
156+ public void AddBookmark ( Entities . Bookmark bookmark )
157+ {
158+ BookmarkList . Add ( bookmark . LineNum , bookmark ) ;
159+ OnBookmarkAdded ( ) ;
160+ }
170161
171- protected void OnAllBookmarksRemoved ( )
172- {
173- AllBookmarksRemoved ? . Invoke ( this , System . EventArgs . Empty ) ;
174- }
162+ public void ClearAllBookmarks ( )
163+ {
164+ _logger . Debug ( "Removing all bookmarks" ) ;
165+ BookmarkList . Clear ( ) ;
166+ OnAllBookmarksRemoved ( ) ;
167+ }
168+
169+ #endregion
170+
171+ protected void OnBookmarkAdded ( )
172+ {
173+ BookmarkAdded ? . Invoke ( this , EventArgs . Empty ) ;
174+ }
175+
176+ protected void OnBookmarkRemoved ( )
177+ {
178+ BookmarkRemoved ? . Invoke ( this , EventArgs . Empty ) ;
179+ }
180+
181+ protected void OnAllBookmarksRemoved ( )
182+ {
183+ AllBookmarksRemoved ? . Invoke ( this , EventArgs . Empty ) ;
175184 }
176185}
0 commit comments