Skip to content

Commit e56215e

Browse files
authored
Merge pull request #425 from RandallFlagg/columizer_callback
ColumnizerCallback Improvments
2 parents 7c78ec0 + 18ff4c7 commit e56215e

File tree

6 files changed

+27
-50
lines changed

6 files changed

+27
-50
lines changed

src/ColumnizerLib/ILogLineColumnizerCallback.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,12 @@ public interface ILogLineColumnizerCallback
1717
#region Public methods
1818

1919
/// <summary>
20-
/// This function returns the current line number. That is the line number of the log line
20+
/// This property returns the current line number. That is the line number of the log line
2121
/// a ILogLineColumnizer function is called for (e.g. the line that has to be painted).
2222
/// </summary>
2323
/// <returns>The current line number starting at 0</returns>
24-
int GetLineNum ();
24+
int LineNum { get; }
2525

26-
/// <summary>
27-
/// This function sets the current line number. That is the line number of the log line
28-
/// a ILogLineColumnizer function is called for (e.g. the line that has to be painted).
29-
/// </summary>
30-
/// <param name="lineNum">line number to be set</param>
31-
void SetLineNum (int lineNum);
3226
/// <summary>
3327
/// Returns the full file name (path + name) of the current log file.
3428
/// </summary>

src/DefaultPlugins/ProcessLauncher.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void Execute (string keyword, string param, ILogExpertCallback callback,
4343
parameters = parameters.Replace("%F", callback.GetFileName(), StringComparison.Ordinal);
4444
parameters = parameters.Replace("%K", keyword, StringComparison.Ordinal);
4545

46-
var lineNumber = callback.GetLineNum(); //Line Numbers start at 0, but are displayed (+1)
46+
var lineNumber = callback.LineNum; //Line Numbers start at 0, but are displayed (+1)
4747
var logline = callback.GetLogLine(lineNumber).FullLine;
4848
parameters = parameters.Replace("%L", string.Empty + lineNumber, System.StringComparison.Ordinal);
4949
parameters = parameters.Replace("%T", callback.GetTabTitle(), StringComparison.Ordinal);

src/LogExpert.Core/Callback/ColumnizerCallback.cs

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,69 +2,54 @@
22

33
namespace LogExpert.Core.Callback;
44

5-
public class ColumnizerCallback : ILogLineColumnizerCallback, IAutoLogLineColumnizerCallback
5+
public class ColumnizerCallback(ILogWindow logWindow) : ILogLineColumnizerCallback, IAutoLogLineColumnizerCallback, ICloneable
66
{
7-
#region cTor
8-
9-
public ColumnizerCallback (ILogWindow logWindow)
10-
{
11-
LogWindow = logWindow;
12-
}
13-
14-
private ColumnizerCallback (ColumnizerCallback original)
15-
{
16-
LogWindow = original.LogWindow;
17-
LineNum = original.GetLineNum();
18-
}
7+
#region Fields
8+
private readonly ILogWindow _logWindow = logWindow;
199

2010
#endregion
2111

2212
#region Properties
2313

2414
public int LineNum { get; set; }
2515

26-
protected ILogWindow LogWindow { get; set; }
27-
28-
protected IPluginRegistry PluginRegistry { get; set; }
29-
3016
#endregion
3117

32-
#region Public methods
18+
#region cTor
3319

34-
public ColumnizerCallback CreateCopy ()
20+
private ColumnizerCallback(ColumnizerCallback original) : this(original._logWindow)
3521
{
36-
return new ColumnizerCallback(this);
22+
LineNum = original.LineNum;
3723
}
3824

39-
public int GetLineNum ()
40-
{
41-
return LineNum;
42-
}
25+
#endregion
26+
27+
#region Public methods
4328

44-
public string GetFileName ()
29+
public object Clone()
4530
{
46-
return LogWindow.GetCurrentFileName(GetLineNum());
31+
return new ColumnizerCallback(this);
4732
}
4833

49-
public ILogLine GetLogLine (int lineNum)
34+
public string GetFileName()
5035
{
51-
return LogWindow.GetLine(lineNum);
36+
return _logWindow.GetCurrentFileName(LineNum);
5237
}
5338

54-
public IList<ILogLineColumnizer> GetRegisteredColumnizers ()
39+
public ILogLine GetLogLine(int lineNum)
5540
{
56-
return PluginRegistry.RegisteredColumnizers;
41+
return _logWindow.GetLine(lineNum);
5742
}
5843

59-
public int GetLineCount ()
44+
public int GetLineCount()
6045
{
61-
return LogWindow.LogFileReader.LineCount;
46+
return _logWindow.LogFileReader.LineCount;
6247
}
6348

64-
public void SetLineNum (int lineNum)
49+
public void SetLineNum(int lineNum)
6550
{
6651
LineNum = lineNum;
6752
}
6853

6954
#endregion
70-
}
55+
}

src/LogExpert.Core/Classes/Filter/FilterStarter.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ private Filter DoWork (FilterParams filterParams, int startLine, int maxCount, P
148148

149149
// Give every thread own copies of ColumnizerCallback and FilterParams, because the state of the objects changes while filtering
150150
FilterParams threadFilterParams = filterParams.CloneWithCurrentColumnizer();
151-
ColumnizerCallback threadColumnizerCallback = _callback.CreateCopy();
152-
153-
Filter filter = new(threadColumnizerCallback);
151+
Filter filter = new((ColumnizerCallback)_callback.Clone());
154152
lock (_filterWorkerList)
155153
{
156154
_filterWorkerList.Add(filter);

src/LogExpert.UI/Controls/LogWindow/ColumnCache.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ internal class ColumnCache
1717

1818
internal IColumnizedLogLine GetColumnsForLine (LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, ColumnizerCallback columnizerCallback)
1919
{
20-
if (_lastColumnizer != columnizer || (_lastLineNumber != lineNumber && _cachedColumns != null) || columnizerCallback.GetLineNum() != lineNumber)
20+
if (_lastColumnizer != columnizer || (_lastLineNumber != lineNumber && _cachedColumns != null) || columnizerCallback.LineNum != lineNumber)
2121
{
2222
_lastColumnizer = columnizer;
2323
_lastLineNumber = lineNumber;

src/LogExpert.UI/Controls/LogWindow/LogExpertCallback.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ internal class LogExpertCallback (LogWindow logWindow) : ColumnizerCallback(logW
88

99
public void AddTempFileTab (string fileName, string title)
1010
{
11-
LogWindow.AddTempFileTab(fileName, title);
11+
logWindow.AddTempFileTab(fileName, title);
1212
}
1313

1414
public void AddPipedTab (IList<LineEntry> lineEntryList, string title)
1515
{
16-
LogWindow.WritePipeTab(lineEntryList, title);
16+
logWindow.WritePipeTab(lineEntryList, title);
1717
}
1818

1919
public string GetTabTitle ()
2020
{
21-
return LogWindow.Text;
21+
return logWindow.Text;
2222
}
2323

2424
#endregion

0 commit comments

Comments
 (0)