using System; using System.Collections.ObjectModel; using Artemis.Core.Modules; namespace Artemis.Core; /// /// Represents a data binding that binds a certain to a value inside a /// /// public interface IDataBinding : IStorageModel, IDisposable, IPluginFeatureDependent { /// /// Gets the layer property the data binding is applied to /// ILayerProperty BaseLayerProperty { get; } /// /// Gets the script used to populate the data binding /// INodeScript Script { get; } /// /// Gets a list of sub-properties this data binding applies to /// ReadOnlyCollection Properties { get; } /// /// Gets a boolean indicating whether the data binding is enabled or not /// bool IsEnabled { get; set; } /// /// Applies the pending value of the data binding to the property /// void Apply(); /// /// If the data binding is enabled, loads the node script for that data binding /// void LoadNodeScript(); /// /// Occurs when a data binding property has been added /// public event EventHandler? DataBindingPropertyRegistered; /// /// Occurs when all data binding properties have been removed /// public event EventHandler? DataBindingPropertiesCleared; /// /// Occurs when a data binding has been enabled /// public event EventHandler? DataBindingEnabled; /// /// Occurs when a data binding has been disabled /// public event EventHandler? DataBindingDisabled; }