Skip to content

Port ARIEC native report preview and polish IO FAT table - #125

Merged
masarray merged 5 commits into
mainfrom
agent/io-fat-native-report-preview-polish
Jul 29, 2026
Merged

Port ARIEC native report preview and polish IO FAT table#125
masarray merged 5 commits into
mainfrom
agent/io-fat-native-report-preview-polish

Conversation

@masarray

@masarray masarray commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Purpose

Apply the latest field UX feedback to the workbook-driven IO List FAT workspace:

  1. center LIVE, VALUE, QUALITY, STATUS and RESULT cells/headers
  2. make active True visually red and inactive False visually green
  3. turn captured relay timestamps green as positive evidence feedback
  4. replace the HTML/WebBrowser preview with the full ARIEC60870 native paged preview architecture

FAT table polish

  • operational columns use explicit centered templates rather than inherited DataGrid defaults
  • True / 1 uses an exciting red emphasis
  • False / 0 uses an exciting green emphasis
  • good quality is green; invalid/bad quality is red
  • ON/OFF relay timestamps remain muted until evidence exists, then turn green
  • STATUS and final RESULT remain semantically separate and centered
  • no nested pill/card surfaces are introduced into table cells

Native report engine parity

The old HTML preview path is removed. The new architecture is adapted directly from the project-owned ARIEC60870 report engine:

IO FAT report model
→ IoFatReportLayoutEngine (PDF points)
→ native PDF writer
→ WPF FixedDocument / DocumentViewer

PDF export and in-workspace preview now consume the same layout command stream, so page size, pagination, cards, table geometry, headers and footers remain aligned.

The preview adds ARIEC-style controls:

  • print
  • copy
  • zoom out / percentage / zoom in
  • fit to width
  • previous / current page / next
  • refresh
  • export selected IED PDF
  • native preview indicator

Removed

  • WebBrowser
  • NavigateToString
  • HTML report builder and browser printing

Scope and safety

  • preview remains scoped to the selected workbook IED
  • project-wide native PDF and .arsas export remain available
  • active selected IED sessions are marked DRAFT / LIVE
  • official PDF export still requires a sealed session
  • acquisition, evidence journal and read-only process behavior are unchanged

Automated validation at head d84175cacb954eb1ef4423623916d75a756e8ff2

Validate IO List Testing run 42 — success

  • native WPF FixedDocument / DocumentViewer compilation succeeded
  • complete focused IO FAT regression suite passed
  • selected-IED PDF scope, shared layout engine, HTML-path removal, native toolbar, centered operational columns and requested color contracts passed

Build ARSAS run 791 — success

  • source, website, license, premium UX, protocol and immutable engine invariants passed
  • full solution build and complete application regression suite passed
  • portable Windows x64 publication and artifact upload succeeded

Validate SV evidence bundles run 74 — success

  • Sampled Values evidence workflow remains unaffected

No review threads are open.

@masarray
masarray marked this pull request as ready for review July 29, 2026 10:48
@masarray
masarray merged commit 5e3e4bc into main Jul 29, 2026
3 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d84175cacb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +116 to +118
.Append('/').Append(ResourceName(command.Font)).Append(' ').Append(Number(command.FontSize)).Append(" Tf ")
.Append("1 0 0 1 ").Append(Number(command.X)).Append(' ').Append(Number(command.BaselineY)).Append(" Tm ")
.Append('(').Append(EscapeLiteral(safe)).Append(") Tj ET\n");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Honor text widths when serializing PDF commands

When imported project or IED fields exceed their assigned IoFatReportTextCommand.Width, the FixedDocument preview constrains and ellipsizes them, but this PDF path emits an unbounded Tj operation and never uses command.Width. Long names, metadata, or status reasons can therefore spill into adjacent cards or columns in the exported PDF even though the new native preview looks correct; truncate or clip PDF text to the command width so both renderers remain consistent.

Useful? React with 👍 / 👎.

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.

1 participant