formatted score debug into table, removed score info box from tui

This commit is contained in:
2025-04-14 10:27:27 -04:00
parent f9d1935c71
commit ffe175df1b
3 changed files with 17 additions and 56 deletions

View File

@@ -1,7 +1,6 @@
mod widget;
use log::{debug, error, info};
use prettytable::{Table, cell, row};
use tokio::sync::mpsc;
use tokio_stream::StreamExt;
use tui_logger::{TuiWidgetEvent, TuiWidgetState};
@@ -14,9 +13,8 @@ use harmony::{maestro::Maestro, score::Score, topology::Topology};
use ratatui::{
self, Frame,
layout::{Constraint, Layout, Position},
style::{Color, Modifier, Style},
text::{Line, Span, Text},
widgets::{Block, Borders, Paragraph, Wrap},
style::{Color, Style},
widgets::{Block, Borders},
};
pub mod tui {
@@ -161,15 +159,13 @@ impl<T: Topology + std::fmt::Debug + Send + Sync + 'static> HarmonyTUI<T> {
frame.render_widget(&help_block, help_area);
frame.render_widget(HelpWidget::new(), help_block.inner(help_area));
let [list_area, right_area] =
let [list_area, logger_area] =
Layout::horizontal([Constraint::Min(30), Constraint::Percentage(100)]).areas(app_area);
let block = Block::default().borders(Borders::RIGHT);
frame.render_widget(&block, list_area);
self.score.render(list_area, frame);
let [logger_area, info_area] =
Layout::vertical([Constraint::Min(30), Constraint::Percentage(100)]).areas(right_area);
let tui_logger = tui_logger::TuiLoggerWidget::default()
.style_error(Style::default().fg(Color::Red))
.style_warn(Style::default().fg(Color::LightRed))
@@ -179,42 +175,7 @@ impl<T: Topology + std::fmt::Debug + Send + Sync + 'static> HarmonyTUI<T> {
.state(&self.tui_state);
frame.render_widget(tui_logger, logger_area);
let info_block = Block::default()
.borders(Borders::ALL)
.title("Score Details");
let mut text_output = Text::default();
if let Some(score) = self.score.get_selected_score() {
//scores.into_iter().for_each(|score| {
// info += &score.display_value();
//});
text_output = self.format_score_for_output(score);
}
let info_paragraph = Paragraph::new(text_output)
.block(info_block)
.wrap(Wrap { trim: true });
frame.render_widget(info_paragraph, info_area);
}
//TODO trying to format the output in a way that looks good in the debug output
//this has not changed anything so far
fn format_score_for_output(&self, score: Box<dyn Score<T>>) -> Text<'_> {
let mut text = Text::default();
let name_line = Line::from(vec![Span::styled(
score.name(),
Style::default().add_modifier(Modifier::BOLD),
)]);
text.lines.push(name_line);
let val = score.serialize();
let pretty = score.print_value(&val, 0);
for line in pretty.lines() {
text.lines.push(Line::from(line.to_string()));
}
text
}
fn scores_list(maestro: &Maestro<T>) -> Vec<Box<dyn Score<T>>> {
let scores = maestro.scores();
let scores_read = scores.read().expect("Should be able to read scores");

View File

@@ -58,7 +58,7 @@ impl<T: Topology + std::fmt::Debug> ScoreListWidget<T> {
score: score.clone_box(),
});
info!("{:#?}\n\nConfirm Execution (Press y/n)", score);
info!("{:#?}", score.display_value());
info!("{}", score.print_score_details());
} else {
warn!("No Score selected, nothing to launch");
}