package is.idega.idegaweb.marathon.presentation; import is.idega.idegaweb.marathon.presentation.user.runoverview.DistanceChangeStepBean; import is.idega.idegaweb.marathon.presentation.user.runoverview.UIDistanceChangeWizard; import is.idega.idegaweb.marathon.presentation.user.runoverview.DistanceChangeWizardBean; import is.idega.idegaweb.marathon.presentation.user.runoverview.UIUserRunOverviewList; import java.io.IOException; 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.11 $ * * Last modified: $Date: 2008/01/08 19:20:25 $ by $Author: civilis $ * */ public class UserRunOverview extends IWBaseComponent { private static final String UserRunOverviewListFacet = "UserRunOverviewList"; private static final String DistanceChangeWizardFormFacet = "DistanceChangeWizardForm"; /** * @Override */ protected void initializeComponent(FacesContext context) { getFacets().put(UserRunOverviewListFacet, new UIUserRunOverviewList()); HtmlForm form = (HtmlForm)context.getApplication().createComponent(HtmlForm.COMPONENT_TYPE); form.setId(context.getViewRoot().createUniqueId()); form.getChildren().add(context.getApplication().createComponent(UIDistanceChangeWizard.COMPONENT_TYPE)); getFacets().put(DistanceChangeWizardFormFacet, 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; } String participantId = (String)context.getExternalContext().getRequestParameterMap().get(UIUserRunOverviewList.PARTICIPANT_PARAM); UIComponent stepComponent; ValueBinding vb = context.getApplication().createValueBinding(UIDistanceChangeWizard.distanceChangeStepBeanExp); DistanceChangeStepBean distanceChangeStepBean = (DistanceChangeStepBean)vb.getValue(context); if(participantId != null) { vb = context.getApplication().createValueBinding(UIDistanceChangeWizard.distanceChangeWizardBeanExp); DistanceChangeWizardBean distanceChangeWizardBean = (DistanceChangeWizardBean)vb.getValue(context); distanceChangeWizardBean.setParticipantId(participantId); distanceChangeStepBean.setWizardMode(true); } if(distanceChangeStepBean.isWizardMode()) stepComponent = getFacet(DistanceChangeWizardFormFacet); else stepComponent = getFacet(UserRunOverviewListFacet); if(stepComponent != null) { stepComponent.setRendered(true); renderChild(context, stepComponent); } } /** * @Override */ public boolean getRendersChildren() { return true; } }