diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java index 61d496933..b890f1bc6 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigStatsHelper.java @@ -1,12 +1,16 @@ package net.i2p.router.web; import java.util.ArrayList; +import java.text.Collator; +import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import java.util.StringTokenizer; +import java.util.TreeMap; import net.i2p.stat.FrequencyStat; import net.i2p.stat.Rate; @@ -17,9 +21,9 @@ import net.i2p.util.Log; public class ConfigStatsHelper extends HelperBase { private Log _log; private String _filter; - private Set _filters; + private Set _filters; /** list of names of stats which are remaining, ordered by nested groups */ - private List _stats; + private List _stats; private String _currentStatName; private String _currentGraphName; private String _currentStatDescription; @@ -43,11 +47,11 @@ public class ConfigStatsHelper extends HelperBase { _log = _context.logManager().getLog(ConfigStatsHelper.class); _stats = new ArrayList(); - Map groups = _context.statManager().getStatsByGroup(); - for (Iterator iter = groups.values().iterator(); iter.hasNext(); ) { - Set stats = (Set)iter.next(); - for (Iterator statIter = stats.iterator(); statIter.hasNext(); ) - _stats.add(statIter.next()); + Map> unsorted = _context.statManager().getStatsByGroup(); + Map> groups = new TreeMap(new AlphaComparator()); + groups.putAll(unsorted); + for (Set stats : groups.values()) { + _stats.addAll(stats); } _filter = _context.statManager().getStatFilter(); if (_filter == null) @@ -149,4 +153,16 @@ public class ConfigStatsHelper extends HelperBase { public boolean getIsFull() { return _context.getBooleanProperty(StatManager.PROP_STAT_FULL); } + + /** + * Translated sort + * @since 0.9.4 + */ + private class AlphaComparator implements Comparator { + public int compare(String lhs, String rhs) { + String lname = _(lhs); + String rname = _(rhs); + return Collator.getInstance().compare(lname, rname); + } + } } diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp index d6bd67c1e..c57479b46 100644 --- a/apps/routerconsole/jsp/configstats.jsp +++ b/apps/routerconsole/jsp/configstats.jsp @@ -97,7 +97,7 @@ Warning - Log with care, stat file grows without limit.
while (statshelper.groupRequired()) { %> > - <%=statshelper.getCurrentGroupName()%> + <%=intl._(statshelper.getCurrentGroupName())%> (<%=intl._("toggle all")%>)