protected virtual void UpdateDisplay()
{
_includeBook.Visible = Book !=null;
if (Book != null)
{
_includeBook.Text = String.Format(_includeBook.Text, Book.TitleBestForUserDisplay);
const int maxIncludeBookLabelLength = 40;
if (_includeBook.Text.Length > maxIncludeBookLabelLength)
{
_includeBook.Text = _includeBook.Text.Substring(0, maxIncludeBookLabelLength);
}
}
if (!string.IsNullOrWhiteSpace(_email.Text.Trim()))
{
_email.ForeColor = IsLegalEmail(_email.Text) ? Color.Black : Color.Red;
}
_submitButton.Enabled = !string.IsNullOrWhiteSpace(_name.Text.Trim()) && !string.IsNullOrWhiteSpace(_email.Text.Trim()) && IsLegalEmail(_email.Text) &&
!string.IsNullOrWhiteSpace(_description.Text.Trim());
_screenshotHolder.Visible = _includeScreenshot.Checked;
switch (_state)
{
case State.WaitingForSubmission:
_status.Visible = false;
_submitMsg.Visible = false;
_seeDetails.Visible = true;
Cursor = Cursors.Default;
break;
case State.UploadingBook:
_seeDetails.Visible = false;
_submitMsg.Visible = false;
_status.Visible = true;
_status.HTML = LocalizationManager.GetString("ReportProblemDialog.Zipping", "Uploading book...",
"This is shown while Bloom is creating the problem report. It's generally too fast to see, unless you include a large book.");
_submitButton.Enabled = false;
Cursor = Cursors.WaitCursor;
break;
case State.Submitting:
_seeDetails.Visible = false;
_status.Visible = false;
_submitMsg.Visible = true;
_submitButton.Enabled = false;
Cursor = Cursors.WaitCursor;
break;
case State.CouldNotAutomaticallySubmit:
_seeDetails.Visible = false;
_submitMsg.Visible = false;
_status.Visible = true;
var message = LocalizationManager.GetString("ReportProblemDialog.CouldNotSendToServer",
"Bloom was not able to submit your report directly to our server. Please retry or email {0} to {1}.");
var zipFileName = Path.GetFileName(_emailableReportFilePath);
var zipFileLinkHtml = "<a class='showFileLocation' href='file://" + _emailableReportFilePath + "'>" +zipFileName + "</a>";
const string mailToLinkHtml = "<a href='mailto:[email protected]?subject=Problem Report'>[email protected]</a>";
_status.HTML = string.Format("<span style='color:red'>" + message + "</span>", zipFileLinkHtml, mailToLinkHtml);
_submitButton.Text = LocalizationManager.GetString("ReportProblemDialog.Retry", "Retry",
"Shown if there was an error submitting the report. Lets the user try submitting it again.");
Cursor = Cursors.Default;
break;
case State.Success:
_seeDetails.Visible = false;
_submitMsg.Visible = false;
_status.Visible = true;
_submitButton.Enabled = true;
_submitButton.Text = LocalizationManager.GetString("ReportProblemDialog.Close", "Close", "Shown in the button that closes the dialog after a successful report submission.");
message = LocalizationManager.GetString("ReportProblemDialog.Success",
"We received your report, thanks for taking the time to help make Bloom better!");
this.AcceptButton = _submitButton;
_submitButton.Focus();
_status.HTML = "<span style='color:red'>"+_shortErrorHtml + "</span>" + string.Format("<span style='color:blue'>" + message + "</span><br/><a href='{0}'>{1}</a>", YouTrackUrl + "/youtrack/issue/" + _youTrackIssueId, _youTrackIssueId);
Cursor = Cursors.Default;
break;
default:
throw new ArgumentOutOfRangeException();
}
_privacyLabel.Visible = _seeDetails.Visible;
}