modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/charttype/MetricStackedBarGraph.java | 25 ++++++---- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/D3GraphListView.java | 13 +++-- 2 files changed, 24 insertions(+), 14 deletions(-)
New commits: commit 9fcd18c062ff19bcbd8845635d8c6d3ac1868a08 Author: Mike Thompson mithomps@redhat.com Date: Mon Mar 4 13:44:29 2013 -0800
Charting - Fix timing bug where availabilityGraph can be null.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/D3GraphListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/D3GraphListView.java index 635c9de..dfb6afa 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/D3GraphListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/D3GraphListView.java @@ -202,11 +202,14 @@ public class D3GraphListView extends AbstractD3GraphListView { } else { determineGraphsToBuild(metricsDataList, measurementDefinitions, definitionIds); } - // we only need the first metricData since we are only taking the - // availability data set in there for the dropdowns already - availabilityGraph.setMetricData(metricsDataList.get(0)); - availabilityGraph.setAvailabilityList(availabilityList); - availabilityGraph.drawGraph(); + // There is a weird timing case when availabilityGraph can be null + if(availabilityGraph != null){ + // we only need the first metricData since we are only taking the + // availability data set in there for the dropdowns already + availabilityGraph.setMetricData(metricsDataList.get(0)); + availabilityGraph.setAvailabilityList(availabilityList); + availabilityGraph.drawGraph(); + } }
}
commit 5930c865e8812bafe5e5eaf902440178c6b24e32 Author: Mike Thompson mithomps@redhat.com Date: Mon Mar 4 13:41:27 2013 -0800
Charting - Bugfix for Cannot use 'in' operator to search for 'Class' in NaN. Undefined values were blowing up javascript functions.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/charttype/MetricStackedBarGraph.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/charttype/MetricStackedBarGraph.java index fddffe1..3a29511 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/charttype/MetricStackedBarGraph.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/charttype/MetricStackedBarGraph.java @@ -41,12 +41,12 @@ public final class MetricStackedBarGraph extends AbstractGraph { public native void drawJsniChart() /*-{
console.log("Draw Stacked Bar jsni chart"); - var global = this; + var global = this,
// create a chartContext object (from rhq.js) with the data required to render to a chart // this same data could be passed to different chart types // This way, we are decoupled from the dependency on globals and JSNI and kept all the java interaction right here. - var chartContext = new $wnd.ChartContext(global.@org.rhq.enterprise.gui.coregui.client.inventory.common.charttype.AbstractGraph::getChartId()(), + chartContext = new $wnd.ChartContext(global.@org.rhq.enterprise.gui.coregui.client.inventory.common.charttype.AbstractGraph::getChartId()(), global.@org.rhq.enterprise.gui.coregui.client.inventory.common.charttype.AbstractGraph::getChartHeight()(), global.@org.rhq.enterprise.gui.coregui.client.inventory.common.charttype.AbstractGraph::getJsonMetrics()(), global.@org.rhq.enterprise.gui.coregui.client.inventory.common.charttype.AbstractGraph::getXAxisTitle()(), @@ -78,16 +78,23 @@ public final class MetricStackedBarGraph extends AbstractGraph { height = adjustedChartHeight - margin.top - margin.bottom, titleHeight = 30, titleSpace = 10, barOffset = 2, - interpolation = "basis"; - - var avg = $wnd.d3.mean(chartContext.data.map(function (d) { + interpolation = "basis", + avg = $wnd.d3.mean(chartContext.data.map(function (d) { return d.y; })), peak = $wnd.d3.max(chartContext.data.map(function (d) { - return d.high; + if(d.high != undefined){ + return d.high; + }else { + return 0; + } })), min = $wnd.d3.min(chartContext.data.map(function (d) { - return d.low; + if(d.low != undefined){ + return d.low; + } else { + return Number.MAX_VALUE; + } })), timeScale = $wnd.d3.time.scale() .range([0, width]) @@ -144,10 +151,10 @@ public final class MetricStackedBarGraph extends AbstractGraph { xValue = 820, yBase = 100, yInc = 25, - decimalPlaces = 0; + decimalPlaces = 0,
// title/header - var sidebar = chart.append("g").append("rect") + sidebar = chart.append("g").append("rect") .attr("class", "rightSidePanel") .attr("x", xLabel -10) .attr("y", margin.top + 60)