Skip to content
ConsoleMonster
Class

Diagram

ConsoleMonster.Widgets

Namespace
ConsoleMonster.Widgets
Assembly
ConsoleMonster
Modifiers
sealed

A live diagram with a dependency-free tree view and an optional Graphics topology renderer.

Inheritance

Remarks

Configure collections before sharing the diagram with a session. Use Handle for concurrent live updates; direct collection edits are intended for sequential configuration, not concurrent writers.

Usage

Explore 84 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Accepted by parameters 38

Constructors

public Diagram(string title = "", string widgetId = "diagram") #

Creates a diagram with a title and a live-update identity.

Parameters

title string = "" optional
widgetId string = "diagram" optional

Methods

public override void Apply(LiveEvent liveEvent) #

Applies an event to the widget's state.

Parameters

liveEvent ConsoleMonster.Live.LiveEvent required
The event.
public void ClearStep() #

Clears the active step.

public override string? Describe(LiveEvent liveEvent) #

Returns a line describing the event for line-based outputs (Stream/Plain), or null when the event is not worth a line (for example a single counter increment). Called after ILiveTarget.Apply.

Parameters

liveEvent ConsoleMonster.Live.LiveEvent required
The event that was applied.

Returns

string? A plain line or null.
public void FirstStep() #

Selects the first step.

public void FocusNext(int delta = 1) #

Moves focus in reading order.

Parameters

delta int = 1 optional
public void FocusNode(string? id) #

Focuses a component, or clears focus with null.

Parameters

id string? required
public Diagram Group(string label, Action<DiagramGroupBuilder> configure) #

Adds a group and returns this diagram.

Parameters

label string required
configure System.Action<ConsoleMonster.Widgets.DiagramGroupBuilder> required

Returns

Diagram
public DiagramHandle Handle(ILiveDispatcher dispatcher) #

Posts live updates through a session.

Parameters

dispatcher ConsoleMonster.Live.ILiveDispatcher required
public bool HandleInput(InputEvent input) #

Handles a diagram key; false lets the host handle it.

Parameters

input ConsoleMonster.Input.InputEvent required

Returns

bool
public void LastStep() #

Selects the last step.

public static Diagram Load(string path, string? diagramId = null) #

Loads a ChartForgeX file using the registered Graphics provider.

Parameters

path string required
diagramId string? = null optional

Returns

Diagram
public override Size Measure(Constraints constraints, RenderContext context) #

Returns the size the widget wants within the constraints.

Parameters

constraints ConsoleMonster.Layout.Constraints required
The space offered.
context ConsoleMonster.Canvas.RenderContext required
Profile, theme and glyphs.

Returns

Size The desired size, never larger than the constraints.
public void NextScenario(int delta = 1) #

Selects the next or previous use case.

Parameters

delta int = 1 optional
public void NextStep() #

Advances to the next step.

public Diagram Node(string label, Action<DiagramNodeBuilder>? configure = null) #

Adds a component and returns this diagram.

Parameters

label string required
configure System.Action<ConsoleMonster.Widgets.DiagramNodeBuilder>? = null optional

Returns

Diagram
public void Pause() #

Pauses use-case playback.

public void Play() #

Starts use-case playback.

public void PreviousStep() #

Moves to the previous step.

public override void Render(Region region, RenderContext context) #

Renders into a region. The region may be smaller or larger than the measured size.

Parameters

region ConsoleMonster.Canvas.Region required
The target region.
context ConsoleMonster.Canvas.RenderContext required
Profile, theme and glyphs.
public AppState Run(ConsoleAppOptions? options = null, CancellationToken cancellationToken = default) #

Opens the Graphics keyboard view, or prints a tree snapshot without Graphics.

Parameters

options ConsoleMonster.Interactive.ConsoleAppOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

AppState
public Diagram SelectScenario(string? id) #

Selects a use case and clears its active step.

Parameters

id string? required

Returns

Diagram
public void SetValue(string node, string? value, StatusKind? status = null) #

Sets a component's third line and optionally its status.

Parameters

node string required
value string? required
status ConsoleMonster.Styling.StatusKind? = null optional
public void Step(int index) #

Selects a zero-based step.

Parameters

index int required
public Diagram Summary(bool show = true) #

Controls the attention summary and returns this diagram.

Parameters

show bool = true optional

Returns

Diagram
public void TogglePlay() #

Toggles use-case playback.

public byte[] ToPng() #

Exports the topology as PNG through Graphics.

Returns

byte[]
public Diagram UseCase(string label, Action<DiagramUseCaseBuilder> configure) #

Adds a use case and returns this diagram.

Parameters

label string required
configure System.Action<ConsoleMonster.Widgets.DiagramUseCaseBuilder> required

Returns

Diagram

Properties

public string Title { get; set; } #

The diagram title.

public DiagramDirection Direction { get; set; } #

The reading direction.

public List<DiagramNode> Nodes { get; } #

Ungrouped components.

public List<DiagramGroup> Groups { get; } #

Top-level groups.

public List<DiagramUseCase> UseCases { get; } #

Selectable sequences of interactions.

public bool ShowSummary { get; set; } #

Lists every node and link whose status is not Pass, with unabridged text.

public bool ShowLegend { get; set; } #

Whether status meanings are shown below the topology.

public bool ShowStepPanel { get; set; } #

Whether the selected use case's steps are shown.

public bool ShowDetails { get; set; } #

Whether focused-node details are shown.

public bool ShowKeys { get; set; } #

Whether keyboard hints are shown.

public int MaxPayloadLines { get; set; } #

The maximum visible payload lines.

public int MaxStepLines { get; set; } #

The maximum visible step lines.

public string? ScenarioId { get; } #

The selected use case id, or null.

public DiagramUseCase? Scenario { get; } #

The selected use case, or null.

public IReadOnlyDictionary<string, string> Values { get; } #

A snapshot of component values, keyed by their explicit id or label.

public int? StepIndex { get; } #

The active zero-based step, or null.

public string? FocusNodeId { get; } #

The focused component id, or null.

public bool Playing { get; } #

Whether the use case is playing.

Extension Methods

public static Diagram AddGroup(Diagram diagram, DiagramGroup item) #

Adds an item to Diagram.Groups: Top-level groups.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
item ConsoleMonster.Widgets.DiagramGroup required
The item.

Returns

Diagram The same instance.
AddGroups 2 overloads
public static Diagram AddGroups(Diagram diagram, params DiagramGroup[] items) #

Adds items to Diagram.Groups: Top-level groups.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items ConsoleMonster.Widgets.DiagramGroup[] required
The items, in order.

Returns

Diagram The same instance.
public static Diagram AddGroups(Diagram diagram, IEnumerable<DiagramGroup> items) #

Adds items to Diagram.Groups: Top-level groups.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramGroup> required
The items, in order.

Returns

Diagram The same instance.
AddLinks 2 overloads
public static Diagram AddNode(Diagram diagram, DiagramNode item) #

Adds an item to Diagram.Nodes: Ungrouped components.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
item ConsoleMonster.Widgets.DiagramNode required
The item.

Returns

Diagram The same instance.
AddNodes 2 overloads
public static Diagram AddNodes(Diagram diagram, params DiagramNode[] items) #

Adds items to Diagram.Nodes: Ungrouped components.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items ConsoleMonster.Widgets.DiagramNode[] required
The items, in order.

Returns

Diagram The same instance.
public static Diagram AddNodes(Diagram diagram, IEnumerable<DiagramNode> items) #

Adds items to Diagram.Nodes: Ungrouped components.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramNode> required
The items, in order.

Returns

Diagram The same instance.
public static Diagram AddUseCase(Diagram diagram, DiagramUseCase item) #

Adds an item to Diagram.UseCases: Selectable sequences of interactions.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
item ConsoleMonster.Widgets.DiagramUseCase required
The item.

Returns

Diagram The same instance.
AddUseCases 2 overloads
public static Diagram AddUseCases(Diagram diagram, params DiagramUseCase[] items) #

Adds items to Diagram.UseCases: Selectable sequences of interactions.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items ConsoleMonster.Widgets.DiagramUseCase[] required
The items, in order.

Returns

Diagram The same instance.
public static Diagram AddUseCases(Diagram diagram, IEnumerable<DiagramUseCase> items) #

Adds items to Diagram.UseCases: Selectable sequences of interactions.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramUseCase> required
The items, in order.

Returns

Diagram The same instance.
public static Diagram Direction(Diagram diagram, DiagramDirection value) #

Sets Diagram.Direction: The reading direction.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value ConsoleMonster.Widgets.DiagramDirection required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                        // C# fluent
new global::ConsoleMonster.Widgets.Diagram { Direction = value };    Ui.Diagram().Direction(value);
public static Diagram MaxPayloadLines(Diagram diagram, int value) #

Sets Diagram.MaxPayloadLines: The maximum visible payload lines.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value int required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                              // C# fluent
new global::ConsoleMonster.Widgets.Diagram { MaxPayloadLines = value };    Ui.Diagram().MaxPayloadLines(value);
public static Diagram MaxStepLines(Diagram diagram, int value) #

Sets Diagram.MaxStepLines: The maximum visible step lines.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value int required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                           // C# fluent
new global::ConsoleMonster.Widgets.Diagram { MaxStepLines = value };    Ui.Diagram().MaxStepLines(value);
public static Diagram Scenario(Diagram diagram, Action<DiagramUseCase> configure) #

Configures Diagram.Scenario in place: The selected use case, or null.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
configure System.Action<ConsoleMonster.Widgets.DiagramUseCase> required
Configures the value.

Returns

Diagram The same instance.
ShowDetails 2 overloads
public static Diagram ShowDetails(Diagram diagram, bool value) #

Sets Diagram.ShowDetails: Whether focused-node details are shown.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value bool required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                          // C# fluent
new global::ConsoleMonster.Widgets.Diagram { ShowDetails = value };    Ui.Diagram().ShowDetails(value);
public static Diagram ShowDetails(Diagram diagram) #

Sets Diagram.ShowDetails to true.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance to configure.

Returns

Diagram The same instance.
ShowKeys 2 overloads
public static Diagram ShowKeys(Diagram diagram, bool value) #

Sets Diagram.ShowKeys: Whether keyboard hints are shown.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value bool required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                       // C# fluent
new global::ConsoleMonster.Widgets.Diagram { ShowKeys = value };    Ui.Diagram().ShowKeys(value);
public static Diagram ShowKeys(Diagram diagram) #

Sets Diagram.ShowKeys to true.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance to configure.

Returns

Diagram The same instance.
ShowLegend 2 overloads
public static Diagram ShowLegend(Diagram diagram, bool value) #

Sets Diagram.ShowLegend: Whether status meanings are shown below the topology.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value bool required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                         // C# fluent
new global::ConsoleMonster.Widgets.Diagram { ShowLegend = value };    Ui.Diagram().ShowLegend(value);
public static Diagram ShowLegend(Diagram diagram) #

Sets Diagram.ShowLegend to true.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance to configure.

Returns

Diagram The same instance.
ShowStepPanel 2 overloads
public static Diagram ShowStepPanel(Diagram diagram, bool value) #

Sets Diagram.ShowStepPanel: Whether the selected use case's steps are shown.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value bool required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                            // C# fluent
new global::ConsoleMonster.Widgets.Diagram { ShowStepPanel = value };    Ui.Diagram().ShowStepPanel(value);
public static Diagram ShowStepPanel(Diagram diagram) #

Sets Diagram.ShowStepPanel to true.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance to configure.

Returns

Diagram The same instance.
ShowSummary 2 overloads
public static Diagram ShowSummary(Diagram diagram, bool value) #

Sets Diagram.ShowSummary: Lists every node and link whose status is not Pass, with unabridged text.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value bool required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                          // C# fluent
new global::ConsoleMonster.Widgets.Diagram { ShowSummary = value };    Ui.Diagram().ShowSummary(value);
public static Diagram ShowSummary(Diagram diagram) #

Sets Diagram.ShowSummary to true.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance to configure.

Returns

Diagram The same instance.
public static Diagram Title(Diagram diagram, string value) #

Sets Diagram.Title: The diagram title.

Parameters

diagram ConsoleMonster.Widgets.Diagram required
The instance.
value string required
The value.

Returns

Diagram The same instance.

Examples

// C# initializer or property                                    // C# fluent
new global::ConsoleMonster.Widgets.Diagram { Title = value };    Ui.Diagram().Title(value);