/**
   * Adds sub configuration.
   *
   * @param event Request Invocation Event.
   */
  public void handleTblSubConfigButtonAddRequest(RequestInvocationEvent event) {
    SubSchemaModel model = (SubSchemaModel) getModel();
    Map createable = model.getCreateableSubSchemaNames();

    if (!createable.isEmpty()) {
      if (createable.size() > 1) {
        SubSchemaTypeSelectViewBean vb =
            (SubSchemaTypeSelectViewBean) getViewBean(SubSchemaTypeSelectViewBean.class);
        addViewBeanClassToPageSession();
        unlockPageTrail();
        passPgSessionMap(vb);
        vb.forwardTo(getRequestContext());
      } else {
        String subSchema = (String) createable.keySet().iterator().next();
        setPageSessionAttribute(AMServiceProfile.PG_SESSION_SUB_SCHEMA_NAME, subSchema);
        SubConfigAddViewBean vb = (SubConfigAddViewBean) getViewBean(SubConfigAddViewBean.class);
        addViewBeanClassToPageSession();
        unlockPageTrail();
        passPgSessionMap(vb);
        vb.forwardTo(getRequestContext());
      }
    } else {
      forwardTo();
    }
  }
  /**
   * Deletes sub configuration.
   *
   * @param event Request Invocation Event.
   * @throws ModelControlException if table model cannot be restored.
   */
  public void handleTblSubConfigButtonDeleteRequest(RequestInvocationEvent event)
      throws ModelControlException {
    submitCycle = true;
    CCActionTable tbl = (CCActionTable) getChild(AMPropertySheetModel.TBL_SUB_CONFIG);
    tbl.restoreStateData();
    CCActionTableModel tblModel = (CCActionTableModel) tbl.getModel();
    Integer[] selected = tblModel.getSelectedRows();
    SerializedField szCache = (SerializedField) getChild(SZ_CACHE);
    List list = (List) szCache.getSerializedObj();
    Set names = new HashSet(selected.length * 2);

    for (int i = 0; i < selected.length; i++) {
      SMSubConfig sc = (SMSubConfig) list.get(selected[i].intValue());
      names.add(sc.getName());
    }

    try {
      SubSchemaModel model = (SubSchemaModel) getModel();
      model.deleteSubConfigurations(names);

      if (selected.length == 1) {
        setInlineAlertMessage(
            CCAlert.TYPE_INFO, "message.information", "subconfig.message.deleted");
      } else {
        setInlineAlertMessage(
            CCAlert.TYPE_INFO, "message.information", "subconfig.message.deleted.pural");
      }
    } catch (AMConsoleException e) {
      setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", e.getMessage());
    }

    submitCycle = false;
    forwardTo();
  }
 protected View createChild(String name) {
   if (!populatedSubConfigTable && name.equals(AMPropertySheetModel.TBL_SUB_CONFIG)) {
     populatedSubConfigTable = true;
     SubSchemaModel model = (SubSchemaModel) getModel();
     if (model.hasGlobalSubSchema()) {
       SerializedField szCache = (SerializedField) getChild(SZ_CACHE);
       populateTableModel((List) szCache.getSerializedObj());
     }
   }
   return super.createChild(name);
 }
  public void beginDisplay(DisplayEvent event) throws ModelControlException {
    super.beginDisplay(event);

    SubSchemaModel model = (SubSchemaModel) getModel();
    if (model.hasGlobalSubSchema()) {
      if (!submitCycle) {
        populateTableModel(model.getSubConfigurations());
      }
      resetButtonState(AMPropertySheetModel.TBL_SUB_CONFIG_BUTTON_DELETE);

      Map createable = model.getCreateableSubSchemaNames();
      if (createable.isEmpty()) {
        resetButtonState(AMPropertySheetModel.TBL_SUB_CONFIG_BUTTON_ADD);
      } else {
        SubConfigModel scModel = getSubConfigModel();
        boolean canCreate = false;
        for (Iterator i = createable.keySet().iterator(); i.hasNext() && !canCreate; ) {
          String name = (String) i.next();
          String plugin = scModel.getSelectableSubConfigNamesPlugin(name);
          if (plugin == null) {
            canCreate = true;
          } else {
            Set subconfigNames = scModel.getSelectableConfigNames(name);
            canCreate = (subconfigNames != null) && !subconfigNames.isEmpty();
          }
        }
        disableButton(AMPropertySheetModel.TBL_SUB_CONFIG_BUTTON_ADD, !canCreate);
      }
    }
    if (serviceName.equals("iPlanetAMAuthHTTPBasicService")) {
      CCRadioButton radio =
          (CCRadioButton) getChild("iplanet-am-auth-http-basic-module-configured");
      if ((radio.getValue() == null) || (radio.getValue().equals(""))) {
        String defaultModule = new String();
        String realmName = SMSEntry.getRootSuffix();
        if (realmName != null) {
          List moduleList = AMAuthUtils.getModuleInstancesForHttpBasic(realmName);
          if (!moduleList.isEmpty()) {
            defaultModule = (String) moduleList.get(0);
            radio.setValue(defaultModule);
          }
        }
      }
    }
  }