private void LoadHealthCheckOverviewDialog()
 {
     healthCheckOverviewDialog = new HealthCheckOverviewDialog();
 }
        private void LaunchIfRequired(bool nag, IEnumerable<IXenObject> selectedObjects)
        {
            lock (healthCheckLock)
            {
                if (!healthCheckOverviewVisible)
                {
                    LoadHealthCheckOverviewDialog();
                    if (nag && TimeSinceLastClose < TimeSpan.FromSeconds(10))
                    {
                        // this nag was less than 10 seconds since we closed this dialog. Don't re-show.
                        return;
                    }

                    if (nag && ModalDialogVisible)
                    {
                        // if the add-server dialog is visible, then don't nag with the health check dialog as it
                        // will appear above it.
                        return;
                    }
                    healthCheckOverviewVisible = true;
                    log.Info("Health Check Overview not showing. Show it now.");

                    try
                    {
                        LaunchDialog(selectedObjects);
                    }
                    finally
                    {
                        healthCheckOverviewVisible = false;
                        LastCloseTime = ReferenceTime;
                        if(healthCheckOverviewDialog != null)
                        {
                            healthCheckOverviewDialog.Dispose();
                            healthCheckOverviewDialog = null;
                        }
                    }
                }
                else
                {
                    RefreshDialog(selectedObjects);
                }
            }
        }