Skip to content

[Add] SpecObject relation matrix view; fixes #18#55

Open
samatstariongroup wants to merge 1 commit into
developmentfrom
GH18-relationship-matrix
Open

[Add] SpecObject relation matrix view; fixes #18#55
samatstariongroup wants to merge 1 commit into
developmentfrom
GH18-relationship-matrix

Conversation

@samatstariongroup
Copy link
Copy Markdown
Member

Prerequisites

  • I have written a descriptive pull-request title
  • I have verified that there are no overlapping pull-requests open
  • I have verified that I am following the reqifviewer code style guidelines
  • I have provided test coverage for my change (where applicable)

Description

Adds a relationship matrix to visualize relationships between SpecObjects. The matrix allows to select the kind of SpecObject on the vertical and horizontal axis. It defaults to showing related items only, to show all items can be toggled. When the matrix is large a horizontal bar / spinner is shown with a cancel button. When the user navigates away from the matrix and uses the back button, the settings are remembered as well as the row/column that was visible in the upper left corner such that the matrix is redrawn in the same state as when the user left it.

The user can click on the specobjects in the columns and rows and navigate to the details page of that SpecObject. The user can click on the relationship and navigate to the details page of the relationship. a tooltip is shown when the user hovers over the specobject and when the user hovers over the relationship arrow.

[Add] cancellation capability on matrix

[Updarte] set related as default on matrix

[Add] virtualization

[Improve] scroll bar on matrix page

[Add] persist Relation Matrix picker state in the URL

[Add] persist Relation Matrix top-left row and column across navigations
private const int CellWidthPx = 36;

[Parameter]
public string Identifier { get; set; }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

XML Doc is missing nearly everywhere in the class

<div class="relation-matrix-wrapper">
<div class="matrix-header-row" style="grid-template-columns: @gridTemplate">
<div class="corner"></div>
@foreach (var column in this.VisibleColumns)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix as SQ proposition

/// </summary>
private async Task RunBusyAsync(Func<CancellationToken, Task> work)
{
this.cts?.Cancel();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix as proposed

}
catch (OperationCanceledException)
{
Log.ForContext<RelationMatrixPage>().Information("Recompute cancelled");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix as proposed

/// </summary>
public sealed class RelationMatrixData
{
public IReadOnlyList<SpecObject> Rows { get; init; }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing doc

/// Direction of the <see cref="SpecRelation"/>(s) in a <see cref="MatrixCell"/> relative to the
/// row <see cref="SpecObject"/> and the column <see cref="SpecObject"/>.
/// </summary>
public enum RelationDirection
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

split this file into multiple one (one per enum/class) for readiness

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants