aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2023-05-27 08:50:30 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2023-05-27 08:50:30 +0300
commite67d94f1995f3de8c4d83eeddf71816589c6bcb5 (patch)
treecfdb815a768dc1eb9e706c3da2a0c1d204e3ae33
parent2aae1805c5c94ed1a25ec107ec6f5f1c8982cbfd (diff)
Multiple buttons refreshing
-rw-r--r--RhSolutions.AddIn/Controllers/RibbonController.cs49
-rw-r--r--RhSolutions.AddIn/Tools/EventsUtil.cs29
2 files changed, 22 insertions, 56 deletions
diff --git a/RhSolutions.AddIn/Controllers/RibbonController.cs b/RhSolutions.AddIn/Controllers/RibbonController.cs
index 140ba10..b5edde0 100644
--- a/RhSolutions.AddIn/Controllers/RibbonController.cs
+++ b/RhSolutions.AddIn/Controllers/RibbonController.cs
@@ -15,6 +15,7 @@ namespace RhSolutions.Controllers;
public class RibbonController : ExcelRibbon
{
private static IRibbonUI ribbonUi;
+ private static bool _workbookIsValid;
public override string GetCustomUI(string RibbonID)
{
@@ -81,17 +82,9 @@ public class RibbonController : ExcelRibbon
}
}
- public bool GetConvertEnabled(IRibbonControl control)
- {
- if (RhSolutionsAddIn.Excel.ActiveWorkbook == null)
- return false;
-
- else
- {
- Worksheet worksheet = RhSolutionsAddIn.Excel.ActiveWorkbook.ActiveSheet;
- return worksheet.IsValidSource();
- }
- }
+ public bool GetConvertEnabled(IRibbonControl control) => _workbookIsValid;
+ public bool GetDxfEnabled(IRibbonControl control) => _workbookIsValid;
+ public bool GetGuessEnabled(IRibbonControl control) => RhSolutionsAddIn.Excel.ActiveWorkbook == null ? false : !_workbookIsValid;
public bool GetExportEnabled(IRibbonControl control)
{
@@ -105,39 +98,27 @@ public class RibbonController : ExcelRibbon
}
}
- public bool GetDxfEnabled(IRibbonControl control)
+ public string GetVersionLabel(IRibbonControl control)
{
- if (RhSolutionsAddIn.Excel.ActiveWorkbook == null)
- return false;
+ string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ return $"v{version}";
+ }
- else
- {
- Worksheet worksheet = RhSolutionsAddIn.Excel.ActiveWorkbook.ActiveSheet;
- return worksheet.IsValidSource();
- }
+ public string GetPriceListPathLabel(IRibbonControl control)
+ {
+ string name = RhSolutionsAddIn.Configuration.GetPriceListFileName();
+ return string.IsNullOrEmpty(name) ? "Шаблонный файл" : name;
}
- public bool GetGuessEnabled(IRibbonControl control)
+ public static void UpdateWorkbookValidation()
{
if (RhSolutionsAddIn.Excel.ActiveWorkbook == null)
- return false;
+ _workbookIsValid = false;
else
{
Worksheet worksheet = RhSolutionsAddIn.Excel.ActiveWorkbook.ActiveSheet;
- return !worksheet.IsValidSource();
+ _workbookIsValid = worksheet.IsValidSource();
}
}
-
- public string GetVersionLabel(IRibbonControl control)
- {
- string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
- return $"v{version}";
- }
-
- public string GetPriceListPathLabel(IRibbonControl control)
- {
- string name = RhSolutionsAddIn.Configuration.GetPriceListFileName();
- return string.IsNullOrEmpty(name) ? "Шаблонный файл" : name;
- }
}
diff --git a/RhSolutions.AddIn/Tools/EventsUtil.cs b/RhSolutions.AddIn/Tools/EventsUtil.cs
index 92aa717..07da3e5 100644
--- a/RhSolutions.AddIn/Tools/EventsUtil.cs
+++ b/RhSolutions.AddIn/Tools/EventsUtil.cs
@@ -16,35 +16,25 @@ namespace RhSolutions.Tools
public static void Initialize()
{
RhSolutionsAddIn.Excel.SheetSelectionChange += RefreshExportButton;
- RhSolutionsAddIn.Excel.SheetActivate += RefreshConvertButton;
- RhSolutionsAddIn.Excel.SheetActivate += RefreshDxfButton;
- RhSolutionsAddIn.Excel.SheetActivate += RefreshGuessButton;
- RhSolutionsAddIn.Excel.WorkbookActivate += RefreshConvertButton;
- RhSolutionsAddIn.Excel.WorkbookActivate += RefreshDxfButton;
- RhSolutionsAddIn.Excel.WorkbookActivate += RefreshGuessButton;
+ RhSolutionsAddIn.Excel.SheetActivate += RefreshButtons;
+ RhSolutionsAddIn.Excel.WorkbookActivate += RefreshButtons;
RhSolutionsAddIn.Configuration.OnSettingsChange += RefreshSettingTitle;
}
public static void Uninitialize()
{
RhSolutionsAddIn.Excel.SheetSelectionChange -= RefreshExportButton;
- RhSolutionsAddIn.Excel.SheetActivate -= RefreshConvertButton;
- RhSolutionsAddIn.Excel.SheetActivate -= RefreshDxfButton;
- RhSolutionsAddIn.Excel.SheetActivate -= RefreshGuessButton;
- RhSolutionsAddIn.Excel.WorkbookActivate -= RefreshConvertButton;
- RhSolutionsAddIn.Excel.WorkbookActivate -= RefreshDxfButton;
- RhSolutionsAddIn.Excel.WorkbookActivate -= RefreshGuessButton;
+ RhSolutionsAddIn.Excel.SheetActivate -= RefreshButtons;
+ RhSolutionsAddIn.Excel.WorkbookActivate -= RefreshButtons;
RhSolutionsAddIn.Configuration.OnSettingsChange -= RefreshSettingTitle;
}
- private static void RefreshConvertButton(object sh)
+ private static void RefreshButtons(object sh)
{
+ RibbonController.UpdateWorkbookValidation();
RibbonController.RefreshControl("convert");
- }
-
- private static void RefreshDxfButton(object sh)
- {
RibbonController.RefreshControl("dxfexport");
+ RibbonController.RefreshControl("Guessexport");
}
private static void RefreshExportButton(object sh, Range target)
@@ -52,11 +42,6 @@ namespace RhSolutions.Tools
RibbonController.RefreshControl("export");
}
- private static void RefreshGuessButton(object sh)
- {
- RibbonController.RefreshControl("Guessexport");
- }
-
private static void RefreshSettingTitle(object sender, SettingChangingEventArgs e)
{
RibbonController.RefreshControl("setPriceList");