@@ -200,6 +200,7 @@ public bool RealTimeMode
200
200
public LogMessagesUC ( IUserSettingsManager userSettingsManager , IExtensionsManager extensionManager , IFactoriesManager factoriesManager , IAnalogyLogger logger )
201
201
{
202
202
Logger = logger ;
203
+ Id = Guid . NewGuid ( ) ;
203
204
Settings = userSettingsManager ;
204
205
ExtensionManager = extensionManager ;
205
206
FactoriesManager = factoriesManager ;
@@ -303,7 +304,6 @@ public LogMessagesUC(IUserSettingsManager userSettingsManager, IExtensionsManage
303
304
_filterCriteria . IncludeFilterCriteriaUIOptions = IncludeFilterCriteriaUIOptions ;
304
305
_filterCriteria . ExcludeFilterCriteriaUIOptions = ExcludeFilterCriteriaUIOptions ;
305
306
306
-
307
307
}
308
308
309
309
private async void LogMessagesUC_Load ( object sender , EventArgs e )
@@ -347,6 +347,16 @@ private async void LogMessagesUC_Load(object sender, EventArgs e)
347
347
LoadReplacementHeaders ( ) ;
348
348
HideColumns ( ) ;
349
349
BookmarkModeUI ( ) ;
350
+
351
+
352
+ if ( ! string . IsNullOrEmpty ( Settings . LogsLayoutFileName ) && File . Exists ( Settings . LogsLayoutFileName ) )
353
+ {
354
+ string name = Path . GetFileNameWithoutExtension ( Settings . LogsLayoutFileName ) ;
355
+ wsLogs . LoadWorkspace ( name , Settings . LogsLayoutFileName ) ;
356
+ wsLogs . ApplyWorkspace ( name ) ;
357
+ }
358
+ LoadWorkspace ( CurrentLogLayoutFileName ) ;
359
+
350
360
await LoadExtensions ( ) ;
351
361
SetupEventsHandlers ( ) ;
352
362
@@ -392,9 +402,9 @@ private async void LogMessagesUC_Load(object sender, EventArgs e)
392
402
393
403
private void HideColumns ( )
394
404
{
395
- if ( DataProvider . HideColumns ( ) != null )
405
+ if ( DataProvider . HideAdditionalColumns ( ) != null )
396
406
{
397
- foreach ( string columnFieldName in DataProvider . HideColumns ( ) )
407
+ foreach ( string columnFieldName in DataProvider . HideAdditionalColumns ( ) )
398
408
{
399
409
var column = logGrid . Columns . ColumnByFieldName ( columnFieldName ) ;
400
410
if ( column != null )
@@ -403,6 +413,17 @@ private void HideColumns()
403
413
}
404
414
}
405
415
}
416
+ if ( DataProvider . HideExistingColumns ( ) != null )
417
+ {
418
+ foreach ( AnalogyLogMessagePropertyName columnFieldName in DataProvider . HideExistingColumns ( ) )
419
+ {
420
+ var column = logGrid . Columns . ColumnByFieldName ( columnFieldName . ToString ( ) ) ;
421
+ if ( column != null )
422
+ {
423
+ column . Visible = false ;
424
+ }
425
+ }
426
+ }
406
427
}
407
428
408
429
public void LoadWorkspace ( string fileName )
@@ -1071,18 +1092,13 @@ private void LogGrid_MouseUp(object sender, MouseEventArgs e)
1071
1092
}
1072
1093
private void LoadReplacementHeaders ( )
1073
1094
{
1074
- if ( DataProvider == null )
1095
+ if ( DataProvider ? . GetReplacementHeaders ( ) == null )
1075
1096
{
1076
1097
return ;
1077
1098
}
1078
1099
1079
1100
try
1080
1101
{
1081
- if ( DataProvider . GetReplacementHeaders ( ) == null || ! DataProvider . GetReplacementHeaders ( ) . Any ( ) )
1082
- {
1083
- return ;
1084
- }
1085
-
1086
1102
foreach ( ( string fieldName , string replacementHeader ) in DataProvider . GetReplacementHeaders ( ) )
1087
1103
{
1088
1104
var column = logGrid . Columns . FirstOrDefault ( ( col ) => col . FieldName == fieldName ) ;
@@ -1091,15 +1107,6 @@ private void LoadReplacementHeaders()
1091
1107
column . Caption = replacementHeader ;
1092
1108
}
1093
1109
}
1094
-
1095
- foreach ( string fieldName in DataProvider . HideColumns ( ) )
1096
- {
1097
- var column = logGrid . Columns . FirstOrDefault ( ( col ) => col . FieldName == fieldName ) ;
1098
- if ( column != null )
1099
- {
1100
- column . Visible = false ;
1101
- }
1102
- }
1103
1110
}
1104
1111
catch ( Exception )
1105
1112
{
@@ -1439,11 +1446,25 @@ public async Task LoadExtensions()
1439
1446
}
1440
1447
foreach ( IAnalogyExtensionUserControl extension in UserControlRegisteredExtensions )
1441
1448
{
1442
- var page = dockManager1 . AddPanel ( DockingStyle . Float ) ;
1443
- page . Text = extension . Title ;
1444
- page . Controls . Add ( extension . UserControl ) ;
1445
- await extension . InitializeUserControl ( this , Logger ) ;
1446
- page . DockedAsTabbedDocument = true ;
1449
+ DockPanel ? pnl = dockManager1 . Panels . FirstOrDefault ( i => i . ID == extension . Id ) ;
1450
+ if ( pnl == null )
1451
+ {
1452
+ pnl = dockManager1 . AddPanel ( DockingStyle . Float ) ;
1453
+ pnl . Text = extension . Title ;
1454
+ pnl . ID = extension . Id ;
1455
+ pnl . DockedAsTabbedDocument = true ;
1456
+ }
1457
+ pnl . Controls . Add ( extension . CreateUserControl ( Id , Logger ) ) ;
1458
+ pnl . SizeChanged += ExtensionPanel_SizeChanged ;
1459
+ await extension . InitializeUserControl ( this , Id , Logger ) ;
1460
+ }
1461
+ }
1462
+
1463
+ private void ExtensionPanel_SizeChanged ( object ? sender , EventArgs e )
1464
+ {
1465
+ if ( sender is DockPanel { Controls . Count : > 0 } pnl )
1466
+ {
1467
+ pnl . Controls [ 0 ] . Size = pnl . Size ;
1447
1468
}
1448
1469
}
1449
1470
@@ -1635,6 +1656,7 @@ internal DataTable GetFilteredDataTable()
1635
1656
}
1636
1657
1637
1658
public List < IAnalogyLogMessage > GetMessages ( ) => PagingManager . GetAllMessages ( ) ;
1659
+ public Guid Id { get ; }
1638
1660
1639
1661
private string GetFilterDisplayText ( DateRangeFilter filterType )
1640
1662
{
@@ -1792,7 +1814,7 @@ public void AppendMessage(IAnalogyLogMessage message, string dataSource)
1792
1814
{
1793
1815
if ( IsHandleCreated )
1794
1816
{
1795
- BeginInvoke ( new MethodInvoker ( ( ) => extension . NewMessage ( message ) ) ) ;
1817
+ BeginInvoke ( new MethodInvoker ( ( ) => extension . NewMessage ( message , Id ) ) ) ;
1796
1818
}
1797
1819
}
1798
1820
}
@@ -1909,7 +1931,7 @@ public void AppendMessages(List<IAnalogyLogMessage> messages, string dataSource)
1909
1931
{
1910
1932
foreach ( var extension in UserControlRegisteredExtensions )
1911
1933
{
1912
- BeginInvoke ( new MethodInvoker ( ( ) => extension . NewMessages ( messages ) ) ) ;
1934
+ BeginInvoke ( new MethodInvoker ( ( ) => extension . NewMessages ( messages , Id ) ) ) ;
1913
1935
}
1914
1936
}
1915
1937
0 commit comments