private Multimap<String, Review> buildReviewMap(PropertyFileDescriptor object) { EList<Review> reviews = object.getReviews(); Multimap<String, Review> reviewMap = ArrayListMultimap.create(reviews.size(), 2); for (Review review : reviews) { if(review.getState()==ReviewState.OPEN || review.getState()==ReviewState.REOPENED) reviewMap.put(review.getKey(), review); } return reviewMap; }
private List<IModel<Review>> computeMatchingReviews(PropertyFileDescriptor descriptor) { ArrayList<IModel<Review>> matchingReviews = new ArrayList<IModel<Review>>(); if (descriptor != null) { EList<Review> reviews = descriptor.getReviews(); for (Review review : reviews) { if (review.getKey().equals(getModel().getObject().getKey()) && (review.getState()==ReviewState.OPEN) || (review.getState()==ReviewState.REOPENED)) matchingReviews.add(new EObjectModel<Review>(review)); } } return matchingReviews; }
/** * computes the width of the two stacked progress bars * @param resolvable * @return */ protected Triplet computeProgressBars(Resolvable<?, ?> resolvable) { int greenWidth = resolvable.getPercentComplete(); int yellowWidth = 0; if (resolvable instanceof PropertyFileDescriptor) { PropertyFileDescriptor descriptor = (PropertyFileDescriptor) resolvable; int keys = descriptor.getMaster() == null ? descriptor.getKeys() : descriptor.getMaster().getKeys(); if(keys>0) { EList<Review> reviews = descriptor.getReviews(); int activeReviews = 0; for (Review review : reviews) { if(review.getState()==ReviewState.OPEN || review.getState()==ReviewState.REOPENED) activeReviews++; } yellowWidth = (int) (activeReviews*100/(double)keys); greenWidth -= yellowWidth; } } return new Triplet(greenWidth, yellowWidth); }
protected void fillReviewsColumn(IModel<PropertyPair> propertyPair, MarkupContainer container) { RepeatingView view = new RepeatingView("reviews"); container.add(view); if (propertyPair == null || propertyPair.getObject() == null) return; Collection<Review> reviews = reviewModel.getObject().get(propertyPair.getObject().getKey()); DateFormat formatter = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT, getSession().getLocale()); for (Review review : reviews) { if (review.getState() == ReviewState.INVALID || review.getState() == ReviewState.RESOLVED) continue; Label label = new Label(view.newChildId(), review.getReviewType()); label.add(new AttributeAppender("class", getLabelClass(review))); if(editKind==EditKind.EDIT && Review.KIND_SUGGESTION.equals(review.getReviewType())) { //allow the label to be clicked to apply the suggestion label.add(new AttributeAppender("data-suggestion", review.getMessage())); } StringBuilder title = new StringBuilder(); if (review.getMessage() != null) title.append(review.getMessage()); if (review.getCreated() > 0) { if (title.length() > 0) // add a linebreak title.append("\n"); title.append(formatter.format(new Date(review.getCreated()))); } if (title.length() > 0) label.add(new AttributeModifier("title", title.toString())); view.add(label); } }
Collection<Review> reviews = reviewMap.get(translation.getKey()); for (Review review : reviews) { if (review.getState() == ReviewState.OPEN && Review.KIND_SUGGESTION.equals(review.getReviewType())) { if (translation.getValue().equals(review.getMessage())) { try {