コード例 #1
0
 protected void SetViewModelFactory(ViewModelFactory factory)
 {
     ViewModelFactory?.ClearChangedListeners();
     ViewModelFactory          = factory;
     ViewModelFactory.Changed += OnPropertyChanged;
     RibbonUI?.Invalidate();
 }
コード例 #2
0
ファイル: Addin.cs プロジェクト: und3rtr33/NetOffice-1
 // 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");
     }
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        /// <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);
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
 public void InvalidateRibbonUI()
 {
     RibbonUI?.Invalidate();
 }
コード例 #8
0
 protected virtual void OnPropertyChanged(object sender, IControlChangedEventArgs e)
 => RibbonUI?.InvalidateControl(e?.Control.ControlId);