MarkupDocument doc = item.getModelObject();
String file = StringUtils.getLastPathElement(doc.documentPath);
file = StringUtils.stripFileExtension(file);
String name = file.replace('_', ' ').replace('-', ' ');
ExternalLink link = new ExternalLink("link", "#" + file);
link.add(new Label("label", name.toUpperCase()).setRenderBodyOnly(true));
item.add(link);
if (counter == 0) {
counter++;
item.add(new SimpleAttributeModifier("class", "active"));
}
}
};
fragment.add(tabTitles);
// tab content
DataView<MarkupDocument> tabsView = new DataView<MarkupDocument>("tabContent", docDp) {
private static final long serialVersionUID = 1L;
int counter;
@Override
public void populateItem(final Item<MarkupDocument> item) {
MarkupDocument doc = item.getModelObject();
// document page links
item.add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,
WicketUtils.newPathParameter(repositoryName, commitId, doc.documentPath)));
item.add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,
WicketUtils.newPathParameter(repositoryName, commitId, doc.documentPath)));
String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, commitId, doc.documentPath);
item.add(new ExternalLink("rawLink", rawUrl));
// document content
String file = StringUtils.getLastPathElement(doc.documentPath);
file = StringUtils.stripFileExtension(file);
Component content = new Label("content", doc.html)
.setEscapeModelStrings(false);
if (!MarkupSyntax.PLAIN.equals(doc.syntax)) {
content.add(new SimpleAttributeModifier("class", "markdown"));
}
item.add(content);
item.add(new SimpleAttributeModifier("id", file));
if (counter == 0) {
counter++;
item.add(new SimpleAttributeModifier("class", "tab-pane active"));
}
}
};
fragment.add(tabsView);
}
// document list
final ByteFormat byteFormat = new ByteFormat();
Fragment docs = new Fragment("documents", "documentsFragment", this);
ListDataProvider<PathModel> pathsDp = new ListDataProvider<PathModel>(paths);
DataView<PathModel> pathsView = new DataView<PathModel>("document", pathsDp) {
private static final long serialVersionUID = 1L;
int counter;
@Override
public void populateItem(final Item<PathModel> item) {
PathModel entry = item.getModelObject();
item.add(WicketUtils.newImage("docIcon", "file_world_16x16.png"));
item.add(new Label("docSize", byteFormat.format(entry.size)));
item.add(new LinkPanel("docName", "list", StringUtils.stripFileExtension(entry.name),
DocPage.class, WicketUtils.newPathParameter(repositoryName, commitId, entry.path)));
// links
item.add(new BookmarkablePageLink<Void>("view", DocPage.class, WicketUtils
.newPathParameter(repositoryName, commitId, entry.path)));
String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, commitId, entry.path);
item.add(new ExternalLink("raw", rawUrl));
item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class, WicketUtils
.newPathParameter(repositoryName, commitId, entry.path)));
item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils
.newPathParameter(repositoryName, commitId, entry.path)));
WicketUtils.setAlternatingBackground(item, counter);