/*
* 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; -*-
/*
* MetricDisplayRangeForm.java
*
*/
package org.rhq.enterprise.gui.legacy.action.resource.common.monitor.visibility;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.enterprise.gui.legacy.action.CalendarForm;
/**
* Represents the controls on various pages that display metrics summaries.
*/
public class MetricDisplayRangeForm extends CalendarForm {
public static final Integer ACTION_LASTN = 1;
public static final Integer ACTION_DATE_RANGE = 2;
// action radio button: "1" (last n) or "2" (date range)
private Integer a;
private Integer ctype;
private Integer id;
// fields for simple date range: Last "5" (rn) "Hours" (ru):
private Integer rn; // range number
private Integer ru; // range unit
private int groupId = -1;
private int parent = -1;
/**
* Resource category. The value corresponds to {@link ResourceCategory#name()} - either "PLATFORM", "SERVER, or
* "SERVICE".
*/
private String category;
//-------------------------------------constructors
public MetricDisplayRangeForm() {
super();
setDefaults();
}
//-------------------------------------public methods
public Integer getA() {
return a;
}
public void setA(Integer b) {
a = b;
}
public Integer getCtype() {
return ctype;
}
public void setCtype(Integer ctype) {
// NOTE: If the value of a form parameter is "", friggin' Struts maps it to 0, rather than null... (ips, 04/05/07)
this.ctype = (ctype != 0) ? ctype : null;
}
public Integer getId() {
return id;
}
public void setId(Integer resourceId) {
// NOTE: If the value of a form parameter is "", friggin' Struts maps it to 0, rather than null... (ips, 04/05/07)
this.id = (resourceId != 0) ? resourceId : null;
}
// range number
public Integer getRn() {
return rn;
}
public void setRn(Integer i) {
rn = i;
}
// range unit
public Integer getRu() {
return ru;
}
public void setRu(Integer i) {
ru = i;
}
public String getCategory() {
return this.category;
}
public void setCategory(String category) {
this.category = category;
}
/**
* Always check the end date.
*/
@Override
public boolean getWantEndDate() {
return true;
}
public boolean isLastnSelected() {
return (a != null) && (a.intValue() == ACTION_LASTN.intValue());
}
public boolean isDateRangeSelected() {
return (a != null) && (a.intValue() == ACTION_DATE_RANGE.intValue());
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
setDefaults();
}
@Override
protected boolean shouldValidateDateRange() {
return isDateRangeSelected();
}
@Override
public String toString() {
StringBuffer s = new StringBuffer(super.toString());
s.append(" id=").append(id);
s.append(" category=").append(category);
s.append(" ctype=").append(ctype);
s.append(" a=").append(a);
s.append(" rn=").append(rn);
s.append(" ru=").append(ru);
return s.toString();
}
protected void setDefaults() {
a = null;
rn = null;
ru = null;
ctype = null;
id = null;
category = null;
}
@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = super.validate(mapping, request);
if (isLastnSelected()) {
Integer lastN = this.getRn();
if ((lastN == null) || (lastN == 0)) {
if (errors == null) {
errors = new ActionErrors();
}
errors.add("rn", new ActionMessage("resource.common.monitor.error.LastNInteger"));
}
}
return errors;
}
/**
* @return the groupId
*/
public int getGroupId() {
return groupId;
}
/**
* @param groupId the groupId to set
*/
public void setGroupId(int groupId) {
this.groupId = groupId;
}
/**
* @return the parent
*/
public int getParent() {
return parent;
}
/**
* @param parent the parent to set
*/
public void setParent(int parent) {
this.parent = parent;
}
}