package net.i2p.router.web;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
import net.i2p.data.DataHelper;
import net.i2p.router.RouterContext;
/**
* Refactored from summarynoframe.jsp to save ~100KB
*
*/
public class SummaryBarRenderer {
private final RouterContext _context;
private final SummaryHelper _helper;
public SummaryBarRenderer(RouterContext context, SummaryHelper helper) {
_context = context;
_helper = helper;
}
/**
* Note - ensure all links in here are absolute, as the summary bar may be displayed
* on lower-level directory errors.
*/
public void renderSummaryHTML(Writer out) throws IOException {
StringBuilder buf = new StringBuilder(8*1024);
String theme = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
buf.append(")
\n" +
"")
.append(_("Active"))
.append(": | ");
int active = _helper.getActivePeers();
buf.append(active)
.append(SummaryHelper.THINSP)
.append(Math.max(active, _helper.getActiveProfiles()))
.append(" |
\n" +
"")
.append(_("Fast"))
.append(": | ")
.append(_helper.getFastPeers())
.append(" |
\n" +
"")
.append(_("High capacity"))
.append(": | ")
.append(_helper.getHighCapacityPeers())
.append(" |
\n" +
"")
.append(_("Integrated"))
.append(": | ")
.append(_helper.getWellIntegratedPeers())
.append(" |
\n" +
"")
.append(_("Known"))
.append(": | ")
.append(_helper.getAllPeers())
.append(" |
\n" +
"
\n" +
"")
.append(DataHelper.formatDuration2(3 * 1000)) // lie and say 3 sec since 1 sec would appear as 1000 ms
.append(": | ")
.append(_helper.getSecondKBps())
.append("Bps |
\n");
if (_context.router().getUptime() > 6*60*1000) {
buf.append("")
.append(DataHelper.formatDuration2(5 * 60 * 1000)) // 5 min
.append(": | ")
.append(_helper.getFiveMinuteKBps())
.append("Bps |
\n");
}
if (_context.router().getUptime() > 2*60*1000) {
buf.append("")
.append(_("Total"))
.append(": | ")
.append(_helper.getLifetimeKBps())
.append("Bps |
\n");
}
buf.append("")
.append(_("Used"))
.append(": | ")
.append(_helper.getInboundTransferred())
.append(SummaryHelper.THINSP)
.append(_helper.getOutboundTransferred())
.append(" |
\n" +
"\n" +
"")
.append(_("Exploratory"))
.append(": | ")
.append(_helper.getInboundTunnels() + _helper.getOutboundTunnels())
.append(" |
\n" +
"")
.append(_("Client"))
.append(": | ")
.append(_helper.getInboundClientTunnels() + _helper.getOutboundClientTunnels())
.append(" |
\n" +
"")
.append(_("Participating"))
.append(": | ")
.append(_helper.getParticipatingTunnels())
.append(" |
\n" +
"")
.append(_("Share ratio"))
.append(": | ")
.append(_helper.getShareRatio())
.append(" |
\n" +
"