package is.idega.idegaweb.marathon.presentation.crew;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlForm;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import com.idega.presentation.IWBaseComponent;
import com.idega.presentation.IWContext;
import com.idega.presentation.text.Text;
/**
*
* @author <a href="civilis@idega.com">Vytautas Čivilis</a>
* @version $Revision: 1.4 $
*
* Last modified: $Date: 2008/01/12 19:06:46 $ by $Author: civilis $
*
*/
public class UICrewsOverview extends IWBaseComponent {
public static final String COMPONENT_TYPE = "CrewsOverview";
private static final String CrewsOverviewListFacet = "CrewsOverviewList";
private static final String CrewRegistrationWizardFormFacet = "CrewRegistrationWizardForm";
private static final String CrewViewFacetFacet = "CrewViewFacet";
public static final String crewManageBeanExp = "#{crewManageBean}";
public static final String crewManageBean_startNewCrewRegistrationExp = "#{crewManageBean.startNewCrewRegistration}";
public static final String crewManageBean_wizardModeExp = "#{crewManageBean.wizardMode}";
public static final String crewManageBean_crewManageHeaderValueExp = "#{crewManageBean.crewManageHeaderValue}";
public static final String crewManageBean_crewLabelForOwnerExp = "#{crewManageBean.crewLabelForOwner}";
public static final String crewManageBean_runsExp = "#{crewManageBean.runs}";
public static final String crewManageBean_validateRunSelectionExp = "#{crewManageBean.validateRunSelection}";
public static final String crewManageBean_runIdForOwnerExp = "#{crewManageBean.runIdForOwner}";
public static final String crewManageBean_createCrewExp = "#{crewManageBean.createCrew}";
public static final String crewManageBean_editCrewExp = "#{crewManageBean.editCrew}";
public static final String crewManageBean_updateCrewExp = "#{crewManageBean.updateCrew}";
public static final String crewManageBean_deleteCrewExp = "#{crewManageBean.deleteCrew}";
public static final String crewManageBean_acceptInvitationExp = "#{crewManageBean.acceptInvitation}";
public static final String crewManageBean_rejectInvitationExp = "#{crewManageBean.rejectInvitation}";
public static final String crewManageBean_viewCrewsListExp = "#{crewManageBean.viewCrewsList}";
public static final String crewManageBean_viewCrewViewExp = "#{crewManageBean.viewCrewView}";
public static final String crewManageBean_crewViewModeExp = "#{crewManageBean.crewViewMode}";
public static final String crewManageBean_crewViewHeaderExp = "#{crewManageBean.crewViewHeader}";
public static final String crewMembersInvitationBean_deleteMemberExp = "#{crewMembersInvitationBean.deleteMember}";
public static final String crewMembersInvitationBean_inviteMemberExp = "#{crewMembersInvitationBean.inviteMember}";
public static final String crewMembersInvitationBean_membersListExp = "#{crewMembersInvitationBean.membersList}";
public static final String crewMembersInvitationBean_deleteMemberParticipantIdExp = "#{crewMembersInvitationBean.deleteMemberParticipantId}";
public static final String crewMembersInvitationBean_addMemberParticipantIdExp = "#{crewMembersInvitationBean.addMemberParticipantId}";
public static final String crewMembersInvitationBean_searchStringExp = "#{crewMembersInvitationBean.searchString}";
public static final String crewMembersInvitationBean_searchExp = "#{crewMembersInvitationBean.search}";
public static final String crewMembersInvitationBean_searchResultListRenderedExp = "#{crewMembersInvitationBean.searchResultListRendered}";
public static final String crewMembersInvitationBean_forceIdHackExp = "#{crewMembersInvitationBean.forceIdHack}";
public static final String crewMembersInvitationBean_headerExp = "#{crewMembersInvitationBean.header}";
public static final String crewMembersInvitationBean_searchResultsExp = "#{crewMembersInvitationBean.searchResults}";
public static final String crewEditWizardBeanExp = "#{crewEditWizardBean}";
public static final String crewEditWizardBean_newCrewModeExp = "#{crewEditWizardBean.newCrewMode}";
public static final String crewEditWizardBean_modeExp = "#{crewEditWizardBean.mode}";
public static final String crewEditWizardBean_editCrewModeExp = "#{crewEditWizardBean.editCrewMode}";
public static final String crewEditWizardBean_runLabelExp = "#{crewEditWizardBean.runLabel}";
public static final String crewEditWizardBean_participantIdExp = "#{crewEditWizardBean.participantId}";
public static final String crewsOverviewListBean_crewsOverviewListExp = "#{crewsOverviewListBean.crewsOverviewList}";
public static final String crewsOverviewListBean_forceIdHackExp = "#{crewsOverviewListBean.forceIdHack}";
/**
* @Override
*/
protected void initializeComponent(FacesContext context) {
UICrewsOverviewList crewsOverviewList = (UICrewsOverviewList)context.getApplication().createComponent(UICrewsOverviewList.COMPONENT_TYPE);
crewsOverviewList.setId(context.getViewRoot().createUniqueId());
getFacets().put(CrewsOverviewListFacet, crewsOverviewList);
UICrewView crewView = (UICrewView)context.getApplication().createComponent(UICrewView.COMPONENT_TYPE);
crewView.setId(context.getViewRoot().createUniqueId());
getFacets().put(CrewViewFacetFacet, crewView);
HtmlForm form = (HtmlForm)context.getApplication().createComponent(HtmlForm.COMPONENT_TYPE);
form.setId(context.getViewRoot().createUniqueId());
form.getChildren().add(context.getApplication().createComponent(UICrewRegistrationWizard.COMPONENT_TYPE));
getFacets().put(CrewRegistrationWizardFormFacet, form);
}
/**
* @Override
*/
public void encodeChildren(FacesContext context) throws IOException {
IWContext iwc = IWContext.getIWContext(FacesContext.getCurrentInstance());
if (!iwc.isLoggedOn()) {
renderChild(context, new Text("No user logged on..."));
return;
}
UIComponent stepComponent;
String editCrewId = (String)context.getExternalContext().getRequestParameterMap().get(UICrewsOverviewList.EDIT_CREW_ID);
ValueBinding vb = context.getApplication().createValueBinding(crewManageBeanExp);
CrewManageBean crewViewBean = (CrewManageBean)vb.getValue(context);
if(editCrewId != null) {
vb = context.getApplication().createValueBinding(crewEditWizardBeanExp);
CrewEditWizardBean crewEditWizardBean = (CrewEditWizardBean)vb.getValue(context);
crewEditWizardBean.setCrewEditId(new Integer(editCrewId));
crewViewBean.setWizardMode(true);
}
if(crewViewBean.isWizardMode())
stepComponent = getFacet(CrewRegistrationWizardFormFacet);
else if(crewViewBean.isCrewViewMode())
stepComponent = getFacet(CrewViewFacetFacet);
else
stepComponent = getFacet(CrewsOverviewListFacet);
if(stepComponent != null) {
stepComponent.setRendered(true);
renderChild(context, stepComponent);
} else {
Logger.getLogger(getClass().getName()).log(Level.WARNING, "No component resolved for UICrewsOverview");
}
}
/**
* @Override
*/
public boolean getRendersChildren() {
return true;
}
}