using System.Collections.Generic; using System.Drawing; using System.Reflection; using System.Resources; namespace Core.Common.Base { /// /// Provides default functionality making it easier to implement . /// Handles Active status in activate/deactivate. /// public abstract class ApplicationPlugin : IPlugin { /// /// Gets or sets the application. /// The application. public virtual IApplication Application { get; set; } /// /// Gets the name of the plugin. /// public abstract string Name { get; } /// /// Gets the name of the plugin as displayed in the user interface. /// public abstract string DisplayName { get; } /// /// Gets the description of the plugin. /// public abstract string Description { get; } /// /// Gets the version of the plugin. /// public abstract string Version { get; } /// /// Image for displaying in gui. Default format 32x32 bitmap or scalable. /// public virtual Image Image { get { return null; } } /// /// ResourceManger of plugin. Default Properties.Resources. /// public virtual ResourceManager Resources { get; set; } /// /// Provides information about data that can be created /// public virtual IEnumerable GetDataItemInfos() { yield break; } /// /// File importers of this plugin /// public virtual IEnumerable GetFileImporters() { yield break; } /// /// File exporters of this plugin /// public virtual IEnumerable GetFileExporters() { yield break; } /// /// Activates the plugin. /// public virtual void Activate() { } /// /// Deactivates the plugin. /// public virtual void Deactivate() { } } }