🐛 Fix bug in render top level.

This commit is contained in:
Kolosov Alexandr 2024-06-13 14:07:45 +05:00
parent 3a85bfbdd3
commit a06f5c541e
4 changed files with 17 additions and 18 deletions

View File

@ -10,13 +10,13 @@ namespace TUI.Controls.Components;
public class PanelComponent : ComponentBase, IComponent
{
private readonly string _title;
public PanelComponent(string title)
{
_title = title;
SetAbsolute();
}
private static void RenderTopLine(StringBuilder builder, Size size, string title)
{
var halfWidth = (size.Width - title.GetWidth() - (int)Indentation.BorderWidth * 2 -
@ -24,15 +24,15 @@ public class PanelComponent : ComponentBase, IComponent
builder.Append(Angles.LeftTop);
builder.Append(Lines.Horizontal.Repeat(halfWidth));
builder.AppendFormat("{0}{1}{0}", Space.Repeat(Convert.ToInt32(Indentation.Default)), title);
builder.Append(Lines.Horizontal.Repeat(halfWidth));
builder.Append(Lines.Horizontal.Repeat(halfWidth + halfWidth % 2));
builder.Append(Angles.RightTop);
builder.Append(LineBreak);
}
private static void RenderMiddleLine(StringBuilder builder, Size size)
{
var dashboardHeight = size.Height - (int)Indentation.BorderWidth * 2;
while (dashboardHeight > 0)
{
var bodyWidth = size.Width - (int)Indentation.BorderWidth * 2;
@ -40,11 +40,11 @@ public class PanelComponent : ComponentBase, IComponent
builder.Append(Space.Repeat(bodyWidth));
builder.Append(Lines.Vertical);
builder.Append(LineBreak);
dashboardHeight--;
}
}
private static void RenderBottomLine(StringBuilder builder, Size size)
{
var width = size.Width - (int)Indentation.BorderWidth * 2;
@ -53,15 +53,15 @@ public class PanelComponent : ComponentBase, IComponent
builder.Append(Angles.RightBottom);
builder.Append(LineBreak);
}
protected override Sketch DrawComponent(Size minSize)
{
var builder = new StringBuilder();
RenderTopLine(builder, minSize, _title);
RenderMiddleLine(builder, minSize);
RenderBottomLine(builder, minSize);
return new Sketch(builder.ToString().Main());
}
}

View File

@ -10,23 +10,23 @@ public class DashboardContainer : ContainerBase
{
private readonly Nodes _children = new();
private readonly ContentContainer _content;
public DashboardContainer()
{
var panel = new PanelComponent(" ".Info() + "Dependencies".Main());
var panel = new PanelComponent(" ".Info() + " Dependencies".Main());
_content = new ContentContainer();
_content.SetOrientationVertical();
SetOrientationVertical();
_children.Add(panel);
_children.Add(_content);
}
public void AddChildren(IContainer node)
{
node.SetFixed(Orientation.Vertical, 1);
_content.AddChildren(node);
}
public override Nodes GetNodes() => _children;
}

View File

@ -33,7 +33,7 @@ public class DependenciesPage : PageBase
dashboard.AddChildren(projectDependencies);
}
var breadCrumbs = new BreadCrumbsComponent(" dependencies", "JavaScript");
var breadCrumbs = new BreadCrumbsComponent(" Dependencies", "JavaScript");
var footer = new FooterContainer(breadCrumbs);
var layout = new DashboardLayout(header, dashboard, footer);
canvas.Draw(layout);

View File

@ -8,11 +8,10 @@ Console.CursorVisible = false;
var welcomePage = new WelcomePage();
welcomePage.Open();
Thread.Sleep(2000);
Thread.Sleep(500);
var dependenciesPage = new DependenciesPage();
dependenciesPage.Open();
// display.OpenDeps(settings.Projects[0]);
var key = new ConsoleKeyInfo('1', ConsoleKey.NoName, false, false, false);
var waitCommand = true;