Esempio n. 1
0
        protected override void Run(object dataItem)
        {
            ExternalTools.ExternalTool tool = (ExternalTools.ExternalTool)dataItem;

            string argumentsTool = StringParserService.Parse(tool.Arguments, IdeApp.Workbench.GetStringTagModel());

            //Save current file checkbox
            if (tool.SaveCurrentFile && IdeApp.Workbench.ActiveDocument != null)
            {
                IdeApp.Workbench.ActiveDocument.Save();
            }

            if (tool.PromptForArguments)
            {
                string customerArguments = MessageService.GetTextResponse(GettextCatalog.GetString("Enter any arguments you want to use while launching tool, {0}:", tool.MenuCommand), GettextCatalog.GetString("Command Arguments for {0}", tool.MenuCommand), "");
                if (customerArguments != String.Empty)
                {
                    argumentsTool = StringParserService.Parse(customerArguments, IdeApp.Workbench.GetStringTagModel());
                }
            }

            DispatchService.BackgroundDispatch(delegate {
                RunExternalTool(tool, argumentsTool);
            });
        }
        void RunExternalTool(ExternalTools.ExternalTool tool, string argumentsTool)
        {
            string commandTool          = StringParserService.Parse(tool.Command, IdeApp.Workbench.GetStringTagModel());
            string initialDirectoryTool = StringParserService.Parse(tool.InitialDirectory, IdeApp.Workbench.GetStringTagModel());

            //Execute tool
            IProgressMonitor progressMonitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor();

            try
            {
                progressMonitor.Log.WriteLine(GettextCatalog.GetString("Running: {0} {1}", (commandTool), (argumentsTool)));
                progressMonitor.Log.WriteLine();

                ProcessWrapper processWrapper;
                if (tool.UseOutputPad)
                {
                    processWrapper = Runtime.ProcessService.StartProcess(commandTool, argumentsTool, initialDirectoryTool, progressMonitor.Log, progressMonitor.Log, null);
                }
                else
                {
                    processWrapper = Runtime.ProcessService.StartProcess(commandTool, argumentsTool, initialDirectoryTool, null);
                }

                string processName = System.IO.Path.GetFileName(commandTool);
                try
                {
                    processName = processWrapper.ProcessName;
                }
                catch (SystemException)
                {
                }

                processWrapper.WaitForOutput();

                if (processWrapper.ExitCode == 0)
                {
                    progressMonitor.Log.WriteLine(GettextCatalog.GetString("Process '{0}' has completed succesfully", processName));
                }
                else
                {
                    progressMonitor.Log.WriteLine(GettextCatalog.GetString("Process '{0}' has exited with error code {1}", processName, processWrapper.ExitCode));
                }
            }
            catch (Exception ex)
            {
                progressMonitor.ReportError(GettextCatalog.GetString("External program execution failed.\nError while starting:\n '{0} {1}'", commandTool, argumentsTool), ex);
            }
            finally
            {
                progressMonitor.Dispose();
            }
        }
Esempio n. 3
0
 protected override void Run(object dataItem)
 {
     ExternalTools.ExternalTool tool = (ExternalTools.ExternalTool)dataItem;
     tool.Run();
 }
Esempio n. 4
0
 public RunCustomToolHandler(ExternalTools.ExternalTool tool)
 {
     this.tool = tool;
 }
Esempio n. 5
0
		public RunCustomToolHandler (ExternalTools.ExternalTool tool)
		{
			this.tool = tool;
		}