cloudReportPane.setText("");
titleLabel.setText("<html>Reviews");
return;
}
updateHeader();
final Cloud cloud = _bugCollection.getCloud();
final CloudPlugin plugin = cloud.getPlugin();
String details = plugin.getDetails();
cloudDetailsLabel.setText(details);
if (bugs.isEmpty()) {
setCanAddComments(false, false);
return;
}
String report;
long lastSaved = -1;
if (bugs.size() > 1) {
int totalReviews = 0;
int bugsWithReviews = 0;
for (BugInstance bug : bugs) {
long newTs = cloud.getUserTimestamp(bug);
if (bug.hasSomeUserAnnotation() && newTs > 0 && (lastSaved == -1 || lastSaved < newTs)) {
lastSaved = newTs;
}
int reviewers = cloud.getNumberReviewers(bug);
if (reviewers > 0) {
bugsWithReviews++;
}
totalReviews += reviewers;
}
report = bugs.size() + " bug" + (bugs.size() == 1 ? "" : "s") + " selected\n";
report += bugsWithReviews + " reviewed bug" + (bugsWithReviews == 1 ? "" : "s")
+ " / " + totalReviews + " total review" + (totalReviews == 1 ? "" : "s");
} else {
BugInstance bug = bugs.get(0);
if (bug.hasSomeUserAnnotation()) {
lastSaved = bug.getUserTimestamp();
}
report = cloud.getCloudReportWithoutMe(bug);
}
setLastSaved(lastSaved);
cloudReportPane.setText(report);
CommentInfo commentInfo = new CommentInfo().invoke();
boolean sameText = commentInfo.isSameText();
String txt = commentInfo.getTxt();
CardLayout cl = (CardLayout) (cards.getLayout());
HashSet<BugInstance> newBugSet = new HashSet<BugInstance>(bugs);
boolean sameBugs = newBugSet.equals(lastBugsEdited);
if (!sameBugs) {
lastBugsEdited = newBugSet;
clickedBulkReview = false;
}
if (!inCloud(bugs)) {
cl.show(cards, "NOT_IN_CLOUD");
} else if (bugs.size() > 1 && !clickedBulkReview) {
warningLabel.setText("<HTML>" + bugs.size() + " bugs are selected.<BR>Click to review them all at once.");
cl.show(cards, "WARNING");
} else {
cl.show(cards, "COMMENTS");
}
if (!sameText) {
txt = MessageFormat.format(MSG_OVERWRITE_REVIEW, bugs.size());
setDefaultComment(txt);
} else {
if (txt == null || txt.trim().length() == 0) {
txt = bugs.size() > 1 ? MessageFormat.format(MSG_REVIEW_MULTI, bugs.size()) : MSG_REVIEW;
setDefaultComment(txt);
} else {
resetCommentBoxFont();
setCommentText(txt);
}
}
setCanAddComments(cloud.canStoreUserAnnotation(bugs.get(0)), false);
updateSaveButton();
}