using System; namespace Unity.VisualScripting { public class WidgetProvider : SingleDecoratorProvider { public ICanvas canvas { get; } public WidgetProvider(ICanvas canvas) { Ensure.That(nameof(canvas)).IsNotNull(canvas); this.canvas = canvas; } protected override bool cache => true; public override bool IsValid(IGraphItem item) { return item.graph == canvas.graph; } protected override IWidget CreateDecorator(Type widgetType, IGraphItem item) { return (IWidget)widgetType.Instantiate(false, canvas, item); } } }