using System.Windows.Controls;
namespace Ink_Canvas.Helpers.Plugins
{
///
/// 增强的插件基类,提供对插件服务的访问和基本实现
///
public abstract class EnhancedPluginBase : PluginBase, IEnhancedPlugin
{
///
/// 插件服务实例
///
public IPluginService PluginService { get; private set; }
///
/// 构造函数
///
protected EnhancedPluginBase()
{
PluginService = PluginServiceManager.Instance;
}
///
/// 插件启动时调用,在Initialize之后
///
public virtual void OnStartup()
{
LogHelper.WriteLogToFile($"插件 {Name} 已启动");
}
///
/// 插件关闭时调用,在Cleanup之前
///
public virtual void OnShutdown()
{
LogHelper.WriteLogToFile($"插件 {Name} 正在关闭");
}
///
/// 获取插件的菜单项
///
/// 菜单项集合
public virtual MenuItem[] GetMenuItems()
{
return new MenuItem[0];
}
///
/// 获取插件的工具栏按钮
///
/// 工具栏按钮集合
public virtual Button[] GetToolbarButtons()
{
return new Button[0];
}
///
/// 获取插件的状态栏信息
///
/// 状态栏信息
public virtual string GetStatusBarInfo()
{
return $"{Name} v{Version} - {(IsEnabled ? "已启用" : "已禁用")}";
}
///
/// 插件配置变更时调用
///
public virtual void OnConfigurationChanged()
{
LogHelper.WriteLogToFile($"插件 {Name} 配置已变更");
}
///
/// 重写初始化方法,调用OnStartup
///
public override void Initialize()
{
base.Initialize();
OnStartup();
}
///
/// 重写清理方法,调用OnShutdown
///
public override void Cleanup()
{
OnShutdown();
base.Cleanup();
}
}
}