/*
* RHQ Management Platform
* Copyright (C) 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.coregui.client.inventory.resource.detail.monitoring.schedules;
import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.coregui.client.CoreGUI;
import org.rhq.coregui.client.inventory.common.AbstractSchedulesView;
import org.rhq.coregui.client.util.message.Message;
/**
* The Resource Monitoring>Schedules subtab.
*
* @author Jay Shaughnessy
* @author Ian Springer
*/
public class ResourceSchedulesView extends AbstractSchedulesView {
private static final String TITLE = MSG.view_resource_monitor_schedules_title();
private int resourceId;
public ResourceSchedulesView(ResourceComposite resourceComposite) {
super(TITLE, EntityContext.forResource(resourceComposite.getResource().getId()), resourceComposite
.getResourcePermission().isMeasure());
this.resourceId = resourceComposite.getResource().getId();
}
@Override
protected void enableSchedules(final int[] measurementDefinitionIds,
final List<String> measurementDefinitionDisplayNames) {
measurementService.enableSchedulesForResource(this.resourceId, measurementDefinitionIds,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable throwable) {
CoreGUI.getErrorHandler().handleError(
MSG.dataSource_schedules_enableFailure_resource(
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString()), throwable);
}
@Override
public void onSuccess(Void aVoid) {
CoreGUI.getMessageCenter().notify(
new Message(MSG.dataSource_schedules_enableSuccessful_concise(String
.valueOf(measurementDefinitionIds.length)), MSG
.dataSource_schedules_enableSuccessful_full_resource(
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString()), Message.Severity.Info));
refresh();
}
});
}
@Override
protected void disableSchedules(final int[] measurementDefinitionIds,
final List<String> measurementDefinitionDisplayNames) {
measurementService.disableSchedulesForResource(this.resourceId, measurementDefinitionIds,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable throwable) {
CoreGUI.getErrorHandler().handleError(
MSG.dataSource_schedules_disableFailure_resource(
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString()), throwable);
}
@Override
public void onSuccess(Void aVoid) {
CoreGUI.getMessageCenter().notify(
new Message(MSG.dataSource_schedules_disableSuccessful_concise(String
.valueOf(measurementDefinitionIds.length)), MSG
.dataSource_schedules_disableSuccessful_full_resource(
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString()), Message.Severity.Info));
refresh();
}
});
}
@Override
protected void updateSchedules(final int[] measurementDefinitionIds,
final List<String> measurementDefinitionDisplayNames, final long collectionInterval) {
measurementService.updateSchedulesForResource(this.resourceId, measurementDefinitionIds, collectionInterval,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable throwable) {
CoreGUI.getErrorHandler().handleError(
MSG.dataSource_schedules_updateFailure_resource(
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString(), String.valueOf(collectionInterval / 1000)),
throwable);
}
@Override
public void onSuccess(Void aVoid) {
String collIntervalStr = String.valueOf(collectionInterval / 1000);
CoreGUI.getMessageCenter().notify(
new Message(MSG.dataSource_schedules_updateSuccessful_concise(collIntervalStr,
String.valueOf(measurementDefinitionIds.length)), MSG
.dataSource_schedules_updateSuccessful_full_resource(collIntervalStr,
String.valueOf(measurementDefinitionIds.length), String.valueOf(resourceId),
measurementDefinitionDisplayNames.toString()), Message.Severity.Info));
refresh();
}
});
}
public int getResourceId() {
return resourceId;
}
}