/* * RHQ Management Platform * Copyright (C) 2005-2008 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. */ // -*- Mode: Java; indent-tabs-mode: nil; -*- /* * MetricsDisplayForm.java * */ package org.rhq.enterprise.gui.legacy.action.resource.common.monitor.visibility; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionMapping; import org.apache.struts.util.ImageButtonBean; import org.apache.struts.util.LabelValueBean; import org.rhq.core.domain.measurement.MeasurementDefinition; import org.rhq.core.domain.measurement.ui.MetricDisplaySummary; import org.rhq.enterprise.gui.legacy.util.MonitorUtils; /** * Represents the controls on various pages that display metrics summaries. */ public class MetricsDisplayForm extends MetricsFilterForm { //-------------------------------------instance variables // clears highlight state private ImageButtonBean clear; // links to compare metrics page private ImageButtonBean compare; // refreshes with current values private ImageButtonBean current; // links to chart metrics page private ImageButtonBean chart; // sets highlight state private ImageButtonBean highlight; // highlight fields: "Low Value" (hv) is "10%" (hp) "Under // Baseline" (ht) private Boolean h; // is highlighted or not private Integer hp; private Integer ht; private Integer hv; // definition id's of selected metrics, upon which we'll take some action private Integer[] m; // id's of selected resources, upon which we'll take some action private Integer[] r; // threshold selection private Integer t; // changes threshold selection private ImageButtonBean threshold; /* List of measurements to display */ private List<MetricDisplaySummary> measurementSummaryList; private Map<Integer, MeasurementDefinition> measurementDefinitionList; private Boolean displayBaseline; private Boolean displayHighRange; private Boolean displayLowRange; /** * In the cases where this bean holds MetricDisplaySummary's that are aggregates we show the number * collecting/unavailable/total. */ private Boolean showNumberCollecting = Boolean.FALSE; /** * When the MetricDisplaySummary's are for a single resource, we show the baseline, high range and low range. */ private Boolean showBaseline = Boolean.FALSE; /* * Note: on the favorite metrics display pages <i>both</i> can be true! Everywhere else it's usually one or the * other. */ /** * On favorite metrics pages, we need to show the specific resource type for each metric. */ private Boolean showMetricSource = Boolean.FALSE; //-------------------------------------constructors public MetricsDisplayForm() { super(); setDefaults(); } //-------------------------------------public methods /* * * * public String toString() { StringBuffer s = new StringBuffer(super.toString()); s.append(" * showNumberCollecting=").append(showNumberCollecting); s.append(" showBaseline=").append(showBaseline); * s.append(" categoryList=").append(categoryList); s.append(" clear=").append(clear); s.append(" * compare=").append(compare); s.append(" current=").append(current); s.append(" chart=").append(chart); * s.append(" highlight=").append(highlight); s.append(" h=").append(h); s.append(" hp=").append(hp); * s.append(" ht=").append(ht); s.append(" hv=").append(hv); s.append(" m=").append(Arrays.asList(m)); * s.append(" r=").append(Arrays.asList(r)); s.append(" t=").append(t); s.append(" * threshold=").append(threshold); return s.toString(); } */ public List<MetricDisplaySummary> getMeasurementSummaryList() { return measurementSummaryList; } public void setMeasurementSummaryList(List<MetricDisplaySummary> measurementSummaryList) { this.measurementSummaryList = measurementSummaryList; } public Map<Integer, MeasurementDefinition> getMeasurementDefinitionList() { return measurementDefinitionList; } public void setMeasurementDefinitionList(Map<Integer, MeasurementDefinition> measurementDefinitionList) { this.measurementDefinitionList = measurementDefinitionList; } public ImageButtonBean getClear() { return clear; } public void setClear(ImageButtonBean b) { clear = b; } public ImageButtonBean getCompare() { return compare; } public void setCompare(ImageButtonBean b) { compare = b; } public ImageButtonBean getCurrent() { return current; } public void setCurrent(ImageButtonBean b) { current = b; } public ImageButtonBean getChart() { return chart; } public void setChart(ImageButtonBean b) { chart = b; } public ImageButtonBean getHighlight() { return highlight; } public void setHighlight(ImageButtonBean b) { highlight = b; } public Boolean getH() { return h; } public void setH(Boolean b) { h = b; } // highlight percentage public Integer getHp() { return hp; } public void setHp(Integer i) { hp = i; } // highlight threshold public Integer getHt() { return ht; } public void setHt(Integer i) { ht = i; } // highlight value public Integer getHv() { return hv; } public void setHv(Integer i) { hv = i; } public Integer[] getM() { return m; } public void setM(Integer[] metricDefinitionIds) { m = metricDefinitionIds; } public Integer[] getR() { return r; } public void setR(Integer[] resourceIds) { r = resourceIds; } // threshold selection public Integer getT() { return t; } public void setT(Integer i) { t = i; } public ImageButtonBean getThreshold() { return threshold; } public void setThreshold(ImageButtonBean b) { threshold = b; } public boolean isClearClicked() { return getClear().isSelected(); } public boolean isCompareClicked() { return getCompare().isSelected(); } public boolean isCurrentClicked() { return getCurrent().isSelected(); } public boolean isChartClicked() { return getChart().isSelected(); } public boolean isHighlightClicked() { return getHighlight().isSelected(); } public boolean isThresholdClicked() { return getThreshold().isSelected(); } public void reset(ActionMapping mapping, HttpServletRequest request) { super.reset(mapping, request); setDefaults(); } /** * @return Boolean */ public Boolean getShowNumberCollecting() { return showNumberCollecting; } /** * Sets the showNumberCollecting. * * @param showNumberCollecting The showNumberCollecting to set */ public void setShowNumberCollecting(Boolean showNumberCollecting) { this.showNumberCollecting = showNumberCollecting; } /** * @return Boolean */ public Boolean getShowBaseline() { return showBaseline; } /** * Sets the showBaseline. * * @param showBaseline The showBaseline to set */ public void setShowBaseline(Boolean showBaseline) { this.showBaseline = showBaseline; } /** * @return Boolean */ public Boolean getShowMetricSource() { return showMetricSource; } /** * Sets the showMetricSource. * * @param showMetricSource The showMetricSource to set */ public void setShowMetricSource(Boolean showMetricSource) { this.showMetricSource = showMetricSource; } /** * @return Boolean */ public Boolean getDisplayBaseline() { return displayBaseline; } /** * @return Boolean */ public Boolean getDisplayHighRange() { return displayHighRange; } /** * @return Boolean */ public Boolean getDisplayLowRange() { return displayLowRange; } /** * Sets the displayBaseline. * * @param displayBaseline The displayBaseline to set */ public void setDisplayBaseline(Boolean displayBaseline) { this.displayBaseline = displayBaseline; } /** * Sets the displayHighRange. * * @param displayHighRange The displayHighRange to set */ public void setDisplayHighRange(Boolean displayHighRange) { this.displayHighRange = displayHighRange; } /** * Sets the displayLowRange. * * @param displayLowRange The displayLowRange to set */ public void setDisplayLowRange(Boolean displayLowRange) { this.displayLowRange = displayLowRange; } public List getThresholdMenu() { return MonitorUtils.getThresholdMenu(); } public List getHighlightThresholdMenu() { List items = new ArrayList(); String underLabel = null; String overLabel = null; if (getT() != null) { switch (getT().intValue()) { case MonitorUtils.THRESHOLD_HIGH_RANGE_VALUE: { underLabel = "UnderHighRange"; overLabel = "OverHighRange"; break; } case MonitorUtils.THRESHOLD_LOW_RANGE_VALUE: { underLabel = "UnderLowRange"; overLabel = "OverLowRange"; break; } } } if ((underLabel == null) || (overLabel == null)) { underLabel = "UnderBaseline"; overLabel = "OverBaseline"; } Integer underValue = new Integer(MonitorUtils.THRESHOLD_UNDER_VALUE); Integer overValue = new Integer(MonitorUtils.THRESHOLD_OVER_VALUE); items.add(new LabelValueBean(underLabel, underValue.toString())); items.add(new LabelValueBean(overLabel, overValue.toString())); return items; } //-------------------------------------private methods protected void setDefaults() { super.setDefaults(); clear = new ImageButtonBean(); compare = new ImageButtonBean(); current = new ImageButtonBean(); chart = new ImageButtonBean(); highlight = new ImageButtonBean(); h = Boolean.FALSE; hp = null; ht = null; hv = null; m = new Integer[0]; r = new Integer[0]; threshold = new ImageButtonBean(); t = null; showNumberCollecting = Boolean.FALSE; showBaseline = Boolean.FALSE; showMetricSource = Boolean.FALSE; } }