/*
* RHQ Management Platform
* Copyright (C) 2005-2010 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.inventory.group;
import javax.faces.application.FacesMessage;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.authz.PermissionException;
/**
* A POJO Seam component that handles loading and updating of plugin configurations across a compatible Group.
*
* @author Ian Springer
*/
//@Name("EditGroupPluginConfigurationUIBean")
//@Scope(ScopeType.CONVERSATION)
public class EditGroupPluginConfigurationUIBean extends AbstractGroupPluginConfigurationUIBean {
public static final String VIEW_ID = "/rhq/group/inventory/edit-connection.xhtml";
// @In(value = "org.jboss.seam.faces.redirect")
// private Redirect redirect;
// @Create
// @Begin
public void init() {
loadConfigurations();
// We can set this once here, since this.redirect is scoped to the same CONVERSATION as this managed bean instance.
// this.redirect.setParameter(ParamConstants.GROUP_ID_PARAM, getGroup().getId());
return;
}
/**
* Asynchronously persist the group member Configurations to the DB as well as push them out to the corresponding
* Agents. This gets called when user clicks the SAVE button.
*/
public void updateConfigurations() {
try {
// TODO: See if there's some way for the config renderer to handle calling applyGroupConfiguration(),
// so the managed bean doesn't have to worry about doing it.
getConfigurationSet().applyGroupConfiguration();
getConfigurationManager().scheduleGroupPluginConfigurationUpdate(
EnterpriseFacesContextUtility.getSubject(), getGroup().getId(), getPluginConfigurations());
} catch (Exception e) {
if (e instanceof PermissionException) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, e.getLocalizedMessage());
// this.redirect.setViewId(ViewGroupPluginConfigurationUIBean.VIEW_ID);
} else {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"Failed to schedule group plugin Configuration update - cause: " + e);
// this.redirect.setViewId(VIEW_ID);
}
// this.redirect.execute();
return;
}
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Group plugin Configuration update scheduled.");
// Conversation.instance().endBeforeRedirect();
// this.redirect.setViewId(ViewGroupConnectionPropertyHistoryUIBean.VIEW_ID);
// this.redirect.execute();
return;
}
/**
* End the convo and redirect back to view-connection.xhtml. This gets called when user clicks the CANCEL button.
*/
// @End
public void cancel() {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Edit canceled.");
// this.redirect.setViewId(ViewGroupPluginConfigurationUIBean.VIEW_ID);
// this.redirect.execute();
return;
}
/**
* End the convo and reload the current page (edit-connection.xhtml). This gets called when user clicks the RESET button.
*/
// @End
public void reset() {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "All properties reset to original values.");
// this.redirect.setViewId(VIEW_ID);
// this.redirect.execute();
return;
}
}