62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste/*
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * The contents of this file are subject to the terms of the Common Development and
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Distribution License (the License). You may not use this file except in compliance with the
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * License.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * specific language governing permission and limitations under the License.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * When distributing Covered Software, include this CDDL Header Notice in each file and include
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Header, with the fields enclosed by brackets [] replaced by your own identifying
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * information: "Portions copyright [year] [name of copyright owner]".
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Copyright 2015 ForgeRock AS.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joostepackage com.sun.identity.console.audit;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport static com.sun.identity.console.audit.AuditConsoleConstants.*;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport static com.sun.identity.console.base.AMServiceProfile.PG_SESSION_PROFILE_VIEWBEANS;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport static com.sun.web.ui.view.alert.CCAlert.TYPE_ERROR;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.model.ModelControlException;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.view.View;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.view.ViewBean;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.view.event.DisplayEvent;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.view.event.RequestInvocationEvent;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.iplanet.jato.view.html.OptionList;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.audit.model.AbstractAuditModel;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.base.AMPostViewBean;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.base.AMPrimaryMastHeadViewBean;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.base.AMPropertySheet;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.base.model.AMConsoleException;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.identity.console.base.model.AMPropertySheetModel;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.web.ui.model.CCPageTitleModel;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.web.ui.view.html.CCRadioButton;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport com.sun.web.ui.view.pagetitle.CCPageTitle;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport java.util.List;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joosteimport java.util.Set;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste/**
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Abstract view bean for selecting a new Audit Event Handler.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @since 13.0.0
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Joostepublic abstract class AbstractEventHandlerSelectViewBean extends AMPrimaryMastHeadViewBean {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste private static final String RB_EVENT_HANDLER = "rbEventHandler";
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste private CCPageTitleModel ptModel;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste private AMPropertySheetModel propertySheetModel;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste /**
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Create a new {@code AbstractEventHandlerEditViewBean}.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @param name Name of the view bean.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @param url Path to the view bean.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste public AbstractEventHandlerSelectViewBean(String name, String url) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste super(name);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste setDefaultDisplayURL(url);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste /**
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Get the view bean responsible for creating a new event handler.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @return The view bean.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected abstract ViewBean getAddViewBean();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @Override
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected void initialize() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste if (initialized) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste return;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste createPageTitleModel();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste createPropertyModel();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste registerChildren();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste initialized = true;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @Override
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected void registerChildren() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste ptModel.registerChildren(this);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste propertySheetModel.registerChildren(this);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste registerChild(PAGE_TITLE_TWO_BUTTONS, CCPageTitle.class);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste registerChild(PROPERTY_ATTRIBUTE, AMPropertySheet.class);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste super.registerChildren();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @Override
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected View createChild(String name) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste View view = null;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste if (name.equals(PAGE_TITLE_TWO_BUTTONS)) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste view = new CCPageTitle(this, ptModel, name);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste } else if (name.equals(PROPERTY_ATTRIBUTE)) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste view = new AMPropertySheet(this, propertySheetModel, name);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste } else if (propertySheetModel.isChildSupported(name)) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste view = propertySheetModel.createChild(this, name, getModel());
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste } else if (ptModel.isChildSupported(name)) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste view = ptModel.createChild(this, name);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste } else {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste view = super.createChild(name);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste return view;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste private void createPageTitleModel() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste ptModel = new CCPageTitleModel(
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste getClass().getClassLoader().getResourceAsStream("com/sun/identity/console/twoBtnsPageTitle.xml"));
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste ptModel.setValue("button1", "button.next");
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste ptModel.setValue("button2", "button.cancel");
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste private void createPropertyModel() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste propertySheetModel = new AMPropertySheetModel(getClass().getClassLoader()
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste .getResourceAsStream("com/sun/identity/console/propertyAuditConfigSelect.xml"));
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste propertySheetModel.clear();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @Override
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste public void beginDisplay(DisplayEvent event) throws ModelControlException {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste super.beginDisplay(event);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste try {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste AbstractAuditModel model = (AbstractAuditModel) getModel();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste Set<String> auditHandlerTypes = model.getEventHandlerTypeNames();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste OptionList optionList = new OptionList();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste for (String type : auditHandlerTypes) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste optionList.add(type, type);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste CCRadioButton rb = (CCRadioButton) getChild(RB_EVENT_HANDLER);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste rb.setOptions(optionList);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste rb.setValue(optionList.getValue(0));
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste } catch (AMConsoleException e) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste setInlineAlertMessage(TYPE_ERROR, ERROR_MESSAGE, e.getMessage());
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste /**
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Handles Cancel request.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @param event Request invocation event
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @SuppressWarnings("unused")
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste public void handleButton2Request(RequestInvocationEvent event) {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste String url = (String) ((List) getPageSessionAttribute(PG_SESSION_PROFILE_VIEWBEANS)).get(0);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste AMPostViewBean vb = (AMPostViewBean) getViewBean(AMPostViewBean.class);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste backTrail();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste passPgSessionMap(vb);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste vb.setTargetViewBeanURL(url);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste vb.forwardTo(getRequestContext());
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste /**
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * Handles Next request.
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste *
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste * @param event Request invocation event
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste */
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste @SuppressWarnings("unused")
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste public void handleButton1Request(RequestInvocationEvent event) throws ModelControlException {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste String subSchema = (String) getDisplayFieldValue(RB_EVENT_HANDLER);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste setPageSessionAttribute(AUDIT_HANDLER_TYPE, subSchema);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste ViewBean vb = getAddViewBean();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste unlockPageTrailForSwapping();
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste passPgSessionMap(vb);
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste vb.forwardTo(getRequestContext());
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected String getBreadCrumbDisplayName() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste return "breadcrumbs.services.subschema.select";
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste protected boolean startPageTrail() {
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste return false;
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste }
62639ee1329be2d687701dfa01fc006314440bf7Jaco Jooste}