return sb.toString();
}
private StringOutput addItemLink(Renderer r, URLBuilder ubu ,Formatter formatter, ItemContext itc, int sectionPos, int itemPos,
boolean clickable, boolean active, boolean info) {
StringOutput sb = new StringOutput();
String title = itc.getEl_item().attributeValue("title", "no title");
String titleShort = Formatter.truncate(title, 27);
long maxdur = itc.getDurationLimit();
long start = itc.getTimeOfStart();
long due = start + maxdur;
boolean started = (start != -1);
boolean timelimit = (maxdur != -1);
String fdue = (started && timelimit ? formatter.formatTimeShort(new Date(due)) : null);
sb.append("<div class=\"o_qti_menu_item\">");
if (clickable) {
sb.append("<a onclick=\"return o2cl()\" href=\"");
ubu.buildURI(sb, new String[] { VelocityContainer.COMMAND_ID }, new String[] { "git" });
sb.append("?itid=" + itemPos + "&seid=" + sectionPos);
sb.append("\" title=\"" + StringEscapeUtils.escapeHtml(title) + "\">");
}
sb.append("<b>" + (sectionPos + 1) + "." + (itemPos + 1) + ".</b> ");
if (active) {
sb.append("<strong>" + titleShort + "</strong>");
} else {
sb.append(titleShort);
}
if (clickable) {
sb.append("</a>");
}
sb.append("</div>");
if (!itc.isOpen()) {
// add lock image
sb.append("<div class=\"b_small_icon o_qti_closed_icon\" title=\"Closed\" ></div>");
} else if (info) {
// max duration info
if (maxdur != -1) {
sb.append("<div class=\"b_small_icon o_qti_timelimit_icon\" title=\"");
if (!itc.isStarted()) {
sb.append(StringEscapeUtils.escapeHtml(r.getTranslator().translate("timelimit.initial", new String[] {getFormattedLimit(maxdur)})));
} else {
sb.append(StringEscapeUtils.escapeHtml(r.getTranslator().translate("timelimit.running", new String[] {fdue})));
}
sb.append("\" ></div>");
}
// attempts info
int maxa = itc.getMaxAttempts();
int attempts = itc.getTimesAnswered();
if (maxa != -1) { // only limited times of answers
sb.append("<div class=\"b_small_icon o_qti_attemptslimit_icon\" title=\"");
sb.append(StringEscapeUtils.escapeHtml(r.getTranslator().translate("attemptsleft", new String[] {"" + (maxa - attempts)})));
sb.append("\" ></div>");
}
}
return sb;
}