/* * 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. */ package org.rhq.enterprise.gui.legacy.action.resource.common.monitor.visibility; import java.util.Arrays; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionMapping; import org.apache.struts.util.ImageButtonBean; import org.rhq.core.domain.measurement.MeasurementSchedule; /** * Represents the controls on pages that display call-time stats. */ public class PerformanceForm extends MetricsControlForm { public static final Boolean DEFAULT_AVG = Boolean.TRUE; public static final Boolean DEFAULT_LOW = Boolean.TRUE; public static final Boolean DEFAULT_PEAK = Boolean.TRUE; public static final Boolean DEFAULT_REQ = Boolean.TRUE; public static final Integer DEFAULT_SCHEDULE_ID = -1; //-------------------------------------instance variables Boolean avg; ImageButtonBean chart; Boolean low; ImageButtonBean next; Boolean peak; ImageButtonBean prev; ImageButtonBean redraw; String[] url; Integer pn; String sc; String so; MeasurementSchedule[] schedules; Integer scheduleId; Integer metricCount; //-------------------------------------constructors public PerformanceForm() { super(); setDefaults(); } //-------------------------------------public methods @Override public String toString() { StringBuilder s = new StringBuilder(super.toString()); s.append(" low=").append(low); s.append(" avg=").append(avg); s.append(" peak=").append(peak); s.append(" chart=").append(chart); s.append(" redraw=").append(redraw); s.append(" next=").append(next); s.append(" prev=").append(prev); s.append(" url=").append(Arrays.asList(url)); return s.toString(); } public Boolean getAvg() { return avg; } public void setAvg(Boolean b) { avg = b; } public ImageButtonBean getChart() { return chart; } public void setChart(ImageButtonBean ibb) { chart = ibb; } public Boolean getLow() { return low; } public void setLow(Boolean b) { low = b; } public ImageButtonBean getNext() { return next; } public void setNext(ImageButtonBean ibb) { next = ibb; } public Boolean getPeak() { return peak; } public void setPeak(Boolean b) { peak = b; } public ImageButtonBean getPrev() { return prev; } public void setPrev(ImageButtonBean ibb) { prev = ibb; } public ImageButtonBean getRedraw() { return redraw; } public void setRedraw(ImageButtonBean ibb) { redraw = ibb; } public String[] getUrl() { return url; } public void addUrl(String s) { if (getUrl() == null) { setUrl(new String[0]); } int len = getUrl().length; String[] tmp = new String[len + 1]; System.arraycopy(getUrl(), 0, tmp, 0, len); tmp[len] = s; setUrl(tmp); } public void setUrl(String[] l) { url = l; } public MeasurementSchedule[] getSchedules() { return schedules; } public void setSchedules(MeasurementSchedule[] schedules) { this.schedules = schedules; } public Integer getScheduleId() { return scheduleId; } public void setScheduleId(Integer scheduleId) { this.scheduleId = scheduleId; } public Integer getMetricCount() { return metricCount; } public void setMetricCount(Integer metricCount) { this.metricCount = metricCount; } public Integer getPn() { return pn; } public void setPn(Integer i) { pn = i; } public String getSo() { return so; } public void setSo(String s) { so = s; } public String getSc() { return sc; } public void setSc(String s) { sc = ((s == null) || !s.equals("")) ? s : null; } public boolean isChartClicked() { return getChart().isSelected(); } public boolean isNextClicked() { return getNext().isSelected(); } public boolean isPrevClicked() { return getPrev().isSelected(); } public boolean isRedrawClicked() { return getRedraw().isSelected(); } public boolean isAnythingClicked() { return super.isAnythingClicked() || isChartClicked() || isNextClicked() || isPrevClicked() || isRedrawClicked() || (getScheduleId() != DEFAULT_SCHEDULE_ID) || (getPs() != null) || (getPn() != null) || (getSc() != null) || (getSo() != null); } public boolean isRangeNow() { if (getRe() == null) { return false; } return ((System.currentTimeMillis() - getRe()) < MetricRange.SHIFT_RANGE); } //-------------------------------------public accessors public void reset(ActionMapping mapping, HttpServletRequest request) { super.reset(mapping, request); setDefaults(); } //-------------------------------------private methods protected void setDefaults() { super.setDefaults(); avg = DEFAULT_AVG; chart = new ImageButtonBean(); low = DEFAULT_LOW; next = new ImageButtonBean(); peak = DEFAULT_PEAK; prev = new ImageButtonBean(); redraw = new ImageButtonBean(); url = new String[0]; schedules = new MeasurementSchedule[0]; scheduleId = DEFAULT_SCHEDULE_ID; pn = null; so = "DESC"; sc = "SUM(value.total)/SUM(value.count)"; } }