private void AddTool() { string title = String.Empty; if (InputDialog.ShowDialog("Tool Title", ref title) != DialogResult.OK) { return; } ExternalToolDef def = null; try { _initializing = true; def = new ExternalToolDef(); def.Title = title; def.Uid = Guid.NewGuid().ToString(); lb.Items.Add(def); RenderExternalToolDef(def); ExternalToolsCfg.Current.Add(def); _shallSave = true; } finally { _initializing = false; } }
private void RenderExternalToolDef(ExternalToolDef exDef) { if (_doNotRender) { return; } try { _initializing = true; ClearControls(); if (exDef == null) { return; } tbTitle.TextBoxText = exDef.Title; tbCmd.Path = exDef.Command; tbArgs.TextBoxText = exDef.Args; tbWorkingDir.Path = exDef.WorkingDir; chkUseOutput.Checked = exDef.UseOuput; } finally { _initializing = false; } }
void p_Exited(object sender, EventArgs e) { Process p = sender as Process; if (p == null) { return; } long handle = p.Handle.ToInt64(); if (!_runningToolDefs.ContainsKey(handle)) { return; } try { ExternalToolDef def = _runningToolDefs[handle]; if (chkClearOutput.Checked) { HostServicesSingleton.HostServices.MsgService.ClearMessages(); } bool shallShow = false; while (p.StandardOutput.Peek() > -1) { string info = p.StandardOutput.ReadLine(); if (!String.IsNullOrEmpty(info)) { HostServicesSingleton.HostServices.MsgService.InfoMsg(info, "Tool : " + def.Title, String.Empty, String.Empty); shallShow = true; } } while (p.StandardError.Peek() > -1) { string error = p.StandardError.ReadLine(); if (!String.IsNullOrEmpty(error)) { HostServicesSingleton.HostServices.MsgService.ErrorMsg(error, "Tool : " + def.Title, String.Empty, String.Empty); shallShow = true; } } if (shallShow == true) { HostServicesSingleton.HostServices.MsgService.ShowMessages(); } } finally { _runningToolDefs.Remove(handle); } }
private void RenderExternalToolDef(ExternalToolDef exDef) { tbCmd.Text = String.Empty; tbArgs.Text = String.Empty; tbWorkingDir.Text = String.Empty; if (exDef == null) { return; } tbCmd.Text = exDef.Command; tbArgs.Text = !String.IsNullOrEmpty(exDef.Args) ? HostServicesSingleton.HostServices.EvalMacro(exDef.Args) : exDef.Args; tbWorkingDir.Text = exDef.WorkingDir; }