Namespace Reportman.Designer
Classes
AIChatPanelControl
Replicates Delphi's TFRpChatFrame layout: PRoot → PTop(alTop) + PControl(alClient) + PBottom(alBottom) PBottom is OUTSIDE the TabControl so it's always visible.
AICopilotManager
Singleton that tracks the AI copilot's busy ("thinking") state, guards report modifications while inference is running, and wraps AI-driven changes so they can be grouped into the designer's undo/redo history.
AILoginForm
Port of Delphi's TFRpLoginVCL: modal dialog with Google, Microsoft, and Email OTP login. Uses RpAuthManager for all auth operations.
AILoginFrameControl
Replicates Delphi's TFRpLoginFrameVCL: a compact login banner that shows "Guest (Login available)" when logged out, or [Tier][Avatar][Username][▼] when logged in. Connected to RpAuthManager for real auth state and persistence.
AISchemaSelectorControl
Replicates Delphi's PSchemaHost layout: Row 0: "SCHEMA" label spanning full width (like PROVIDER/MODE labels) Row 1: [ComboBox (fill)] [Config ⚙ button] [Refresh button]
AISelectionControl
Replicates Delphi's TFRpAISelectionVCL: 3-column grid with Provider/Mode combos and credit gauge, plus an inference progress mode with Stop/Tokens/Spinner.
AssetsManager
Extracts embedded web assets (the Monaco editor and Web Markdown bundles) into the local application data folder on first use or version change, and preloads the WebView2 loader native library.
BandInfo
Holds the layout state and cached bitmaps for a single section band drawn on the design surface, including its position, size, title and the rendered section, ruler and band images.
ConnectionEditor
Connection assistant dialog. Hosts a ConnectionParamsControl (driver picker + dynamic parameter grid + test) and OK/Cancel. Opened from the object inspector "Connection String" property and from the new report wizard. For a .Net provider the connection string is stored in the report; for the HTTP Agent driver the API key + Hub database are stored in dbxconnections.ini (Delphi-compatible) and the report only keeps the alias.
ConnectionParamsControl
Reusable connection assistant. Lets the user pick a .Net provider (driver), edits its connection parameters dynamically through the provider's own DbConnectionStringBuilder bound to a PropertyGrid (works for ANY registered provider), shows the resulting connection string and tests the connection. The only persisted value is the connection string plus the provider factory invariant name (no JSON).
DbxConnections
Reads/writes the shared dbxconnections.ini used by both the Delphi and
the .Net designers to store connection definitions. For HTTP Agent connections
it keeps the sensitive data (API key, selected Hub database) here instead of in
the report, exactly like Delphi. Path resolution and section/key names are kept
compatible with Delphi (see Reportman.Reporting.DatabaseInfo dbx config reader).
DesignerSelfTest
Headless designer self-tests (invoked from designer.exe /undotest).
EditSubReport
Design-surface control that renders a subreport's sections (bands) and their print items, handling selection, drag-and-drop, resizing and band repositioning for the visual report designer.
EllipsisEditingControl
A DataGridView in-cell editing control that pairs a text box with an ellipsis button, letting the user edit a cell value directly or open an external picker via the button.
ExpressionChatPanelControl
Side panel that lets the user chat with the AI agent to generate, fix or explain a report expression, streaming the response and offering to apply the suggested expression.
ExpressionDlg
Dialog for editing a report expression, providing a categorized helper of fields, functions, variables and operators, syntax checking and evaluation, alongside an AI expression chat panel.
ExpressionEditorControl
Monaco-based editor for report expressions with an optional AI suggestion toggle that requests completions from the agent after a debounced pause in typing.
FieldInfo
Describes a single field shown in the fields tree, carrying its owning dataset, field name, .NET data type and display size.
FrameDataDef
Tree-based editor control for a report's data definitions, letting the user add, remove, reorder and connect database connections, datasets and parameters.
FrameFields
User control that displays a report's datasets and variables in a tree view, letting the user drag fields out as expressions for use in the designer.
FrameMainDesigner
Main WinForms designer control hosting the full report-authoring surface: toolbar, structure/data/fields tabs, the section design canvas, the object inspector, undo/redo, recent files and the optional AI copilot chat panel.
FrameMainDesigner.ExitReportArgs
Event arguments for an exit request, allowing the host to cancel the exit or to suppress removal of the designer control from its parent.
FrameMainDesigner.PreviewReportArgs
Event arguments for a preview request, carrying the laid-out report metafile that the host should display.
FrameMainDesigner.SaveReportArgs
Event arguments for a save request, letting the host report back whether
the report was actually saved via the Saved flag.
FrameStructure
Designer control that shows the report's structure as a tree of subreports and sections, and lets the user add, delete, reorder, import and export those elements.
GridOptions
Dialog for editing a report's design grid settings, including spacing, color, line style, and whether the grid is enabled and visible.
HttpAgentParams
Object bound to the connection assistant PropertyGrid when the HTTP Agent "driver" is selected: the API key plus a live Hub-database selector.
HubDatabaseConverter
TypeConverter for the Hub database property: provides the dropdown values by querying the agent with the current API key when the list is expanded.
HubDatabaseRef
A Hub database reference (display name + hubDatabaseId).
LibraryConfig
Designer control for editing the report library configuration: the database driver, provider factory, connection string and the table and field names used to store and look up reports.
LibraryConfigForm
Modal dialog that hosts the report library configuration control, persisting the settings when the user confirms with OK.
MainForm
Top-level window of the Reportman designer application; hosts the main designer frame, opens a report passed on the command line, and prompts to save unsaved changes on close.
MonacoEditorControl
SQL editor control that hosts the Monaco editor in a WebView2 and optionally provides AI-driven SQL autocompletion through the Reportman agent, including schema selection and inline/list completion suggestions.
NewReportWizard
New report connection wizard (port of the Delphi modern new report wizard, adapted to the .Net model). On "New" the user chooses a connection route: a Reportman AI / DB Agent connection (API key + Hub database), a direct database connection (.Net provider + connection string) or no connection. Direct connections store the connection string in the report; agent connections store the API key + Hub database in dbxconnections.ini (the report only keeps the alias + HttpAgent driver), exactly like Delphi.
ObjectInspectorCell
Object-inspector grid cell that selects, paints and parses the appropriate editing control for each property value according to its ObjectInspectorCellType (combo box, color/image picker, numeric editor, checkbox or ellipsis dialog launcher).
ObjectInspectorColumn
Grid column for the designer's object inspector that hosts ObjectInspectorCell instances as its cell template.
OpenFromLibrary
User control that browses a report library stored in a database, presenting reports and their folder groups as a tree and supporting selection, creation, renaming, deletion, reordering, and import/export of reports.
OpenFromLibrary.AfterSelectEventArgs
Carries the report name and group code of the tree node that has just been selected.
OpenFromLibrary.BeforeSelectEventArgs
Carries the report name and group code of the node about to be selected, and lets a handler cancel the selection by setting Cancel.
OpenFromLibraryForm
Dialog that lets the user pick a configured report library from a combo box and then choose a report from it, returning the selection along with the loaded report stream.
RpAuthManager
Port of Delphi's TRpAuthManager: singleton managing authentication, profile, tiers, OAuth flows (Google/Microsoft), email OTP, and config persistence. Config is saved to %LOCALAPPDATA%\Reportman\reportman_auth.ini (shared with Delphi).
RpProfile
Profile data from the Hub API. Matches Delphi's TRpProfile record.
RuntimeResize
Utility for resizing any item
SQLEditor
Dialog for editing a data source's SQL query using a Monaco editor with schema-aware autocomplete, a natural-language-to-SQL chat panel, and a preview of the query results.
SQLEditorControl
Composite control that pairs a Monaco-based SQL editor with an AI schema selector and audit log, debouncing edits to request AI-powered SQL autocomplete from the Reportman agent.
SqlChatPanelControl
Designer panel that lets the user chat with the Reportman AI agent to generate SQL from natural language, streaming the response and exposing the suggested SQL for the caller to apply.
SqlSchemaContextChangedEventArgs
Event data raised when the active Hub database, schema or API key bound to the SQL chat panel changes, carrying the effective identifiers used for subsequent AI requests.
WebMarkdownControl
WebView2-hosted control that renders chat conversations and log output as Markdown, supporting incremental streaming of assistant messages and log chunks into the embedded page.
Structs
ConnectionEditor.ConnResult
Result of editing a connection.
Enums
FrameMainDesigner.EditModeType
Controls which save/open toolbar actions the designer exposes: full open-and-save, save-only (no open/new), or self-managed saving where the standard save drop-down is suppressed.
ObjectInspectorCellType
Identifies the editor and formatting an object-inspector cell uses for a property value, such as plain text, expression, numeric, color, image, font, SQL or connection-string editing.
OpenFromLibrary.SelectionModeType
Determines which operations the library browser exposes: read-only selection, selection combined with editing, or pure editing of the library.
ResizeAction
Action to do
SelectedItemPalette
Identifies the currently active design palette tool, determining whether the mouse selects existing items (Arrow) or inserts a new item of the given kind.
Delegates
EllipsisClick
Callback raised when the ellipsis button of an EllipsisEditingControl is clicked;
the handler may replace text and returns true if the value was changed.
ExpressionChatPanelControl.ValidateExpressionHandler
Callback used to validate a generated expression locally; returns true when valid,
otherwise sets errorMessage describing why validation failed.
FrameMainDesigner.ExitReportEventHandler
Callback raised when the user requests to exit the designer, letting the host cancel or control disposal through FrameMainDesigner.ExitReportArgs.
FrameMainDesigner.PreviewReportEvent
Callback raised when the user requests a preview, supplying the report metafile to render through FrameMainDesigner.PreviewReportArgs.
FrameMainDesigner.SaveReportEvent
Callback raised when the user requests a save, letting the host perform custom save logic and report the outcome through FrameMainDesigner.SaveReportArgs.
OpenFromLibrary.AfterSelectEvent
Callback raised after a tree node has been selected, reporting the selected report name and group code.
OpenFromLibrary.BeforeSelectEvent
Callback raised before a tree node is selected, allowing the handler to inspect or cancel the pending selection.
PropertyChanged
Callback raised when an inspected object's property is edited, reporting the property name and its new value.
ResizeEventGetBounds
Event to retrieve original object bounds
ResizeEventSetBounds
Event to set new bounds, can return validated new bounds