diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java index cabb68f156..37ca94cd66 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NavHelper.java @@ -1,14 +1,13 @@ package net.i2p.router.web; -import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import net.i2p.I2PAppContext; -public class NavHelper extends HelperBase { - private static Map _apps = new HashMap(); - - public NavHelper() {} +public class NavHelper { + private static Map _apps = new ConcurrentHashMap(); /** * To register a new client application so that it shows up on the router @@ -25,13 +24,17 @@ public class NavHelper extends HelperBase { _apps.remove(name); } - public String getClientAppLinks() { + /** + * Fixme, this translates with the router console bundle, not + * the plugin bundle + */ + public static String getClientAppLinks(I2PAppContext ctx) { StringBuilder buf = new StringBuilder(1024); - for (Iterator iter = _apps.keySet().iterator(); iter.hasNext(); ) { - String name = (String)iter.next(); - String path = (String)_apps.get(name); - buf.append(""); - buf.append(name).append(" |"); + for (Iterator iter = _apps.keySet().iterator(); iter.hasNext(); ) { + String name = iter.next(); + String path = _apps.get(name); + buf.append(" "); + buf.append(Messages.getString(name, ctx)).append(""); } return buf.toString(); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java index 3d11191a97..99562789ab 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java @@ -131,6 +131,15 @@ public class PluginStarter implements Runnable { // add themes in console/themes // add summary bar link + File pluginConfig = new File(pluginDir, "plugin.config"); + if (pluginConfig.exists()) { + Properties props = new Properties(); + DataHelper.loadProps(props, pluginConfig); + String name = props.getProperty("consoleLinkName"); + String url = props.getProperty("consoleLinkURL"); + if (name != null && url != null && name.length() > 0 && url.length() > 0) + NavHelper.registerApp(name, url); + } return true; } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java index 7dd28c0efa..153ef06301 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -70,7 +70,11 @@ public class SummaryBarRenderer { .append(_("Anonymous resident webserver")) .append("\">") .append(_("Webserver")) - .append("\n" + + .append("") + + .append(NavHelper.getClientAppLinks(_context)) + + .append("\n" + "