From d479c4ae7d5bc2a7a6d2e7186d8101568670fccd Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 2 Nov 2012 16:00:41 +0000 Subject: [PATCH] * configstats: Fix group sorting, translate groups --- .../net/i2p/router/web/ConfigStatsHelper.java | 30 ++++++++++++++----- apps/routerconsole/jsp/configstats.jsp | 2 +- 2 files changed, 24 insertions(+), 8 deletions(-) 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 61d4969330..b890f1bc66 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<String> _filters; /** list of names of stats which are remaining, ordered by nested groups */ - private List _stats; + private List<String> _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<String, SortedSet<String>> unsorted = _context.statManager().getStatsByGroup(); + Map<String, Set<String>> groups = new TreeMap(new AlphaComparator()); + groups.putAll(unsorted); + for (Set<String> 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<String> { + 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 d6bd67c1e5..c57479b46e 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.<br> while (statshelper.groupRequired()) { %> <tr class="tablefooter"> <td align="left" colspan="3" id=<%=statshelper.getCurrentGroupName()%>> - <b><%=statshelper.getCurrentGroupName()%></b> + <b><%=intl._(statshelper.getCurrentGroupName())%></b> (<a href="javascript:void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')"><%=intl._("toggle all")%></a>) </td></tr> <tr class="tablefooter"> -- GitLab