Class AbstractBuilderUI<RUNNER>
Last update: 19.06.2026Namespace: Phoenix.ComponentPlugInSDK
Assembly: Phoenix.ComponentPlugInSDK.dll
This class serves as a common base class that implements IHarnessBuilderUI. It contains logic for managing the lifespan and events around the window that implements the UI. It also contains some helper utilities around window management.
public abstract class AbstractBuilderUI<RUNNER> : AbstractDisposable, IHarnessBuilderUI<RUNNER>, IHarnessBuilderUIBase, IDisposable where RUNNER : IHarnessRunner
Type Parameters
RUNNER
The type of IHarnessRunner that this builder edits.
Inheritance
object ← AbstractDisposable ← AbstractBuilderUI<RUNNER>
Implements
IHarnessBuilderUI<RUNNER>, IHarnessBuilderUIBase, IDisposable
Inherited Members
AbstractDisposable.disposed, AbstractDisposable.Dispose(), AbstractDisposable.IsDisposed, AbstractDisposable.Dispose(bool), object.ToString(), object.Equals(object), object.Equals(object, object), object.ReferenceEquals(object, object), object.GetHashCode(), object.GetType(), object.MemberwiseClone()
Fields
The main window of the Builder UI.
Properties
The URI of the icon to use for the builder UI. If null, the default Windows icon will be used.
The name of the builder to use in the UI.
Returns the Type object for the IHarnessRunner that this builder UI operates on.
The host object
Methods
AddAsyncMenuItem(ItemsControl, string, RoutedEventHandlerAsync)
Adds a child menuItem to the specified parent.
AddAsyncMenuItem(ItemsControl, string, ImageType, bool, RoutedEventHandlerAsync)
Adds a child menuItem to the specified parent.
AddAsyncMenuItem(ItemsControl, string, ImageSource, bool, RoutedEventHandlerAsync)
Adds a child menuItem to the specified parent.
AddMenuItem(ItemsControl, string, RoutedEventHandler)
Adds a child menuItem to the specified parent.
AddMenuItem(ItemsControl, string, ImageType, bool, RoutedEventHandler)
Adds a child menuItem to the specified parent.
AddMenuItem(ItemsControl, string, ImageSource, bool, RoutedEventHandler)
Adds a child menuItem to the specified parent.
ConstructAsync(IHarnessBuilderUIHost<RUNNER>)
Will always be called first to allow the object to instantiate itself.
Creates the Main Window of the Builder UI. It is recommended that all implementations return
a Window that implements Phoenix.ComponentPlugInSDK.Views.ISaveableWindow. If the window does not, then requests
from the OEM to save the UI via Phoenix.ComponentBuilderAPI.IHarnessBuilderUIBase.TrySaveAsync will silently
return true.
Given an Exception, display an appropriate error dialog to the user and log the full stack trace to the logs.
Standard disposal.
Opens the CommonSelectVariablesForm. The form will be initialized with the available variables plus the currently selected variables from the IPlugInViewModel. If the form is successfully closed, the viewModel's variable list will be updated to the selected variables.
SelectVariables(AbstractVariableProvider, IPlugInViewModel, string)
Opens the CommonSelectVariablesForm.
The form will initialize with variables provided by the variableProvider with the viewModel's
Phoenix.ComponentPlugInSDK.ViewModels.IPlugInViewModel.InputVariables and Phoenix.ComponentPlugInSDK.ViewModels.IPlugInViewModel.OutputVariables selected.
If the form is successfully closed, the viewModel's variable list will be updated to the selected variables.
Adds an icon file to the Pacz from a resource image.
Request that the UI be shown.
Tells the UI to save any current work. If there are no change, this function should return true immediately. If there are unsaved changes, the user should be prompted to save their work with (yes, no, cancel) options.
If the plug-in writer does not wish to have this protection, just return true and do nothing.
This event is raised any time the window is closed.