teamlead-dashboard/src/TUI/Controls/Containers/DependenciesContainer.cs

49 lines
1.3 KiB
C#
Raw Normal View History

2024-03-21 20:06:32 +00:00
using TUI.Controls.Common;
using TUI.Controls.Components;
using TUI.Domain;
using TUI.Engine.Attributes;
using TUI.Engine.Attributes.Alignments;
using TUI.Engine.Attributes.Orientations;
using TUI.Engine.Components;
using TUI.Engine.Containers;
using TUI.Engine.Nodes;
using TUI.Engine.Theme;
namespace TUI.Controls.Containers;
public class DependenciesContainer : ContainerBase
{
private const int VersionColumnWidth = 10;
private const int TitleColumnWidth = 20;
private readonly Nodes _dependencies = new();
public void AddTitleStub()
{
var size = new Size(TitleColumnWidth, 1);
var title = new StubComponent(size);
title.SetPadding(Level.Normal);
_dependencies.Add(title);
}
public void AddTitle(IComponent title)
{
title.SetPadding(Level.Normal);
title.SetFixed(Orientation.Horizontal, TitleColumnWidth);
_dependencies.Add(title);
}
public void AddDependency(Dependency dependency)
{
var version = new VersionComponent(VersionType.Convention, dependency.Version, dependency.Brand);
version.SetPadding(Level.Normal);
version.SetAlignment(Horizontal.Right);
version.SetFixed(Orientation.Horizontal, VersionColumnWidth);
_dependencies.Add(version);
}
public override Nodes GetNodes() => _dependencies;
}