modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
| 148 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
| 62 ++--
4 files changed, 188 insertions(+), 26 deletions(-)
New commits:
commit 49886f1a8f52cbf5166498280d4ee28e679621f7
Author: mtho11 <mikecthompson(a)gmail.com>
Date: Tue Jul 30 10:59:02 2013 -0700
Change layout of fields in availability detail form of metric page.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
index ee06724..3e573dd 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
@@ -230,8 +230,6 @@ public class AvailabilityOverUnderGraphType implements
AvailabilityGraphType {
.attr("height", height + margin.top +
margin.bottom)
.attr("transform", "translate(" +
margin.left + "," + margin.top + ")");
- console.error("avail.chartSelection: "+
availChartContext.chartSelection);
-
svg.selectAll("rect.availBars")
.data(availChartContext.data)
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
index 23effb0..057a77f 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
@@ -18,7 +18,10 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype;
+import com.smartgwt.client.widgets.HTMLFlow;
+import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.enterprise.gui.coregui.client.util.Log;
+import org.rhq.enterprise.gui.coregui.client.util.MeasurementConverterClient;
import java.util.ArrayList;
import java.util.List;
@@ -32,11 +35,27 @@ import java.util.List;
*/
public class AvailabilitySummaryPieGraphType {
+ public static final int HEIGHT = 100;
+ public static final int WIDTH = 100;
+
private List<AvailabilitySummary> availabilitySummaries;
public AvailabilitySummaryPieGraphType() {
}
+ public HTMLFlow createGraphMarker() {
+ Log.debug("drawGraph marker in AvailabilitySummaryPieGraph");
+
+ StringBuilder divAndSvgDefs = new StringBuilder();
+ divAndSvgDefs.append("<div id=\"availSummaryChart\"
>");
+ divAndSvgDefs.append("<svg
xmlns=\"http://www.w3.org/2000/svg\"
version=\"1.1\" style=\"height:"+HEIGHT+"px;\"
></svg>");
+ divAndSvgDefs.append("</div>");
+ HTMLFlow graphFlow = new HTMLFlow(divAndSvgDefs.toString());
+ graphFlow.setWidth(WIDTH);
+ graphFlow.setHeight(HEIGHT);
+ return graphFlow;
+ }
+
public void setAvailabilityData(String upLabel, double upPercent, String downLabel,
double downPercent, String disabledLabel, double disabledPercent ){
availabilitySummaries = new ArrayList<AvailabilitySummary>();
availabilitySummaries.add(new AvailabilitySummary(upLabel, upPercent));
@@ -51,7 +70,8 @@ public class AvailabilitySummaryPieGraphType {
// loop through the avail intervals
for (AvailabilitySummary availabilitySummary : availabilitySummaries) {
sb.append("{ \"label\":\"" +
availabilitySummary.getLabel() + "\", ");
- sb.append(" \"value\": \"" +
availabilitySummary.getValue() * 100 + "\" },");
+ sb.append(" \"value\": \"" +
MeasurementConverterClient.format(availabilitySummary.getValue(),
+ MeasurementUnits.PERCENTAGE, true) + "\" },");
}
sb.setLength(sb.length() - 1);
}
@@ -67,26 +87,21 @@ public class AvailabilitySummaryPieGraphType {
public native void drawJsniChart() /*-{
console.log("Draw Availability Summary Pie Chart");
- var data =
this.@org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype.AvailabilitySummaryPieGraphType::getAvailabilitySummaryJson()();
-
var w = 100,
h = 100,
- r = 30,
- color = $wnd.d3.scale.category10();
-
- var vis = $wnd.d3.select("#availSummaryChart svg")
+ r = h/2,
+ color = $wnd.d3.scale.category10(),
+ data =
this.@org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype.AvailabilitySummaryPieGraphType::getAvailabilitySummaryJson()(),
+ vis = $wnd.d3.select("#availSummaryChart svg")
.append("g")
.data(data)
.attr("width", w)
.attr("height", h)
- .attr("transform", "translate(" + r + "," + r +
")");
-
- var arc = $wnd.d3.svg.arc()
- .outerRadius(r);
-
- var pie = $wnd.d3.layout.pie();
-
- var arcs = vis.selectAll("g.slice")
+ .attr("transform", "translate(" + r + "," + r +
")"),
+ arc = $wnd.d3.svg.arc()
+ .outerRadius(r),
+ pie = $wnd.d3.layout.pie(),
+ arcs = vis.selectAll("g.slice")
.data(pie)
.enter()
.append("g")
@@ -108,7 +123,7 @@ public class AvailabilitySummaryPieGraphType {
.text(function (d, i) {
return data[i].value;
});
- console.warn("done with avail summary pie graph");
+ console.log("done with avail summary pie graph");
}-*/;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
index 961ea5a..cffcfd7 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
@@ -22,8 +22,9 @@ package
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitori
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
@@ -49,11 +50,8 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout {
private Resource resource;
private StaticTextItem currentField;
- private StaticTextItem availField;
private StaticTextItem availTimeField;
- private StaticTextItem downField;
private StaticTextItem downTimeField;
- private StaticTextItem disabledField;
private StaticTextItem disabledTimeField;
private StaticTextItem failureCountField;
private StaticTextItem disabledCountField;
@@ -71,29 +69,16 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout {
availabilitySummaryPieGraph = new AvailabilitySummaryPieGraphType();
setWidth100();
- setHeight(265);
+ setHeight(165);
}
@Override
protected void onInit() {
super.onInit();
- addMember(createGraphMarker());
addMember(createSummaryForm());
}
- public HTMLFlow createGraphMarker() {
- Log.debug("drawGraph marker in AvailabilitySummaryPieGraph");
-
- StringBuilder divAndSvgDefs = new StringBuilder();
- divAndSvgDefs.append("<div id=\"availSummaryChart"
- + "\" ><svg
xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"
style=\"height:100px;\">");
- divAndSvgDefs.append("</svg></div>");
- HTMLFlow graph = new HTMLFlow(divAndSvgDefs.toString());
- graph.setWidth100();
- graph.setHeight(100);
- //addMember(graph);
- return graph;
- }
+
private DynamicForm createSummaryForm() {
DynamicForm form = new DynamicForm();
@@ -108,28 +93,16 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout
{
currentField.setColSpan(4);
// row 2
- availField = new StaticTextItem("avail",
MSG.view_resource_monitor_availability_availability());
- availField.setWrapTitle(false);
- prepareTooltip(availField,
MSG.view_resource_monitor_availability_availability_tooltip());
-
availTimeField = new StaticTextItem("availTime",
MSG.view_resource_monitor_availability_uptime());
availTimeField.setWrapTitle(false);
prepareTooltip(availTimeField,
MSG.view_resource_monitor_availability_uptime_tooltip());
// row 3
- downField = new StaticTextItem("down",
MSG.view_resource_monitor_availability_down());
- downField.setWrapTitle(false);
- prepareTooltip(downField,
MSG.view_resource_monitor_availability_down_tooltip());
-
downTimeField = new StaticTextItem("downTime",
MSG.view_resource_monitor_availability_downtime());
downTimeField.setWrapTitle(false);
prepareTooltip(downTimeField,
MSG.view_resource_monitor_availability_downtime_tooltip());
// row 4
- disabledField = new StaticTextItem("disabled",
MSG.view_resource_monitor_availability_disabled());
- disabledField.setWrapTitle(false);
- prepareTooltip(disabledField,
MSG.view_resource_monitor_availability_disabled_tooltip());
-
disabledTimeField = new StaticTextItem("disabledTime",
MSG.view_resource_monitor_availability_disabledTime());
disabledTimeField.setWrapTitle(false);
prepareTooltip(disabledTimeField,
MSG.view_resource_monitor_availability_disabledTime_tooltip());
@@ -164,7 +137,17 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout
{
currentTimeField.setColSpan(4);
currentTimeField.setShowTitle(false);
- form.setItems(currentField, availField, availTimeField, downField, downTimeField,
disabledField,
+ CanvasItem availPieChartItem = new CanvasItem();
+ //@todo: i18n
+ availPieChartItem.setTitle("Availability");
+ availPieChartItem.setCanvas(availabilitySummaryPieGraph.createGraphMarker());
+ availPieChartItem.setRowSpan(3);
+ availPieChartItem.setVAlign(VerticalAlignment.TOP);
+ availPieChartItem.setTitleVAlign(VerticalAlignment.TOP);
+ availPieChartItem.setHeight(60);
+ availPieChartItem.setWidth(60);
+
+ form.setItems(currentField, availPieChartItem, availTimeField, downTimeField,
disabledTimeField, failureCountField, disabledCountField, mtbfField,
mttrField, unknownField,
currentTimeField);
@@ -181,6 +164,7 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout {
public void onSuccess(ResourceAvailabilitySummary result) {
Log.debug("reloadSummaryData");
+ //@todo: i18n
availabilitySummaryPieGraph.setAvailabilityData(
"Up", result.getUpPercentage(),
"Down", result.getDownPercentage(),
@@ -197,16 +181,10 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout
{
currentField.setValue(MSG.view_resource_monitor_availability_currentStatus_value(result
.getCurrent().getName(),
TimestampCellFormatter.format(result.getLastChange().getTime())));
-
availField.setValue(MeasurementConverterClient.format(result.getUpPercentage(),
- MeasurementUnits.PERCENTAGE, true));
availTimeField.setValue(MeasurementConverterClient.format((double)
result.getUpTime(),
MeasurementUnits.MILLISECONDS, true));
-
downField.setValue(MeasurementConverterClient.format(result.getDownPercentage(),
- MeasurementUnits.PERCENTAGE, true));
downTimeField.setValue(MeasurementConverterClient.format((double)
result.getDownTime(),
MeasurementUnits.MILLISECONDS, true));
-
disabledField.setValue(MeasurementConverterClient.format(result.getDisabledPercentage(),
- MeasurementUnits.PERCENTAGE, true));
disabledTimeField.setValue(MeasurementConverterClient.format((double)
result.getDisabledTime(),
MeasurementUnits.MILLISECONDS, true));
failureCountField.setValue(result.getFailures());
commit 3d310c939d5018a9878a8fd836a220a5b2f018f4
Author: mtho11 <mikecthompson(a)gmail.com>
Date: Mon Jul 29 20:07:11 2013 -0700
Availability pie chart for metrics page.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
index 811a579..ee06724 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilityOverUnderGraphType.java
@@ -230,6 +230,8 @@ public class AvailabilityOverUnderGraphType implements
AvailabilityGraphType {
.attr("height", height + margin.top +
margin.bottom)
.attr("transform", "translate(" +
margin.left + "," + margin.top + ")");
+ console.error("avail.chartSelection: "+
availChartContext.chartSelection);
+
svg.selectAll("rect.availBars")
.data(availChartContext.data)
@@ -329,7 +331,6 @@ public class AvailabilityOverUnderGraphType implements
AvailabilityGraphType {
// Public API
draw: function (availChartContext) {
"use strict";
- console.log("AvailabilityChart");
drawBars(availChartContext);
createHovers();
}
@@ -338,7 +339,6 @@ public class AvailabilityOverUnderGraphType implements
AvailabilityGraphType {
}();
- console.log("Avail Data records: "+availChartContext.data.length);
if (typeof availChartContext.data !== 'undefined' &&
availChartContext.data.length > 0) {
availabilityGraph.draw(availChartContext);
console.log("Availability Chart Drawn");
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
new file mode 100644
index 0000000..23effb0
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/graph/graphtype/AvailabilitySummaryPieGraphType.java
@@ -0,0 +1,133 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype;
+
+import org.rhq.enterprise.gui.coregui.client.util.Log;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Contains the javascript chart definition for an implementation of the d3 availability
chart. This implementation is
+ * just a line that changes color based on availability type: up=green, down=red,
orange=disabled, unknown=grey,
+ * empty=grey, warn=yellow. This version of the availability graph shows continuous
intervals.
+ *
+ * @author Mike Thompson
+ */
+public class AvailabilitySummaryPieGraphType {
+
+ private List<AvailabilitySummary> availabilitySummaries;
+
+ public AvailabilitySummaryPieGraphType() {
+ }
+
+ public void setAvailabilityData(String upLabel, double upPercent, String downLabel,
double downPercent, String disabledLabel, double disabledPercent ){
+ availabilitySummaries = new ArrayList<AvailabilitySummary>();
+ availabilitySummaries.add(new AvailabilitySummary(upLabel, upPercent));
+ availabilitySummaries.add(new AvailabilitySummary(downLabel, downPercent));
+ availabilitySummaries.add(new AvailabilitySummary(disabledLabel,
disabledPercent));
+
+ }
+
+ public String getAvailabilitySummaryJson() {
+ StringBuilder sb = new StringBuilder("[");
+ if (null != availabilitySummaries) {
+ // loop through the avail intervals
+ for (AvailabilitySummary availabilitySummary : availabilitySummaries) {
+ sb.append("{ \"label\":\"" +
availabilitySummary.getLabel() + "\", ");
+ sb.append(" \"value\": \"" +
availabilitySummary.getValue() * 100 + "\" },");
+ }
+ sb.setLength(sb.length() - 1);
+ }
+
+ sb.append("]");
+ Log.debug(sb.toString());
+ return sb.toString();
+ }
+
+ /**
+ * The magic JSNI to draw the charts with d3.
+ */
+ public native void drawJsniChart() /*-{
+ console.log("Draw Availability Summary Pie Chart");
+
+ var data =
this.@org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype.AvailabilitySummaryPieGraphType::getAvailabilitySummaryJson()();
+
+ var w = 100,
+ h = 100,
+ r = 30,
+ color = $wnd.d3.scale.category10();
+
+ var vis = $wnd.d3.select("#availSummaryChart svg")
+ .append("g")
+ .data(data)
+ .attr("width", w)
+ .attr("height", h)
+ .attr("transform", "translate(" + r + "," + r +
")");
+
+ var arc = $wnd.d3.svg.arc()
+ .outerRadius(r);
+
+ var pie = $wnd.d3.layout.pie();
+
+ var arcs = vis.selectAll("g.slice")
+ .data(pie)
+ .enter()
+ .append("g")
+ .attr("class", "slice");
+
+ arcs.append("path")
+ .attr("fill", function (d, i) {
+ return color(i);
+ })
+ .attr("d", arc);
+
+ arcs.append("text")
+ .attr("transform", function (d) {
+ d.innerRadius = 0;
+ d.outerRadius = r;
+ return "translate(" + arc.centroid(d) + ")";
+ })
+ .attr("text-anchor", "middle")
+ .text(function (d, i) {
+ return data[i].value;
+ });
+ console.warn("done with avail summary pie graph");
+
+ }-*/;
+
+
+ private static class AvailabilitySummary {
+ final private String label;
+ final private double value;
+
+ private AvailabilitySummary(String label, double value) {
+ this.label = label;
+ this.value = value;
+ }
+
+ private String getLabel() {
+ return label;
+ }
+
+ private double getValue() {
+ return value;
+ }
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
index 09a7bc3..82a9d98 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
@@ -305,7 +305,7 @@ public class MetricsTableView extends
Table<MetricsViewDataSource> implements Re
int startRow = dataArrivedEvent.getStartRow();
int endRow = dataArrivedEvent.getEndRow();
for (int i = startRow; i < endRow; i++) {
- if (null != metricsTableView.expandedRows
+ if (null != metricsTableView && null !=
metricsTableView.expandedRows
&&
metricsTableView.expandedRows.contains(getRecord(i).getAttributeAsInt(
MetricsViewDataSource.FIELD_METRIC_DEF_ID))) {
expandRecord(getRecord(i));
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
index 9d6b892..961ea5a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/ResourceMetricAvailabilityView.java
@@ -20,7 +20,9 @@
package
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.table;
+import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
@@ -31,6 +33,8 @@ import
org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import
org.rhq.enterprise.gui.coregui.client.inventory.common.graph.graphtype.AvailabilitySummaryPieGraphType;
+import org.rhq.enterprise.gui.coregui.client.util.Log;
import org.rhq.enterprise.gui.coregui.client.util.MeasurementConverterClient;
import org.rhq.enterprise.gui.coregui.client.util.enhanced.EnhancedVLayout;
@@ -58,22 +62,39 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout {
private StaticTextItem unknownField;
private StaticTextItem currentTimeField;
+ private AvailabilitySummaryPieGraphType availabilitySummaryPieGraph;
+
public ResourceMetricAvailabilityView(Resource resource) {
super();
this.resource = resource;
+ availabilitySummaryPieGraph = new AvailabilitySummaryPieGraphType();
setWidth100();
- setHeight(165);
+ setHeight(265);
}
@Override
protected void onInit() {
super.onInit();
-
+ addMember(createGraphMarker());
addMember(createSummaryForm());
}
+ public HTMLFlow createGraphMarker() {
+ Log.debug("drawGraph marker in AvailabilitySummaryPieGraph");
+
+ StringBuilder divAndSvgDefs = new StringBuilder();
+ divAndSvgDefs.append("<div id=\"availSummaryChart"
+ + "\" ><svg
xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"
style=\"height:100px;\">");
+ divAndSvgDefs.append("</svg></div>");
+ HTMLFlow graph = new HTMLFlow(divAndSvgDefs.toString());
+ graph.setWidth100();
+ graph.setHeight(100);
+ //addMember(graph);
+ return graph;
+ }
+
private DynamicForm createSummaryForm() {
DynamicForm form = new DynamicForm();
form.setWidth100();
@@ -158,6 +179,21 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout
{
@Override
public void onSuccess(ResourceAvailabilitySummary result) {
+ Log.debug("reloadSummaryData");
+
+ availabilitySummaryPieGraph.setAvailabilityData(
+ "Up", result.getUpPercentage(),
+ "Down", result.getDownPercentage(),
+ "Disabled" ,result.getDisabledPercentage()
+ );
+ new Timer(){
+
+ @Override
+ public void run() {
+ Log.debug("Run Avail Graph");
+ availabilitySummaryPieGraph.drawJsniChart();
+ }
+ }.schedule(150);
currentField.setValue(MSG.view_resource_monitor_availability_currentStatus_value(result
.getCurrent().getName(),
TimestampCellFormatter.format(result.getLastChange().getTime())));
@@ -189,6 +225,8 @@ public class ResourceMetricAvailabilityView extends EnhancedVLayout {
currentTimeField.setValue(MSG.view_resource_monitor_availability_currentAsOf(TimestampCellFormatter
.format(result.getCurrentTime())));
+
+
}
@Override