diff options
author | Jose <jose@zeroc.com> | 2012-09-28 17:03:20 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-09-28 17:03:20 +0200 |
commit | 5c07bc9f19279bff9ab89354d827d25b9cd3ed2b (patch) | |
tree | d059fad4aa014f1cc1123e3748c34c85e55fe935 /java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java | |
parent | Merge branch 'mx' of ssh://dev.zeroc.com/home/git/ice into mx (diff) | |
download | ice-5c07bc9f19279bff9ab89354d827d25b9cd3ed2b.tar.bz2 ice-5c07bc9f19279bff9ab89354d827d25b9cd3ed2b.tar.xz ice-5c07bc9f19279bff9ab89354d827d25b9cd3ed2b.zip |
updates
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java')
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java | 63 |
1 files changed, 49 insertions, 14 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java index 048a7eb3ae2..bad84855542 100644 --- a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java +++ b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java @@ -71,7 +71,7 @@ import com.jgoodies.forms.layout.CellConstraints; import IceGrid.*; import IceGridGUI.*; -public class MetricsViewEditor extends Editor +public class MetricsViewEditor extends Editor implements MetricsFieldContext { private class RefreshThread extends Thread { @@ -94,7 +94,7 @@ public class MetricsViewEditor extends Editor { try { - wait(_period); + wait(_period * 1000); } catch(InterruptedException ex) { @@ -249,11 +249,16 @@ public class MetricsViewEditor extends Editor } } + public int getRefreshPeriod() + { + return _refreshPeriod; + } + void startRefreshThread() { if(_refreshThread == null) { - _refreshThread = new RefreshThread(5000); + _refreshThread = new RefreshThread(_refreshPeriod); _refreshThread.start(); } } @@ -612,7 +617,7 @@ public class MetricsViewEditor extends Editor catch(NoSuchFieldException ex) { } - MetricsField field = createField(node, prefix + "." + name, entry.getKey(), name, objectField); + MetricsField field = createField(node, prefix + "." + name, entry.getKey(), name, objectField, this); if(field != null) { model.addField(field); @@ -749,9 +754,8 @@ public class MetricsViewEditor extends Editor } } - private static MetricsField createField(MetricsView node, String prefix, - String mapName, String name, - Field objectField) + private static MetricsField createField(MetricsView node, String prefix, String mapName, String name, + Field objectField, MetricsFieldContext context) { String className = _properties.getPropertyWithDefault( prefix + ".fieldClass", @@ -768,6 +772,7 @@ public class MetricsViewEditor extends Editor java.lang.reflect.Constructor<?> ctor = cls.getDeclaredConstructor(MetricsView.class, String.class, String.class, String.class, Field.class); MetricsField field = (MetricsField)ctor.newInstance(node, prefix, mapName, name, objectField); + field.setContext(context); Map<String, String> properties = _properties.getPropertiesForPrefix(prefix); for(Map.Entry<String, String> propEntry : properties.entrySet()) { @@ -1005,6 +1010,10 @@ public class MetricsViewEditor extends Editor // Set up a field identical to this but without the transient data. // public MetricsField createField(); + + public MetricsFieldContext getContext(); + + public void setContext(MetricsFieldContext context); } static public abstract class AbstractField implements MetricsField @@ -1045,7 +1054,7 @@ public class MetricsViewEditor extends Editor public MetricsField createField() { - return createField(_node, _prefix, _metricsName, _fieldName, _objectField); + return createField(_node, _prefix, _metricsName, _fieldName, _objectField, _context); } public String getPropertyPrefix() @@ -1053,12 +1062,23 @@ public class MetricsViewEditor extends Editor return _prefix; } + public MetricsFieldContext getContext() + { + return _context; + } + + public void setContext(MetricsFieldContext context) + { + _context = context; + } + private final MetricsView _node; private final String _prefix; private final String _metricsName; private final String _fieldName; private final Field _objectField; private String _columnName; + private MetricsFieldContext _context; } static public class DeclaredMetricsField extends AbstractField @@ -1269,24 +1289,37 @@ public class MetricsViewEditor extends Editor // If the elapsed period is less than the refresh period, don't // calculate a new value. // - if(d2.timestamp - d1.timestamp >= 5000) + Double last = _last.get(m.id); + if(last == null) + { + if(d2.timestamp - d1.timestamp >= getContext().getRefreshPeriod() * 1000) + { + last = 0.0d; + } + else + { + return null; + } + } + if(d2.timestamp - d1.timestamp >= getContext().getRefreshPeriod() * 1000) { if(d2.value - d1.value == 0 || d2.timestamp - d1.timestamp == 0) { - _last = 0.0; + last = 0.0d; } else { - _last = (double)((d2.value - d1.value) / (double)((d2.timestamp - d1.timestamp) / _scaleFactor)); + last = (double)((d2.value - d1.value) / (double)((d2.timestamp - d1.timestamp) / _scaleFactor)); } } - return _last; + _last.put(m.id, last); + return last; } - private Double _last = 0.0d; private double _scaleFactor = 1.0d; private String _dataField; private final Map<String, DeltaMeasurement> _deltas = new HashMap<String, DeltaMeasurement>(); + private final Map<String, Double> _last = new HashMap<String, Double>(); private TableCellRenderer _cellRenderer; } @@ -1469,7 +1502,8 @@ public class MetricsViewEditor extends Editor MetricsField field = MetricsViewEditor.createField(getMetricsNode(), prefix + "." + name, getFieldName(), name, - objectField); + objectField, + getContext()); if(field != null) { model.addField(field); @@ -1520,6 +1554,7 @@ public class MetricsViewEditor extends Editor private static final TableCellRenderer _cellRenderer = new ButtonRenderer(); } + private static final int _refreshPeriod = 5; private static Ice.Properties _properties; private static String[] _sectionSort; private static Map<String, String> _sectionNames = new HashMap<String, String>(); |