using ModpackUpdater.Apps.Manager.Api.Plugins.Params; using ModpackUpdater.Apps.Manager.LangRes; using ModpackUpdater.Apps.Manager.Ui; using Pilz.Plugins.Advanced; using Pilz.UI.Symbols; using Telerik.WinControls.UI; namespace ModpackUpdater.Apps.Manager.Features.CM; internal class UpdateCollectorFeature : PluginFunction, IPluginFeatureProvider { public static UpdateCollectorFeature Instance { get; } = new(); public UpdateCollectorFeature() : base(FeatureTypes.ActionsContextMenu, "origin.updatecollector", FeatureNamesLangRes.UpdateCollectorFeature) { Icon = AppGlobals.Symbols.GetSvgImage(AppSymbols.search, SymbolSize.Small); } protected override object? ExecuteFunction(PluginFunctionParameter? @params) { if (@params is not MainApiParameters p || p.Api.CurWorkspace?.UpdateInfos is null || p.Api.MainWindow is not MainForm mainForm || mainForm.Controls.Find("radGridView_Actions", true).FirstOrDefault() is not RadGridView gridView || gridView.SelectedRows.FirstOrDefault()?.Tag is not InstallAction selectedAction) return null; SharedFunctions.CollectUpdates(p.Api, selectedAction); return null; } }