public void RunSchemaExport() { try { if (IsSchemaExportProjectAvailable && m_schemaExportProject != null) { if (m_addInSettings.PassSchemaExportArguments) { Property prop = m_schemaExportProject.Project.ConfigurationManager.ActiveConfiguration.Properties.Item("StartArguments"); prop.Value = m_addInSettings.SchemaExportCommandLine; } string solutionName = VSSolutionUtils.GetSolutionName(m_applicationObject.Solution); // Activate the solution explorer window m_applicationObject.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate(); // Grab the UIHierarchy object for the schema export project UIHierarchyItem item = ((UIHierarchy)m_applicationObject.ActiveWindow.Object).GetItem(solutionName + "\\" + m_schemaExportProject.Name); // Select the project item.Select(vsUISelectionType.vsUISelectionTypeSelect); // Execute the Debug.StartNewInstance command m_applicationObject.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance", string.Empty); } else { AddInUtils.ShowWarning("The schema export project for this solution could not be found.\nPlease ensure the following variables are set correctly in mda\\project.properties\n\nmaven.andromda.schemaexport.available=true\nmaven.andromda.schemaexport.dir=<path to schema export project>"); } } catch (Exception e) { AddInUtils.ShowError(e.Message); } }
public override void Exec(vsCommandExecOption executeOption, ref object varIn, ref object varOut) { string magicDrawPath = m_addInSettings.UMLModellerPath; if (magicDrawPath != string.Empty && System.IO.File.Exists(magicDrawPath) && System.IO.File.Exists(m_solutionManager.ModelFilePath)) { try { if (m_addInSettings.AutoMakeModelFileWritable) { System.IO.FileAttributes attr = System.IO.File.GetAttributes(m_solutionManager.ModelFilePath); if ((attr & System.IO.FileAttributes.ReadOnly) != 0) { attr -= System.IO.FileAttributes.ReadOnly; System.IO.File.SetAttributes(m_solutionManager.ModelFilePath, attr); } } //AddInUtils.ShowWarning("Path: " + magicDrawPath + "\nArgs: " + "\"" + m_solutionManager.ModelFilePath + "\""); System.Diagnostics.Process.Start(magicDrawPath, "\"" + m_solutionManager.ModelFilePath + "\""); } catch (Exception e) { AddInUtils.ShowError("An unexpected error occured while trying to launch the external UML modeling tool: " + e.Message); } } else { AddInUtils.ShowError("The external UML modeling tool could not be found. Please ensure the path is correct in the Android/VS options page (Tools | Options | AndroMDA | Tools)"); } }
/// <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 RunMaven() { if (IsEnabled) { if (m_mavenProxy.OutputWindow == null) { OutputWindowPane owp = GetOutputWindowPane("AndroMDA"); m_mavenProxy.OutputWindow = m_applicationObject.Windows.Item(EnvDTE.Constants.vsWindowKindOutput); m_mavenProxy.OutputWindowPane = owp; } m_mavenProxy.Start(); } else { AddInUtils.ShowError("You must have an MDA-enabled solution loaded to run Maven."); } }
public void RefreshGeneratedFiles() { if (IsEnabled) { try { DoRefreshGeneratedFiles(); m_applicationObject.StatusBar.Progress(false, string.Empty, 0, 0); m_applicationObject.StatusBar.Text = "Android/VS: Solution resync complete"; } catch (Exception e) { AddInUtils.ShowError("An error occured while trying to resynchronize the project tree: " + e.Message); } } else { AddInUtils.ShowError("You must have an MDA-enabled solution loaded to resync generated files."); } }
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; } }