Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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)");
            }
        }
Exemplo n.º 3
0
        /// <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());
            }
        }
Exemplo n.º 4
0
 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.");
     }
 }
Exemplo n.º 5
0
 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.");
     }
 }
Exemplo n.º 6
0
        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;
            }
        }