package net.i2p.router.web;
import java.io.IOException;
public class ProfilesHelper extends HelperBase {
private int _full;
private boolean _graphical;
private static final String titles[] =
{_x("High Capacity"), // 0
_x("Floodfill "), // 1
_x("Banned"), // 2
_x("All"), }; // 3
private static final String links[] =
{"", // 0
"?f=2", // 1
"?f=3", // 2
"?f=1" }; // 3
public void setFull(String f) {
if (f != null) {
try {
_full = Integer.parseInt(f);
if (_full < 0 || _full > 3)
_full = 0;
} catch (NumberFormatException nfe) {}
}
}
/**
* call for non-text-mode browsers
* @since 0.9.1
*/
public void allowGraphical() {
_graphical = true;
}
/**
* @return empty string, writes directly to _out
* @since 0.9.1
*/
public String getSummary() {
try {
renderNavBar();
} catch (IOException ioe) {}
if (_full == 3)
getBanlistSummary();
else
getProfileSummary();
return "";
}
/** @return empty string, writes directly to _out */
public String getProfileSummary() {
try {
ProfileOrganizerRenderer rend = new ProfileOrganizerRenderer(_context.profileOrganizer(), _context);
rend.renderStatusHTML(_out, _full);
} catch (IOException ioe) {
ioe.printStackTrace();
}
return "";
}
/** @return empty string, writes directly to _out */
public String getBanlistSummary() {
try {
BanlistRenderer rend = new BanlistRenderer(_context);
rend.renderStatusHTML(_out);
} catch (IOException ioe) {
ioe.printStackTrace();
}
return "";
}
/**
* @since 0.9.1
*/
private int getTab() {
if (_full == 2)
return 1;
if (_full == 3)
return 2;
if (_full == 1)
return 3;
return 0;
}
/**
* @since 0.9.1
*/
private void renderNavBar() throws IOException {
StringBuilder buf = new StringBuilder(1024);
buf.append("<div class=\"confignav\" id=\"confignav\">");
// TODO fix up the non-light themes
String theme = _context.getProperty(CSSHelper.PROP_THEME_NAME);
boolean span = _graphical && (theme == null || theme.equals(CSSHelper.DEFAULT_THEME));
if (!span)
buf.append("<center>");
int tab = getTab();
for (int i = 0; i < titles.length; i++) {
if (i == tab) {
// we are there
if (span)
buf.append("<span class=\"tab2\">");
buf.append(_t(titles[i]));
} else {
// we are not there, make a link
if (span)
buf.append("<span class=\"tab\">");
buf.append("<a href=\"profiles").append(links[i]).append("\">").append(_t(titles[i])).append("</a>");
}
if (span)
buf.append(" </span>\n");
else if (i != titles.length - 1)
buf.append(" |\n");
}
if (!span)
buf.append("</center>");
buf.append("</div>");
_out.write(buf.toString());
}
}