Package-level declarations

Types

Link copied to clipboard
data class CommandDescriptor(val id: CommandId, val displayName: String, val featureId: FeatureId? = null)

A command an extension contributes, invokable from the UI (e.g. a button) and routed to its ExtensionActionHandler.

Link copied to clipboard

Runs an extension's CommandDescriptors: implementors interpret the command id in ExtensionCommandContext and return whatever feature/event/effect updates that command should produce.

Link copied to clipboard
data class ExtensionCommandContext(val page: PageState, val commandId: CommandId, val payload: Map<String, String>)

Everything an ExtensionActionHandler needs to service one extension-command dispatch.

Link copied to clipboard
data class ExtensionCommandResult(val featureUpdates: Map<FeatureId, Map<String, FeatureValue>> = emptyMap(), val events: List<GuiEvent> = emptyList(), val effects: List<GuiEffect> = emptyList())

What an ExtensionActionHandler produced for one command: any feature-state updates, plus events/effects to feed back through the same channels the core controller uses.

Link copied to clipboard
data class GuiContributions(val solverProfiles: List<SolverProfile> = emptyList(), val features: List<FeatureDescriptor> = emptyList(), val commands: List<CommandDescriptor> = emptyList(), val actionHandler: ExtensionActionHandler? = null)

Everything one GuiExtension adds to the application: solver profiles, feature tabs/panels, commands, and the handler that runs those commands.

Link copied to clipboard
interface GuiExtension

A pluggable bundle of GUI behavior (e.g. a specific solver profile, like PLP's), registered with a GuiExtensionRegistry and identified by id so its contributions can be looked up and its commands routed.

Link copied to clipboard
class GuiExtensionRegistry(extensions: Iterable<GuiExtension> = emptyList())

Aggregates every registered GuiExtension's contributions (solver profiles, features, commands) into one place, rejecting duplicate ids across extensions, and routes PageAction.ExtensionCommands to the owning extension's handler.