protected void SetViewModelFactory(ViewModelFactory factory) { ViewModelFactory?.ClearChangedListeners(); ViewModelFactory = factory; ViewModelFactory.Changed += OnPropertyChanged; RibbonUI?.Invalidate(); }
// Taskpane visibility has been changed. We upate the checkbutton in the ribbon ui for show/hide taskpane protected override void TaskPaneVisibleStateChanged(Office._CustomTaskPane customTaskPaneInst) { if (null != RibbonUI) { RibbonUI.InvalidateControl("PaneVisibleToogleButton"); } }
private void LoadStacks() { try { if (extension.Notebooks.SelectedNotebook == null) { // We don't have any notebooks return; } List <Stack> stacks = GetFilteredStacks(extension.Notebooks.SelectedNotebook.Stacks); RibbonUI.InvalidateControl(stackDropDown.Id); stackDropDown.Items.Clear(); if (stacks.Count < 1) { return; } foreach (Stack stack in stacks) { RibbonDropDownItem dropDownItem = Factory.CreateRibbonDropDownItem(); dropDownItem.Label = stack.Name; stackDropDown.Items.Add(dropDownItem); } // Try to reselect the already selected stack Stack selected = extension.Notebooks.SelectedStack; // Otherwise, select the first item if (selected == null) { selected = stacks[0]; extension.Notebooks.SelectStack(selected); } extension.SelectStack(selected); int index = stacks.FindIndex((item) => item.Name == selected.Name); stackDropDown.SelectedItemIndex = index; } catch (Exception e) { InformationDispatcher.Default.Dispatch(e, informationContext); } }
private void LoadNotebooks(List <Notebook> items = null) { try { List <Notebook> notebooks = items ?? extension.Notebooks.GetNotebooks(); RibbonUI.InvalidateControl(notebookDropDown.Id); notebookDropDown.Items.Clear(); if (notebooks.Count < 1) { return; } foreach (Notebook notebook in notebooks) { RibbonDropDownItem dropDownItem = Factory.CreateRibbonDropDownItem(); dropDownItem.Label = notebook.Name; notebookDropDown.Items.Add(dropDownItem); } // Try to reselect the already selected notebook Notebook selected = extension.Notebooks.SelectedNotebook; // Otherwise, use the first item if (selected == null) { selected = notebooks[0]; extension.Notebooks.SelectNotebook(selected); } extension.SelectNotebook(selected); int index = notebooks.FindIndex((item) => item.ID == selected.ID); notebookDropDown.SelectedItemIndex = index; } catch (Exception e) { InformationDispatcher.Default.Dispatch(e, informationContext); } }
/// <summary> /// Occurs whenever an add-in is unloaded from MS Office /// </summary> /// <param name="removeMode">An ext_DisconnectMode enumeration value that informs an add-in why it was unloaded.</param> /// <param name="custom">An empty array that you can use to pass host-specific data for use after the add-in unloads</param> protected override void HandleOnDisconnection(ext_DisconnectMode removeMode, ref Array custom) { try { RaiseOnDisconnection(removeMode, ref custom); Utils.Dispose(); } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } foreach (ITaskPane item in TaskPaneInstances) { try { item.OnDisconnection(); } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } } foreach (var item in TaskPanes) { try { if (null != item.Pane && !item.Pane.IsDisposed) { item.Pane.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } } try { if (null != TaskPaneFactory && false == TaskPaneFactory.IsDisposed) { TaskPaneFactory.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } try { if (null != RibbonUI) { RibbonUI.Dispose(); RibbonUI = null; } } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } try { if (!Application.IsDisposed) { Application.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } try { CleanUp(); } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } }
void NetOffice.Tools.Native.IDTExtensibility2.OnDisconnection(ext_DisconnectMode RemoveMode, ref Array custom) { try { try { RaiseOnDisconnection(RemoveMode, ref custom); Tweaks.DisposeTweaks(Factory, this, Type); Utils.Dispose(); } catch (NetRuntimeSystem.Exception exception) { Factory.Console.WriteException(exception); } foreach (ITaskPane item in TaskPaneInstances) { try { item.OnDisconnection(); } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); } } foreach (var item in TaskPanes) { try { if (null != item.Pane && !item.Pane.IsDisposed) { item.Pane.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); } } try { if (null != TaskPaneFactory && false == TaskPaneFactory.IsDisposed) { TaskPaneFactory.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); } try { if (null != RibbonUI) { RibbonUI.Dispose(); RibbonUI = null; } } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); } try { if (!Application.IsDisposed) { Application.Dispose(); } } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); } } catch (NetRuntimeSystem.Exception exception) { NetOffice.DebugConsole.Default.WriteException(exception); OnError(ErrorMethodKind.OnDisconnection, exception); } }
public void InvalidateRibbonUI() { RibbonUI?.Invalidate(); }
protected virtual void OnPropertyChanged(object sender, IControlChangedEventArgs e) => RibbonUI?.InvalidateControl(e?.Control.ControlId);