private void buttonParameters_Click(object sender, RibbonControlEventArgs e) { Excel.Chart chart = Globals.ThisAddIn.Application.ActiveChart; if (chart != null && Globals.ThisAddIn.Charts.Select(c => c.Chart).Contains(chart)) { ChartBase ch = Globals.ThisAddIn.Charts.Where(c => c.Chart == chart).First(); TreemapChart treemap = (TreemapChart)ch; } }
private void InitTreemap(TreemapAlgorithm algorithm) { ChartData data = InitDataWithMessage(); if (data == null) { return; } Excel.Chart chart = InitChart(); TreemapChart treemap = new TreemapChart(chart); Globals.ThisAddIn.SetTaskPaneViewModel(new TreemapViewModel(treemap, data, algorithm)); Globals.ThisAddIn.Charts.Add(treemap); }
public TreemapViewModel(TreemapChart treemap, ChartData data, TreemapAlgorithm algo) : this() { Treemap = treemap; Data = data; Columns = Data.ColumnNames; Algorithm = algo; InitParameters(); InitColorViewModels(); SetColorViewModel(); Messenger.Default.Register <PropertyChangedMessageBase> ( this, true, (m) => { if (IsDead || !IsSentBySelf(m.Sender)) { return; } if (m.PropertyName == "ColorMethod") { SetColorViewModel(); } ShowLegendDecimalPlaces = LegendFormatType != FormatType.Text; if (!LockRefresh) { DrawChart(); } } ); RefreshCommand = new RelayCommand <object>(_ => DrawChart(true)); DeleteCommand = new RelayCommand <object>( _ => { LockRefresh = true; Indexes.RemoveAt(Indexes.Count - 1); Indexes.Last().AsChildIndex(); DeleteCommand.RaiseCanExecuteChanged(); AddCommand.RaiseCanExecuteChanged(); DrawChart(); LockRefresh = false; }, _ => Indexes.Count > 1); AddCommand = new RelayCommand <object>( _ => { LockRefresh = true; Indexes.Last().AsParentIndex(); string freeColumn = Columns.Where(c => !Indexes.Select(i => i.Column).Contains(c)).First(); Indexes.Add(new TreemapIndexViewModel(freeColumn)); DeleteCommand.RaiseCanExecuteChanged(); AddCommand.RaiseCanExecuteChanged(); DrawChart(); LockRefresh = false; }, _ => Indexes.Count < Columns.Count); DrawChart(); }