package net.i2p.router.web; import java.util.Iterator; import java.util.List; import java.util.Properties; import java.util.Set; import java.util.TreeSet; import net.i2p.router.RouterContext; import net.i2p.router.startup.ClientAppConfig; public class ConfigClientsHelper extends HelperBase { public ConfigClientsHelper() {} public String getForm1() { StringBuilder buf = new StringBuilder(1024); buf.append("\n"); buf.append("\n"); List clients = ClientAppConfig.getClientApps(_context); for (int cur = 0; cur < clients.size(); cur++) { ClientAppConfig ca = (ClientAppConfig) clients.get(cur); renderForm(buf, ""+cur, ca.clientName, false, !ca.disabled, "webConsole".equals(ca.clientName), ca.className + ((ca.args != null) ? " " + ca.args : "")); } buf.append("
ClientRun at Startup?Start NowClass and arguments
\n"); return buf.toString(); } public String getForm2() { StringBuilder buf = new StringBuilder(1024); buf.append("\n"); buf.append("\n"); Properties props = RouterConsoleRunner.webAppProperties(); Set keys = new TreeSet(props.keySet()); for (Iterator iter = keys.iterator(); iter.hasNext(); ) { String name = (String)iter.next(); if (name.startsWith(RouterConsoleRunner.PREFIX) && name.endsWith(RouterConsoleRunner.ENABLED)) { String app = name.substring(RouterConsoleRunner.PREFIX.length(), name.lastIndexOf(RouterConsoleRunner.ENABLED)); String val = props.getProperty(name); renderForm(buf, app, app, !"addressbook".equals(app), "true".equals(val), RouterConsoleRunner.ROUTERCONSOLE.equals(app), app + ".war"); } } buf.append("
WebAppRun at Startup?Start NowDescription
\n"); return buf.toString(); } private void renderForm(StringBuilder buf, String index, String name, boolean urlify, boolean enabled, boolean ro, String desc) { buf.append(""); if (urlify && enabled) { String link = "/"; if (! RouterConsoleRunner.ROUTERCONSOLE.equals(name)) link += name + "/"; buf.append("").append(name).append(""); } else { buf.append(name); } buf.append(" "); if (!enabled) { buf.append(""); } buf.append(" ").append(desc).append("\n"); } }