You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2008/03/07 17:16:28 UTC
svn commit: r634727 - in /commons/sandbox/monitoring/trunk/src/main:
java/org/apache/commons/monitoring/reporting/
java/org/apache/commons/monitoring/reporting/web/ resources/
Author: nicolas
Date: Fri Mar 7 08:16:25 2008
New Revision: 634727
URL: http://svn.apache.org/viewvc?rev=634727&view=rev
Log:
fix sorting in Web UI broken by locale-dependent number formats
Modified:
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java
commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.css
commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.js
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java Fri Mar 7 08:16:25 2008
@@ -18,8 +18,6 @@
package org.apache.commons.monitoring.reporting;
import java.io.PrintWriter;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
@@ -189,7 +187,8 @@
l = l / unit.getScale();
}
}
- writer.append( NumberFormat.getInstance( options.getLocale() ).format( l ) );
+
+ writer.append( options.getNumberFormat().format( l ) );
}
private void renderInternal( PrintWriter writer, StatValue value, String attribute, double d, Options options,
@@ -208,6 +207,7 @@
d = d / unit.getScale();
}
}
- writer.append( DecimalFormat.getNumberInstance( options.getLocale() ).format( d ) );
+
+ writer.append( options.getDecimalFormat().format( d ) );
}
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java Fri Mar 7 08:16:25 2008
@@ -137,7 +137,7 @@
}
}
- private void writeColumnHead( PrintWriter writer, Options options, StatValue value, String attribute )
+ protected void writeColumnHead( PrintWriter writer, Options options, StatValue value, String attribute )
{
if ( options.render( value, attribute ) )
{
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java Fri Mar 7 08:16:25 2008
@@ -17,7 +17,9 @@
package org.apache.commons.monitoring.reporting;
-import java.util.Locale;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.text.NumberFormat;
import org.apache.commons.monitoring.StatValue;
import org.apache.commons.monitoring.Unit;
@@ -40,13 +42,23 @@
return true;
}
- public Locale getLocale()
- {
- return Locale.US;
- }
public Unit unitFor( StatValue value )
{
return value.getUnit();
}
+
+ public NumberFormat getDecimalFormat()
+ {
+ // Force JS compatible format
+ DecimalFormatSymbols symbols = new DecimalFormatSymbols();
+ symbols.setDecimalSeparator( '.' );
+ return new DecimalFormat( "0.00", symbols );
+ }
+
+ public NumberFormat getNumberFormat()
+ {
+ return new DecimalFormat( "0" );
+ }
+
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java Fri Mar 7 08:16:25 2008
@@ -18,9 +18,9 @@
package org.apache.commons.monitoring.reporting;
import java.io.PrintWriter;
+import java.text.NumberFormat;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Locale;
import org.apache.commons.monitoring.Monitor;
import org.apache.commons.monitoring.StatValue;
@@ -47,6 +47,8 @@
Unit unitFor( StatValue value );
- Locale getLocale();
+ NumberFormat getNumberFormat();
+
+ NumberFormat getDecimalFormat();
}
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java Fri Mar 7 08:16:25 2008
@@ -23,7 +23,6 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
@@ -136,74 +135,7 @@
*/
protected Options getOptions( final HttpServletRequest request )
{
- return new OptionsSupport()
- {
- private List<String> roles;
-
- private List<String> categories;
-
- private List<String> subsystems;
-
- private Locale locale;
-
- {
- String[] values = request.getParameterValues( "role" );
- roles = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
- values = request.getParameterValues( "category" );
- categories = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
- values = request.getParameterValues( "subsystem" );
- subsystems = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
- locale = request.getLocale();
- }
-
- public Locale getLocale()
- {
- return locale;
- }
-
- public boolean render( Object object )
- {
- if ( object instanceof StatValue )
- {
- return roles.isEmpty() || roles.contains( ( (StatValue) object ).getRole() );
- }
- if ( object instanceof Monitor )
- {
- Key key = ( (Monitor) object ).getKey();
- return ( categories.isEmpty() || categories.contains( key.getCategory() ) )
- && ( subsystems.isEmpty() || subsystems.contains( key.getSubsystem() ) );
- }
- return true;
- }
-
- public boolean render( StatValue value, String attribute )
- {
- String hide = request.getParameter( value.getRole() + "." + attribute );
- if (hide != null)
- {
- return Boolean.parseBoolean( hide );
- }
- return true;
- }
-
- public Unit unitFor( StatValue value )
- {
- String unitName = request.getParameter( value.getRole() + ".unit" );
- if ( unitName != null )
- {
- if ( value.getUnit() != null )
- {
- Unit unit = value.getUnit().getDerived( unitName );
- if ( unit != null )
- {
- return unit;
- }
- }
- }
- return value.getUnit();
- }
-
- };
+ return new HttpSerlvetRequestOptions( request );
}
protected List<String> getAcceptedMimeTypes( HttpServletRequest request )
@@ -233,6 +165,74 @@
mimeTypes.add( 0, "text/html" );
}
return mimeTypes;
+ }
+
+ protected class HttpSerlvetRequestOptions
+ extends OptionsSupport
+ {
+ protected final HttpServletRequest request;
+
+ protected List<String> roles;
+
+ protected List<String> categories;
+
+ protected List<String> subsystems;
+
+ /**
+ * @param request
+ */
+ public HttpSerlvetRequestOptions( HttpServletRequest request )
+ {
+ this.request = request;
+ String[] values = request.getParameterValues( "role" );
+ roles = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
+ values = request.getParameterValues( "category" );
+ categories = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
+ values = request.getParameterValues( "subsystem" );
+ subsystems = values != null ? Arrays.asList( values ) : Collections.<String> emptyList();
+ }
+
+ public boolean render( Object object )
+ {
+ if ( object instanceof StatValue )
+ {
+ return roles.isEmpty() || roles.contains( ( (StatValue) object ).getRole() );
+ }
+ if ( object instanceof Monitor )
+ {
+ Key key = ( (Monitor) object ).getKey();
+ return ( categories.isEmpty() || categories.contains( key.getCategory() ) )
+ && ( subsystems.isEmpty() || subsystems.contains( key.getSubsystem() ) );
+ }
+ return true;
+ }
+
+ public boolean render( StatValue value, String attribute )
+ {
+ String hide = request.getParameter( value.getRole() + "." + attribute );
+ if (hide != null)
+ {
+ return Boolean.parseBoolean( hide );
+ }
+ return true;
+ }
+
+ public Unit unitFor( StatValue value )
+ {
+ String unitName = request.getParameter( value.getRole() + ".unit" );
+ if ( unitName != null )
+ {
+ if ( value.getUnit() != null )
+ {
+ Unit unit = value.getUnit().getDerived( unitName );
+ if ( unit != null )
+ {
+ return unit;
+ }
+ }
+ }
+ return value.getUnit();
+ }
}
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java Fri Mar 7 08:16:25 2008
@@ -41,7 +41,8 @@
/** The JavaScripts to include to support user interaction */
private String[] scripts =
- new String[] { "jquery-1.2.3.pack.js", "jquery.tablesorter.pack.js", "commons-monitoring.js" };
+ new String[] { "jquery-1.2.3.pack.js",
+ "jquery.tablesorter.pack.js", "commons-monitoring.js" };
public NiceHtmlRenderer( String contextPath )
{
Modified: commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.css
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.css?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.css (original)
+++ commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.css Fri Mar 7 08:16:25 2008
@@ -75,4 +75,12 @@
cursor: pointer;
border: solid 1px #8dbdd8;
font-size: 0.8em;
+}
+
+tbody tr td:first-child {
+ text-align: left;
+}
+
+tbody tr td {
+ text-align: right;
}
Modified: commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.js
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.js?rev=634727&r1=634726&r2=634727&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.js (original)
+++ commons/sandbox/monitoring/trunk/src/main/resources/commons-monitoring.js Fri Mar 7 08:16:25 2008
@@ -15,15 +15,13 @@
* limitations under the License.
*/
+var myTextExtraction = function(node)
+{
+ return node.childNodes[0].childNodes[0].innerHTML;
+}
+
+
$(document).ready(function()
{
- $("#monitoring").tablesorter( { widgets: ['zebra'] } );
- // TODO add a select unit feature, as ns are far too precise in many cases
- /* $("#monitoring thead td .unit").each( function()
- {
- if ($(this).text() === "ns")
- {
- $(this).html( "<select><option>ns</option><option>µs</option><option>ms</option><option>s</option></select>" );
- }
- } ); */
+ $("#monitoring").tablesorter( { widgets: ['zebra'], sortForce: 1 } );
} );