Diagram
ConsoleMonster.Widgets
A live diagram with a dependency-free tree view and an optional Graphics topology renderer.
Inheritance
- LiveWidget
- Diagram
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.
Returned or exposed by 46
- Method DiagramExtensions.ToDiagram
- Method Ui.Diagram
- Extension method Diagram.AddGroup
- Extension method Diagram.AddGroups
- Extension method Diagram.AddLink
- Extension method Diagram.AddLinks
- Extension method Diagram.AddNode
- Extension method Diagram.AddNodes
- Extension method Diagram.AddUseCase
- Extension method Diagram.AddUseCases
- Extension method Diagram.Direction
- Extension method Diagram.MaxPayloadLines
- Extension method Diagram.MaxStepLines
- Extension method Diagram.Scenario
- Extension method Diagram.ShowDetails
- Extension method Diagram.ShowKeys
- Extension method Diagram.ShowLegend
- Extension method Diagram.ShowStepPanel
- Extension method Diagram.ShowSummary
- Extension method Diagram.Title
- Method Diagram.FromLinks``1
- Method Diagram.Group
- Method Diagram.Link
- Method Diagram.Load
- Method Diagram.Node
- Method Diagram.SelectScenario
- Method Diagram.Summary
- Method Diagram.UseCase
- Method WidgetsFluent.AddGroup
- Method WidgetsFluent.AddGroups
- Method WidgetsFluent.AddLink
- Method WidgetsFluent.AddLinks
- Method WidgetsFluent.AddNode
- Method WidgetsFluent.AddNodes
- Method WidgetsFluent.AddUseCase
- Method WidgetsFluent.AddUseCases
- Method WidgetsFluent.Direction
- Method WidgetsFluent.MaxPayloadLines
- Method WidgetsFluent.MaxStepLines
- Method WidgetsFluent.Scenario
- Method WidgetsFluent.ShowDetails
- Method WidgetsFluent.ShowKeys
- Method WidgetsFluent.ShowLegend
- Method WidgetsFluent.ShowStepPanel
- Method WidgetsFluent.ShowSummary
- Method WidgetsFluent.Title
Accepted by parameters 38
- Method ContentBuilder.Diagram
- Method ContentBuilder.Diagram
- Extension method Diagram.AddGroup
- Extension method Diagram.AddGroups
- Extension method Diagram.AddLink
- Extension method Diagram.AddLinks
- Extension method Diagram.AddNode
- Extension method Diagram.AddNodes
- Extension method Diagram.AddUseCase
- Extension method Diagram.AddUseCases
- Extension method Diagram.Direction
- Extension method Diagram.MaxPayloadLines
- Extension method Diagram.MaxStepLines
- Extension method Diagram.Scenario
- Extension method Diagram.ShowDetails
- Extension method Diagram.ShowKeys
- Extension method Diagram.ShowLegend
- Extension method Diagram.ShowStepPanel
- Extension method Diagram.ShowSummary
- Extension method Diagram.Title
- Method WidgetsFluent.AddGroup
- Method WidgetsFluent.AddGroups
- Method WidgetsFluent.AddLink
- Method WidgetsFluent.AddLinks
- Method WidgetsFluent.AddNode
- Method WidgetsFluent.AddNodes
- Method WidgetsFluent.AddUseCase
- Method WidgetsFluent.AddUseCases
- Method WidgetsFluent.Direction
- Method WidgetsFluent.MaxPayloadLines
- Method WidgetsFluent.MaxStepLines
- Method WidgetsFluent.Scenario
- Method WidgetsFluent.ShowDetails
- Method WidgetsFluent.ShowKeys
- Method WidgetsFluent.ShowLegend
- Method WidgetsFluent.ShowStepPanel
- Method WidgetsFluent.ShowSummary
- Method WidgetsFluent.Title
Constructors
public Diagram(string title = "", string widgetId = "diagram") #Creates a diagram with a title and a live-update identity.
Parameters
- title string = ""
- widgetId string = "diagram"
Methods
public override void Apply(LiveEvent liveEvent) #Applies an event to the widget's state.
Parameters
- liveEvent ConsoleMonster.Live.LiveEvent
- The event.
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
- The event that was applied.
Returns
string? A plain line or null.public void FocusNode(string? id) #Focuses a component, or clears focus with null.
Parameters
- id string?
public static Diagram FromLinks<T>(IEnumerable<T?> rows, Func<T?, string> from, Func<T?, string> to, Func<T?, string?>? label = null, Func<T?, StatusKind>? status = null, Func<T?, string?>? group = null) #Creates a diagram from connection rows. Endpoints are created automatically; group selects the source's group.
Type Parameters
- T
Parameters
- rows System.Collections.Generic.IEnumerable<T?>
- from System.Func<T?, string>
- to System.Func<T?, string>
- label System.Func<T?, string?>? = null
- status System.Func<T?, ConsoleMonster.Styling.StatusKind>? = null
- group System.Func<T?, string?>? = null
Returns
Diagrampublic Diagram Group(string label, Action<DiagramGroupBuilder> configure) #Adds a group and returns this diagram.
Parameters
- label string
- configure System.Action<ConsoleMonster.Widgets.DiagramGroupBuilder>
Returns
Diagrampublic DiagramHandle Handle(ILiveDispatcher dispatcher) #Posts live updates through a session.
Parameters
- dispatcher ConsoleMonster.Live.ILiveDispatcher
Returns
DiagramHandlepublic bool HandleInput(InputEvent input) #Handles a diagram key; false lets the host handle it.
Parameters
- input ConsoleMonster.Input.InputEvent
Returns
boolpublic Diagram Link(string from, string to, Action<DiagramLinkBuilder>? configure = null) #Adds a connection and returns this diagram.
Parameters
- from string
- to string
- configure System.Action<ConsoleMonster.Widgets.DiagramLinkBuilder>? = null
Returns
Diagrampublic static Diagram Load(string path, string? diagramId = null) #Loads a ChartForgeX file using the registered Graphics provider.
Parameters
- path string
- diagramId string? = null
Returns
Diagrampublic override Size Measure(Constraints constraints, RenderContext context) #Returns the size the widget wants within the constraints.
Parameters
- constraints ConsoleMonster.Layout.Constraints
- The space offered.
- context ConsoleMonster.Canvas.RenderContext
- Profile, theme and glyphs.
public void NextScenario(int delta = 1) #Selects the next or previous use case.
Parameters
- delta int = 1
public Diagram Node(string label, Action<DiagramNodeBuilder>? configure = null) #Adds a component and returns this diagram.
Parameters
- label string
- configure System.Action<ConsoleMonster.Widgets.DiagramNodeBuilder>? = null
Returns
Diagrampublic 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
- The target region.
- context ConsoleMonster.Canvas.RenderContext
- 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
- cancellationToken System.Threading.CancellationToken = default
Returns
AppStatepublic Diagram SelectScenario(string? id) #Selects a use case and clears its active step.
Parameters
- id string?
Returns
Diagrampublic void SetValue(string node, string? value, StatusKind? status = null) #Sets a component's third line and optionally its status.
Parameters
- node string
- value string?
- status ConsoleMonster.Styling.StatusKind? = null
public Diagram Summary(bool show = true) #Controls the attention summary and returns this diagram.
Parameters
- show bool = true
Returns
DiagramInherited Methods
Properties
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 IReadOnlyDictionary<string, string> Values { get; } #A snapshot of component values, keyed by their explicit id or label.
Inherited Properties
Extension Methods
public static Diagram AddGroup(Diagram diagram, DiagramGroup item) #Adds an item to Diagram.Groups: Top-level groups.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- item ConsoleMonster.Widgets.DiagramGroup
- The item.
public static Diagram AddGroups(Diagram diagram, params DiagramGroup[] items) #Adds items to Diagram.Groups: Top-level groups.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items ConsoleMonster.Widgets.DiagramGroup[]
- The items, in order.
public static Diagram AddGroups(Diagram diagram, IEnumerable<DiagramGroup> items) #Adds items to Diagram.Groups: Top-level groups.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramGroup>
- The items, in order.
public static Diagram AddLink(Diagram diagram, DiagramLink item) #Adds an item to Diagram.Links: Explicit connections.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- item ConsoleMonster.Widgets.DiagramLink
- The item.
public static Diagram AddLinks(Diagram diagram, params DiagramLink[] items) #Adds items to Diagram.Links: Explicit connections.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items ConsoleMonster.Widgets.DiagramLink[]
- The items, in order.
public static Diagram AddLinks(Diagram diagram, IEnumerable<DiagramLink> items) #Adds items to Diagram.Links: Explicit connections.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramLink>
- The items, in order.
public static Diagram AddNode(Diagram diagram, DiagramNode item) #Adds an item to Diagram.Nodes: Ungrouped components.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- item ConsoleMonster.Widgets.DiagramNode
- The item.
public static Diagram AddNodes(Diagram diagram, params DiagramNode[] items) #Adds items to Diagram.Nodes: Ungrouped components.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items ConsoleMonster.Widgets.DiagramNode[]
- The items, in order.
public static Diagram AddNodes(Diagram diagram, IEnumerable<DiagramNode> items) #Adds items to Diagram.Nodes: Ungrouped components.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramNode>
- The items, in order.
public static Diagram AddUseCase(Diagram diagram, DiagramUseCase item) #Adds an item to Diagram.UseCases: Selectable sequences of interactions.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- item ConsoleMonster.Widgets.DiagramUseCase
- The item.
public static Diagram AddUseCases(Diagram diagram, params DiagramUseCase[] items) #Adds items to Diagram.UseCases: Selectable sequences of interactions.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items ConsoleMonster.Widgets.DiagramUseCase[]
- The items, in order.
public static Diagram AddUseCases(Diagram diagram, IEnumerable<DiagramUseCase> items) #Adds items to Diagram.UseCases: Selectable sequences of interactions.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.DiagramUseCase>
- The items, in order.
public static Diagram Direction(Diagram diagram, DiagramDirection value) #Sets Diagram.Direction: The reading direction.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- value ConsoleMonster.Widgets.DiagramDirection
- The value.
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
- The instance.
- value int
- The value.
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
- The instance.
- value int
- The value.
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
- The instance.
- configure System.Action<ConsoleMonster.Widgets.DiagramUseCase>
- Configures the value.
public static Diagram ShowDetails(Diagram diagram, bool value) #Sets Diagram.ShowDetails: Whether focused-node details are shown.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- value bool
- The value.
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
- The instance to configure.
public static Diagram ShowKeys(Diagram diagram, bool value) #Sets Diagram.ShowKeys: Whether keyboard hints are shown.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- value bool
- The value.
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
- The instance to configure.
public static Diagram ShowLegend(Diagram diagram, bool value) #Sets Diagram.ShowLegend: Whether status meanings are shown below the topology.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- value bool
- The value.
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
- The instance to configure.
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
- The instance.
- value bool
- The value.
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
- The instance to configure.
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
- The instance.
- value bool
- The value.
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
- The instance to configure.
public static Diagram Title(Diagram diagram, string value) #Sets Diagram.Title: The diagram title.
Parameters
- diagram ConsoleMonster.Widgets.Diagram
- The instance.
- value string
- The value.
Examples
// C# initializer or property // C# fluent
new global::ConsoleMonster.Widgets.Diagram { Title = value }; Ui.Diagram().Title(value);