Пример #1
0
 /// <summary>Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.</summary>
 /// <param term='disconnectMode'>Describes how the Add-in is being unloaded.</param>
 /// <param term='custom'>Array of parameters that are host application specific.</param>
 /// <seealso class='IDTExtensibility2' />
 public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
 {
     manager.ApplicationExit(false /* true */);
     customizator.Destroy();
     manager      = null;
     customizator = null;
 }
Пример #2
0
        public void AddInManager_CallInitializeOnceForAction()
        {
            var a1    = CreatePackageActionForManager();
            var a2    = CreatePackageActionForManager();
            var dte   = CreateDTE();
            var addIn = CreateAddIn();

            mock.ReplayAll();

            var manager = new CustomAddInManager(dte, addIn, null, Assembly.GetExecutingAssembly());

            Trace.WriteLine("Addin two actions.");
            manager.Add(a1);
            manager.Add(a2);

            // initialize actions - only the first one should be executed
            // the rest should be discarded by the manager itself:
            Trace.WriteLine("Calling application init of AddIn manager for the first time.");
            manager.ApplicationInit(true);
            Trace.WriteLine("Calling for the second time.");
            manager.ApplicationInit(true);

            // release manager's resources:
            Trace.WriteLine("Calling application exit.");
            manager.ApplicationExit(true);

            // check if the initialization has been called at most 2-times:
            Trace.WriteLine("Validating number of calls.");
            ThrowCounterException(2);
        }
Пример #3
0
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            if (manager == null)
            {
                customizator = new TytanCustomizator();
                manager      = new CustomAddInManager((DTE2)application, (AddIn)addInInst, customizator,
                                                      Assembly.GetExecutingAssembly());
                //if (connectMode != ext_ConnectMode.ext_cm_UISetup)
                customizator.Initialize(manager);

                // register all known refactoring IPackageActions:
                manager.Add(new InitConstructorRefactor());
                manager.Add(new ExtractPropertyRefactor());
                //manager.Add(new ExpandEnumRefactor());
                // manager.Add(new ExtractResourceRefactor());
                manager.Add(new AssignReorderRefactor());
                manager.Add(new MultiRenameRefactor());
                manager.Add(new InsertionGuidRefactor());
                manager.Add(new InsertionClassNameAction());
                manager.Add(new InsertionPathRefactor());
                manager.Add(new InsertionDatabaseRefactor());
                if (manager.Version == ShellVersions.VS2005)
                {
                    manager.Add(new OpenWindowsExplorer());
                }
                manager.Add(new VisualStudioCloseQuestion());
                manager.Add(new ReferenceProjectAction());

                // manager.Add(new NativeImagePreviewPackageTool());
                manager.Add(new CommandViewPackageTool());
                manager.Add(new RegistryViewPackageTool());
                manager.Add(new EnvironmentVarsPackageTool());
                manager.Add(new DebugViewPackageTool());

                manager.Add(new AboutBoxAction());
            }

            // initialize VS IDE commands:
            manager.ApplicationInit(true /* connectMode == ext_ConnectMode.ext_cm_UISetup */);
            customizator.AfterApplicationInit(true);
        }
Пример #4
0
        /// <summary>
        /// Initialize customizator and associate with given manager.
        /// </summary>
        public void Initialize(CustomAddInManager m)
        {
            IMenuCreator mc = m.MenuCreator;

            // read the global settings for an add-in:
            config = ObjectFactory.LoadConfiguration(null);

            // configure the management objects:
            manager       = m;
            tytanToolbar  = mc.AddToolbar(ToolbarName);
            tytanAuxTools = mc.AddPopup(tytanToolbar, AuxiliaryToolsName, null, false, -1);

            tytanRefactors = mc.AddPopup(tytanToolbar, RefactorMenu, null, true, -1);
            refactors      = new List <CommandBar>();
            if (tytanRefactors != null)
            {
                refactors.Add(tytanRefactors.CommandBar);
            }
            refactors.Add(mc.GetMainMenuCommandBar(RefactorMenu));
            refactors.Add(mc.GetCodeWindowCommandBar(RefactorMenu));
        }