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(); } }
protected override void Run(object dataItem) { ExternalTools.ExternalTool tool = (ExternalTools.ExternalTool)dataItem; tool.Run(); }
public RunCustomToolHandler(ExternalTools.ExternalTool tool) { this.tool = tool; }
public RunCustomToolHandler (ExternalTools.ExternalTool tool) { this.tool = tool; }