private void addComment(JiraIssue issue)
        {
            SmartJiraServerFacade facade = SmartJiraServerFacade.Instance;
            NewIssueComment       dlg    = new NewIssueComment(issue, facade);

            dlg.ShowDialog();
            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            Thread addCommentThread =
                PlvsUtils.createThread(delegate {
                try {
                    jiraStatus.setInfo("Adding comment to issue...");
                    facade.addComment(issue, dlg.CommentBody);
                    issue = facade.getIssue(issue.Server, issue.Key);
                    jiraStatus.setInfo("Comment added");
                    UsageCollector.Instance.bumpJiraIssuesOpen();
                    container.safeInvoke(new MethodInvoker(() => JiraIssueListModelImpl.Instance.updateIssue(issue)));
                } catch (Exception ex) {
                    jiraStatus.setError("Adding comment failed", ex);
                }
            });

            addCommentThread.Start();
        }
        private void buttonAddComment_Click(object sender, EventArgs e)
        {
            NewIssueComment dlg = new NewIssueComment();

            dlg.ShowDialog();
            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            Thread addCommentThread = new Thread(new ThreadStart(delegate
            {
                try
                {
                    status.setInfo("Adding comment to issue...");
                    facade.addComment(issue, dlg.CommentBody);
                    status.setInfo("Comment added, refreshing view...");
                    runRefreshThread();
                }
                catch (Exception ex)
                {
                    status.setError("Adding comment failed", ex);
                }
            }));

            addCommentThread.Start();
        }