public void SetContext(DTE application, AddIn addIn, MDASolutionManager solutionManager, AddInSettings addInSettings) { m_application = application; m_addIn = addIn; m_solutionManager = solutionManager; m_addInSettings = addInSettings; }
/// <summary> /// Called when the add-in is loaded /// </summary> /// <param name="application">The application.</param> /// <param name="connectMode">The connect mode.</param> /// <param name="addInInst">The add in inst.</param> /// <param name="custom">The custom.</param> public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { try { if (connectMode == ext_ConnectMode.ext_cm_UISetup || connectMode == ext_ConnectMode.ext_cm_Solution) { return; } // If the Add-In is already connected return if (m_connected) { return; } m_applicationObject = (DTE)application; m_addInInstance = (AddIn)addInInst; // Don't load the add-in if the following parameters were passed to the app string command_line = m_applicationObject.CommandLineArguments.ToLower(); foreach (string sw in new string[] { "/build", "/rebuild", "/clean", "/deploy" }) { if (command_line.IndexOf(sw) != -1) { return; } } m_addInSettings = new AddInSettings(m_applicationObject); if (m_addInSettings.ShowWelcomeWizard) { Dialogs.WelcomeWizard welcome = new Dialogs.WelcomeWizard(m_addInSettings); welcome.ShowDialog(); m_addInSettings.ShowWelcomeWizard = welcome.ShowWizardAgain; } m_solutionManager = new MDASolutionManager(m_applicationObject, m_addInSettings); BindEvents(); CreateCommands(); RegisterCommands(); RegisterToolbar(); Velocity.Init(); m_connected = true; } catch (Exception e) { AddInUtils.ShowError("An exception occured while trying to instantiate the add-in: " + e.ToString()); } }
public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom) { switch (disconnectMode) { case ext_DisconnectMode.ext_dm_HostShutdown: case ext_DisconnectMode.ext_dm_UserClosed: break; case ext_DisconnectMode.ext_dm_SolutionClosed: case ext_DisconnectMode.ext_dm_UISetupComplete: return; } // If the add-in is not active, do not disconnect if (!m_connected) { return; } try { // Stop maven if it is runing if (m_solutionManager.IsMavenRunning) { m_solutionManager.StopMaven(); } // Save the position/state of the toolbar SaveToolbarSettings(); UnregisterCommands(); UnbindEvents(); m_solutionManager = null; } catch (Exception e) { AddInUtils.ShowError("An exception occured in OnDisconnect(): " + e.ToString()); } finally { m_connected = false; } }
/// <summary> /// Called when the add-in is loaded /// </summary> /// <param name="application">The application.</param> /// <param name="connectMode">The connect mode.</param> /// <param name="addInInst">The add in inst.</param> /// <param name="custom">The custom.</param> public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { try { if (connectMode == ext_ConnectMode.ext_cm_UISetup || connectMode == ext_ConnectMode.ext_cm_Solution) { return; } // If the Add-In is already connected return if (m_connected) { return; } m_applicationObject = (DTE)application; m_addInInstance = (AddIn)addInInst; // Don't load the add-in if the following parameters were passed to the app string command_line = m_applicationObject.CommandLineArguments.ToLower(); foreach (string sw in new string[] { "/build", "/rebuild", "/clean", "/deploy" }) { if (command_line.IndexOf(sw) != -1) return; } m_addInSettings = new AddInSettings(m_applicationObject); if (m_addInSettings.ShowWelcomeWizard) { Dialogs.WelcomeWizard welcome = new Dialogs.WelcomeWizard(m_addInSettings); welcome.ShowDialog(); m_addInSettings.ShowWelcomeWizard = welcome.ShowWizardAgain; } m_solutionManager = new MDASolutionManager(m_applicationObject, m_addInSettings); BindEvents(); CreateCommands(); RegisterCommands(); RegisterToolbar(); Velocity.Init(); m_connected = true; } catch (Exception e) { AddInUtils.ShowError("An exception occured while trying to instantiate the add-in: " + e.ToString()); } }