Added support for activating/inactivating clickable links in Latest reviewers panel.

This commit is contained in:
Emil Siverhall 2011-07-14 16:19:24 +02:00
parent 70145e8f5f
commit feda3bb985
2 changed files with 45 additions and 3 deletions
src/main/java/se/su/dsv/scipro/peer/panels

@ -9,7 +9,7 @@
<td wicket:id="reviewer"></td>
</tr>
<tr>
<td>Review date: <span wicket:id="reviewDate"></span></td>
<td><a href="#" wicket:id="reviewLink">Review date: <span wicket:id="reviewDate"></span></a></td>
</tr>
</tbody>
</table>

@ -4,9 +4,13 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
@ -16,6 +20,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.peer.data.dao.interfaces.PeerReviewDao;
import se.su.dsv.scipro.peer.data.dataobjects.PeerReview;
import se.su.dsv.scipro.peer.pages.ProjectPeerReviewPage;
public class LatestReviewPanel extends Panel {
@ -34,6 +39,9 @@ public class LatestReviewPanel extends Panel {
super(id, model);
setOutputMarkupId(true);
//Test boolean
final boolean reviewsArePublicViewable = false;
final int totalCount = peerReviewDao.countSubmittedReviews();
@ -52,9 +60,21 @@ public class LatestReviewPanel extends Panel {
@Override
protected void populateItem(ListItem<PeerReview> item) {
PeerReview pr = item.getModelObject();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
item.add(pr.getReviewer().getUser().getDisplayComponent("reviewer"));
item.add(new Label("reviewDate", df.format(pr.getLastModified())));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Label dateLabel = new Label("reviewDate", df.format(pr.getLastModified()));
if(reviewsArePublicViewable) {
PageParameters pp = new PageParameters();
pp.put(PeerReview.PP_PEER_REVIEW_ID, pr.getId());
BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>("reviewLink", ProjectPeerReviewPage.class, pp);
link.add(dateLabel);
item.add(link);
} else {
LinkToSpanContainer ltsc = new LinkToSpanContainer("reviewLink");
ltsc.add(dateLabel);
item.add(ltsc);
}
add(item);
}
};
@ -92,5 +112,27 @@ public class LatestReviewPanel extends Panel {
public LatestReviewPanel(String id) {
this(id, new Model<Integer>(3));
}
/*
* Change html markup from a href to span when links are disabled.
* Used when publicly viewable peer reviews is activated/inactivated.
*/
class LinkToSpanContainer extends WebMarkupContainer {
private static final long serialVersionUID = 1L;
public LinkToSpanContainer(String id) {
super(id);
}
@Override
protected final void onComponentTag(final ComponentTag tag) {
tag.setName("span");
tag.remove("href");
super.onComponentTag(tag);
}
}
}