/*
* Created on Mar 28, 2004
*/
package is.idega.idegaweb.member.isi.block.clubs.presentation;
import com.idega.core.builder.data.ICPage;
import com.idega.idegaweb.IWBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Page;
import com.idega.presentation.ui.PageIncluder;
/**
* This class simply checks the member.isi bundle for a bundle property
* ROOT_CLUB_ID to get the group id of the club it is getting info from.
*
* @author <a href="eiki@idega.is>Eirikur Hrafnsson</a>
*/
public class ClubPageIncluder extends PageIncluder {
public static String BUNDLE_PROPERTY_ROOT_CLUB_ID = "ROOT_CLUB_ID";
public static String PARAM_ROOT_CLUB_ID = "RO_CL_ID";
public static String PARAM_CALLING_PAGE_ID = "CL_PA_ID";
public static String PARAM_DIVISION_INFO_PAGE_ID = "DI_INF_PA_ID";
public static String PARAM_CALLING_DOMAIN = "CL_DM";
public static final String IW_BUNDLE_IDENTIFIER = "is.idega.idegaweb.member.isi";
private Page parentPage;
private String menuStyleSrc = "cssmenu/CSSMultiLevelMenu.css";
private ICPage page;
private String rootClubParamName = null; // id of club is sent with this parametere (if not null)
private String _callingDomain = null;
public static String _divisionInfoPageId = null;
public ClubPageIncluder() {
super();
}
public ClubPageIncluder(String URL) {
super(URL);
}
public void main(IWContext iwc) throws Exception {
super.main(iwc);
this.parentPage = this.getParentPage();
this.parentPage.addStyleSheetURL(iwc.getIWMainApplication().getCoreBundle().getVirtualPathWithFileNameString(this.menuStyleSrc));
}
protected String finalizeLocationString(String location, IWContext iwc) {
IWBundle bundle = this.getBundle(iwc);
String groupId = bundle.getProperty(BUNDLE_PROPERTY_ROOT_CLUB_ID);
StringBuffer finalUrl = new StringBuffer(location);
if(groupId!=null) {
if(location.endsWith("/")){//check if the url ends with a slash
finalUrl.append("?");
}
else{//no slash at end
if( finalUrl.indexOf("?")==-1 ){//check if the url contains a ?
if(finalUrl.indexOf("/",8)!=-1){//check if the url contains a slash
finalUrl.append("?");
}
else{
finalUrl.append("/?");
}
}
else{//just add to the parameters
finalUrl.append("&");
}
}
//add the extra parameters
//the division id
finalUrl.append(PARAM_ROOT_CLUB_ID).append("=").append(groupId);
if(this.rootClubParamName!=null) {
finalUrl.append("&").append(this.rootClubParamName).append("=").append(groupId);
}
if(this.page!=null) {
finalUrl.append("&").append(PARAM_CALLING_PAGE_ID).append("=").append( this.page.getPrimaryKey().toString());
}
if(this._callingDomain!=null) {
finalUrl.append("&").append(PARAM_CALLING_DOMAIN).append("=").append( this._callingDomain );
}
if(_divisionInfoPageId!=null) {
finalUrl.append("&").append(PARAM_DIVISION_INFO_PAGE_ID).append("=").append( _divisionInfoPageId );
}
/*else {
//the page the includer is currently on
IWApplicationContext iwac = iwc.getIWMainApplication().getIWApplicationContext();
BuilderService bs;
try {
bs = BuilderServiceFactory.getBuilderService(iwac);
finalUrl.append("&").append(PARAM_CALLING_PAGE_ID).append("=").append(bs.getCurrentPageId(iwc));
} catch (Exception e) {
e.printStackTrace();
}
}*/
}
String strFinalUrl = finalUrl.toString();
return strFinalUrl;
}
public String getBundleIdentifier() {
return IW_BUNDLE_IDENTIFIER;
}
public void setRootClubParamName(String value) {
this.rootClubParamName = value;
}
public void setCallingPage(ICPage page) {
this.page = page;
}
public void setCallingDomain(String callingDomain) {
this._callingDomain = callingDomain;
}
public void setDivisionInfoPageId(ICPage page) {
_divisionInfoPageId = page.getPrimaryKey().toString();
}
}