Enhance tables canvas reading states
This commit is contained in:
@@ -61,17 +61,23 @@
|
||||
SelectedGroupKey="selectedGroupKey"
|
||||
SelectedColumnKey="selectedColumnKey"
|
||||
RollJumpValue="rollJumpValue"
|
||||
DensityMode="densityMode"
|
||||
OnTogglePin="TogglePinnedTableAsync"
|
||||
OnModeChanged="UpdateReferenceModeAsync"
|
||||
OnGroupChanged="UpdateSelectedGroupAsync"
|
||||
OnColumnChanged="UpdateSelectedColumnAsync"
|
||||
OnRollJumpChanged="UpdateRollJumpAsync" />
|
||||
OnRollJumpChanged="UpdateRollJumpAsync"
|
||||
OnDensityChanged="UpdateDensityModeAsync" />
|
||||
|
||||
<TablesCanvas
|
||||
Detail="detail"
|
||||
CurrentMode="referenceMode"
|
||||
SelectedGroupKey="selectedGroupKey"
|
||||
SelectedColumnKey="selectedColumnKey"
|
||||
RollJumpValue="rollJumpValue"
|
||||
DensityMode="densityMode"
|
||||
SelectedCell="selectedCell"
|
||||
OnSelectCell="SelectCell"
|
||||
OnOpenCuration="OpenCellCurationAsync"
|
||||
OnOpenEditor="OpenCellEditorAsync" />
|
||||
</div>
|
||||
@@ -150,6 +156,8 @@
|
||||
private string selectedGroupKey = string.Empty;
|
||||
private string selectedColumnKey = string.Empty;
|
||||
private string rollJumpValue = string.Empty;
|
||||
private string densityMode = TablesDensityMode.Comfortable;
|
||||
private TablesCellSelection? selectedCell;
|
||||
private bool hasResolvedStoredTableSelection;
|
||||
private CriticalTableReference? SelectedTableReference =>
|
||||
referenceData?.CriticalTables.FirstOrDefault(item => string.Equals(item.Key, selectedTableSlug, StringComparison.OrdinalIgnoreCase));
|
||||
@@ -664,6 +672,23 @@
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task UpdateDensityModeAsync(string mode)
|
||||
{
|
||||
densityMode = NormalizeDensityMode(mode);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private void SelectCell(TablesCellSelection selection)
|
||||
{
|
||||
if (tableDetail?.Cells.Any(cell => cell.ResultId == selection.ResultId) != true)
|
||||
{
|
||||
selectedCell = null;
|
||||
return;
|
||||
}
|
||||
|
||||
selectedCell = selection;
|
||||
}
|
||||
|
||||
private void NormalizeViewStateForCurrentDetail()
|
||||
{
|
||||
referenceMode = NormalizeMode(referenceMode);
|
||||
@@ -673,6 +698,8 @@
|
||||
selectedGroupKey = string.Empty;
|
||||
selectedColumnKey = string.Empty;
|
||||
rollJumpValue = string.Empty;
|
||||
densityMode = NormalizeDensityMode(densityMode);
|
||||
selectedCell = null;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -687,6 +714,12 @@
|
||||
}
|
||||
|
||||
rollJumpValue = NormalizeRollInput(rollJumpValue);
|
||||
densityMode = NormalizeDensityMode(densityMode);
|
||||
|
||||
if (selectedCell is not null && tableDetail.Cells.All(cell => cell.ResultId != selectedCell.ResultId))
|
||||
{
|
||||
selectedCell = null;
|
||||
}
|
||||
}
|
||||
|
||||
private static string NormalizeMode(string? mode) =>
|
||||
@@ -700,6 +733,11 @@
|
||||
private static string NormalizeOptionalFilter(string? value) =>
|
||||
string.IsNullOrWhiteSpace(value) ? string.Empty : value.Trim();
|
||||
|
||||
private static string NormalizeDensityMode(string? mode) =>
|
||||
string.Equals(mode, TablesDensityMode.Dense, StringComparison.Ordinal)
|
||||
? TablesDensityMode.Dense
|
||||
: TablesDensityMode.Comfortable;
|
||||
|
||||
private static string NormalizeRollInput(string? value)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
|
||||
Reference in New Issue
Block a user