/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* https://opensso.dev.java.net/public/CDDLv1.0.html or
* opensso/legal/CDDLv1.0.txt
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at opensso/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* $Id: FSSAMLTrustedPartnersAddViewBean.java,v 1.3 2009/01/16 19:30:00 asyhuang Exp $
*
*/
package com.sun.identity.console.federation;
import com.iplanet.jato.model.ModelControlException;
import com.iplanet.jato.view.event.DisplayEvent;
import com.iplanet.jato.view.event.RequestInvocationEvent;
import com.sun.identity.console.base.AMPipeDelimitAttrTokenizer;
import com.sun.identity.console.base.model.AMConsoleException;
import com.sun.identity.console.federation.model.FSSAMLServiceModel;
import com.sun.identity.saml.common.SAMLConstants;
import com.sun.web.ui.model.CCPageTitleModel;
import java.util.Iterator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class FSSAMLTrustedPartnersAddViewBean
extends FSSAMLTrustedPartnersViewBeanBase {
public static final String DEFAULT_DISPLAY_URL =
"/console/federation/FSSAMLTrustedPartnersAdd.jsp";
private static final String SAML_TRUSTED_PARTNERS =
"iplanet-am-saml-partner-urls";
public FSSAMLTrustedPartnersAddViewBean (
String pageName,
String defaultDisplayURL
) {
super (pageName, defaultDisplayURL);
}
public FSSAMLTrustedPartnersAddViewBean () {
super ("FSSAMLTrustedPartnersAdd", DEFAULT_DISPLAY_URL);
}
public void beginDisplay(DisplayEvent event)
throws ModelControlException {
super.beginDisplay(event);
Set attributeNames = getAttributeNames();
if (attributeNames.contains(SAMLConstants.SITEATTRIBUTEMAPPER)) {
String siteAttrMapper = (String)getDisplayFieldValue(
SAMLConstants.SITEATTRIBUTEMAPPER);
if ((siteAttrMapper == null) || (siteAttrMapper.length() == 0)) {
setDisplayFieldValue(SAMLConstants.SITEATTRIBUTEMAPPER,
SAMLConstants.SITEATTRIBUTEMAPPERDEFAULT);
}
}
}
protected void createPageTitleModel () {
ptModel = new CCPageTitleModel (
getClass ().getClassLoader ().getResourceAsStream (
"com/sun/identity/console/threeBtnsPageTitle.xml"));
ptModel.setPageTitleText (getPageTitleText ());
ptModel.setValue ("button1", "button.previous");
ptModel.setValue ("button2", "button.finish");
ptModel.setValue ("button3", "button.cancel");
}
protected String getPageTitleText () {
return "saml.profile.trustedpartners.create.page.title";
}
public void handleButton1Request (RequestInvocationEvent event) {
FSSAMLSelectTrustedPartnerTypeViewBean vb =
(FSSAMLSelectTrustedPartnerTypeViewBean)getViewBean (
FSSAMLSelectTrustedPartnerTypeViewBean.class);
unlockPageTrailForSwapping ();
passPgSessionMap (vb);
vb.forwardTo (getRequestContext ());
}
public void handleButton2Request (RequestInvocationEvent event)
throws ModelControlException {
super.handleButton1Request (event);
}
public void handleButton3Request (RequestInvocationEvent event)
throws ModelControlException {
super.handleButton2Request (event);
}
protected void handleButton1Request (Map values)
throws AMConsoleException {
String value = AMPipeDelimitAttrTokenizer.getInstance ().deTokenizes (values);
// get the existing partners here
FSSAMLServiceModel model = (FSSAMLServiceModel)getModel ();
Map attrValues = model.getAttributeValues ();
Set partners = null;
Iterator iter = attrValues.keySet ().iterator ();
while ( iter.hasNext () ){
String name = (String)iter.next ();
if(name.equals ("iplanet-am-saml-partner-urls")){
partners = (Set)attrValues.get (name);
}
}
if ((partners == null) || partners.isEmpty ()) {
partners = new HashSet ();
}
// add new partner to existing partner set
partners.add (value);
Map map = new HashMap ();
map.put ("iplanet-am-saml-partner-urls", partners);
model.setAttributeValues (map);
forwardToFederationView ();
}
protected boolean isCreateViewBean () {
return true;
}
protected String getBreadCrumbDisplayName () {
return "breadcrumbs.saml.addTrustedPartner";
}
protected boolean startPageTrail () {
return false;
}
}