internal void ReleasePad(SearchResultPad pad) { lock (searchMonitors) { searchMonitors.Add (pad); } }
public SearchProgressMonitor(SearchResultPad pad, string title) { pad.AsyncOperation = this.AsyncOperation; outputPad = pad; outputPad.BeginProgress (title); }
public ISearchProgressMonitor GetSearchProgressMonitor(bool bringToFront) { SearchResultPad pad = null; string title = GettextCatalog.GetString ("Search Results"); lock (searchMonitors) { // Look for an available pad for (int n=0; n<searchMonitors.Count; n++) { SearchResultPad mpad = (SearchResultPad) searchMonitors [n]; if (mpad.AllowReuse) { pad = mpad; searchMonitors.RemoveAt (n); break; } } } if (pad != null) { if (bringToFront) Runtime.Gui.Workbench.BringToFront (pad); return new SearchProgressMonitor (pad, title); } SearchResultPad monitorPad = new SearchResultPad (); monitorPad.Id = "SearchPad" + (monitorId++); Runtime.Gui.Workbench.ShowPad (monitorPad); if (bringToFront) Runtime.Gui.Workbench.BringToFront (monitorPad); return new SearchProgressMonitor (monitorPad, title); }
protected override void OnCompleted() { if (outputPad == null) throw GetDisposedException (); outputPad.WriteText ("\n"); foreach (string msg in SuccessMessages) outputPad.WriteText (msg + "\n"); foreach (string msg in Warnings) outputPad.WriteText (msg + "\n"); foreach (string msg in Errors) outputPad.WriteText (msg + "\n"); outputPad.EndProgress (); base.OnCompleted (); Runtime.TaskService.ReleasePad (outputPad); outputPad = null; }