using System.Collections.Generic; using System.Windows; using Core.Common.Controls.Commands; using Core.Common.Gui.Forms; using Core.Plugins.Charting.Commands; namespace Core.Plugins.Charting { /// /// Interaction logic for Ribbon.xaml /// public partial class Ribbon : IRibbonCommandHandler { private readonly ShowChartLegendViewCommand showChartLegendViewCommand; private readonly ExportChartAsImageCommand exportAsImageCommand; private readonly DecreaseFontSizeCommand decreaseFontSizeCommand; private readonly IncreaseFontSizeCommand increasFontSizeCommand; private readonly RulerCommand rulerCommand; public Ribbon() { InitializeComponent(); showChartLegendViewCommand = new ShowChartLegendViewCommand(); exportAsImageCommand = new ExportChartAsImageCommand(); increasFontSizeCommand = new IncreaseFontSizeCommand(); decreaseFontSizeCommand = new DecreaseFontSizeCommand(); rulerCommand = new RulerCommand(); chartTab.Group = chartingContextualGroup; } public IEnumerable Commands { get { yield return showChartLegendViewCommand; yield return exportAsImageCommand; yield return increasFontSizeCommand; yield return decreaseFontSizeCommand; yield return rulerCommand; } } public void ValidateItems() { ButtonExportAsImage.IsEnabled = exportAsImageCommand.Enabled; ButtonIncreaseFontSize.IsEnabled = increasFontSizeCommand.Enabled; ButtonDecreaseFontSize.IsEnabled = decreaseFontSizeCommand.Enabled; ButtonChartLegendToolWindow.IsChecked = showChartLegendViewCommand.Checked; RulerToggleButton.IsEnabled = rulerCommand.Enabled; RulerToggleButton.IsChecked = rulerCommand.Checked; } public bool IsContextualTabVisible(string tabGroupName, string tabName) { return tabGroupName == chartingContextualGroup.Name && tabName == chartTab.Name && exportAsImageCommand.Enabled; } public object GetRibbonControl() { return RibbonControl; } private void ButtonChartLegendToolWindow_Click(object sender, RoutedEventArgs e) { showChartLegendViewCommand.Execute(); ValidateItems(); } private void ButtonDecreaseFontSize_Click(object sender, RoutedEventArgs e) { decreaseFontSizeCommand.Execute(); } private void ButtonIncreaseFontSize_Click(object sender, RoutedEventArgs e) { increasFontSizeCommand.Execute(); } private void ButtonExportAsImage_Click(object sender, RoutedEventArgs e) { exportAsImageCommand.Execute(); } private void RulerButtonChecked(object sender, RoutedEventArgs e) { if (rulerCommand.Enabled) { rulerCommand.Execute(RulerToggleButton.IsChecked); } } } }