public TyeExplorerToolWindow() : base(null) { Caption = "Tye Explorer"; // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable, // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on // the object returned by the Content property. Content = _control = new TyeExplorerToolWindowControl(); ToolBar = new CommandID(PackageGuids.guidTyeExplorerCommandsAndMenus, PackageIds.TyeExplorer_Toolbar); _control.AttachToReplica += OnAttachToReplica; _control.AttachToService += OnAttachToService; _control.SelectedItemChanged += OnSelectedItemChanged; _control.ShowServiceLogs += OnShowServiceLogs; var servicesProvider = TyeExplorerServices.Get <TyeServicesProvider>(); servicesProvider.ServicesRequestStarted += OnServicesRequestStarted; servicesProvider.ServicesReceived += OnServicesReceived; servicesProvider.ServiceRequestFailure += ServicesProviderOnServiceRequestFailure; var services = servicesProvider.Services; if (services != null) { _control.SetServices(services.ToArray()); } }
private void OnAttachToReplica(object sender, ReplicaEventArgs e) { if (e.Replica.Pid == null) { return; } ThreadHelper.ThrowIfNotOnUIThread(); TyeExplorerServices.Get <DebuggerAttacher>().Attach(e.Replica); }
private void OnShowServiceLogs(object sender, ServiceEventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); TyeExplorerServices.Get <TyeServiceOutputManager>().Attach(e.Service); }
private void OnAttachToService(object sender, ServiceEventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); TyeExplorerServices.Get <DebuggerAttacher>().Attach(e.Service.Replicas.Values); }
private void OnSelectedItemChanged(object sender, ItemEventArgs e) { TyeExplorerServices.Get <TyeServicesProvider>().SelectedService = e.Item; }