package is.idega.idegaweb.marathon.presentation.crew;
import is.idega.idegaweb.marathon.IWBundleStarter;
import java.io.IOException;
import javax.faces.application.Application;
import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import org.apache.myfaces.component.html.ext.HtmlDataTable;
import org.apache.myfaces.custom.column.HtmlSimpleColumn;
import org.apache.myfaces.custom.htmlTag.HtmlTag;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWBaseComponent;
import com.idega.presentation.IWContext;
/**
*
* @author <a href="civilis@idega.com">Vytautas Čivilis</a>
* @version $Revision: 1.3 $
*
* Last modified: $Date: 2008/01/14 21:05:57 $ by $Author: civilis $
*
*/
public class UICrewView extends IWBaseComponent {
public static final String COMPONENT_TYPE = "idega_CrewView";
public static final String member_var = UICrewMembersInivitationStep.member_var;
public static final String member_name = UICrewMembersInivitationStep.member_name;
public static final String member_nameExp = UICrewMembersInivitationStep.member_nameExp;
public static final String member_role = UICrewMembersInivitationStep.member_role;
public static final String member_roleExp = UICrewMembersInivitationStep.member_roleExp;
private static final String containerFacet = "container";
private static final String crewVuewStyleClass = "marathonCrewView";
private static final String headerStyleClass = "header";
private static final String membersListStyleClass = "membersList";
/**
* @Override
*/
protected void initializeComponent(FacesContext context) {
Application application = context.getApplication();
HtmlForm form = (HtmlForm)context.getApplication().createComponent(HtmlForm.COMPONENT_TYPE);
form.setId(context.getViewRoot().createUniqueId());
getFacets().put(containerFacet, form);
HtmlTag containerDiv = (HtmlTag)application.createComponent(HtmlTag.COMPONENT_TYPE);
containerDiv.setStyleClass(crewVuewStyleClass);
containerDiv.setId(context.getViewRoot().createUniqueId());
containerDiv.setValue(divTag);
form.getChildren().add(containerDiv);
HtmlTag div = (HtmlTag)application.createComponent(HtmlTag.COMPONENT_TYPE);
div.setId(context.getViewRoot().createUniqueId());
div.setValue(divTag);
div.setStyleClass(headerStyleClass);
containerDiv.getChildren().add(div);
HtmlOutputText text = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
text.setId(context.getViewRoot().createUniqueId());
text.setValueBinding(valueAtt, application.createValueBinding(UICrewsOverview.crewManageBean_crewViewHeaderExp));
div.getChildren().add(text);
containerDiv.getChildren().add(createMembersListArea(context));
}
protected UIComponent createMembersListArea(FacesContext context) {
Application application = context.getApplication();
IWContext iwc = IWContext.getIWContext(context);
IWResourceBundle iwrb = iwc.getIWMainApplication().getBundle(IWBundleStarter.IW_BUNDLE_IDENTIFIER).getResourceBundle(iwc);
HtmlTag containerDiv = (HtmlTag)application.createComponent(HtmlTag.COMPONENT_TYPE);
containerDiv.setId(context.getViewRoot().createUniqueId());
containerDiv.setValue(divTag);
containerDiv.setStyleClass(membersListStyleClass);
HtmlDataTable membersTable = (HtmlDataTable)application.createComponent(HtmlDataTable.COMPONENT_TYPE);
membersTable.setId(context.getViewRoot().createUniqueId());
membersTable.setVar(member_var);
membersTable.setValueBinding(valueAtt, context.getApplication().createValueBinding(UICrewsOverview.crewMembersInvitationBean_membersListExp));
membersTable.getChildren().add(createColumn(context, member_nameExp, iwrb.getLocalizedString("crew.crewView.memberName", "Member name")));
membersTable.getChildren().add(createColumn(context, member_roleExp, iwrb.getLocalizedString("crew.invitation.memberRole", "Member role")));
containerDiv.getChildren().add(membersTable);
HtmlCommandButton viewCrewsListButton = (HtmlCommandButton)application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
viewCrewsListButton.setId(context.getViewRoot().createUniqueId());
viewCrewsListButton.setValue(iwrb.getLocalizedString("crew.crewView.viewCrewsList", "View crews list"));
viewCrewsListButton.setAction(application.createMethodBinding(UICrewsOverview.crewManageBean_viewCrewsListExp, null));
containerDiv.getChildren().add(viewCrewsListButton);
return containerDiv;
}
protected UIColumn createColumn(FacesContext context, UIComponent child, String headerText) {
HtmlSimpleColumn column = (HtmlSimpleColumn)context.getApplication().createComponent(HtmlSimpleColumn.COMPONENT_TYPE);
column.getChildren().add(child);
if(headerText != null) {
HtmlOutputText text = (HtmlOutputText)context.getApplication().createComponent(HtmlOutputText.COMPONENT_TYPE);
text.setValue(headerText);
column.setHeader(text);
}
return column;
}
protected UIColumn createColumn(FacesContext context, String textExpression, String headerText) {
HtmlOutputText text = (HtmlOutputText)context.getApplication().createComponent(HtmlOutputText.COMPONENT_TYPE);
text.setValueBinding(valueAtt, context.getApplication().createValueBinding(textExpression));
return createColumn(context, text, headerText);
}
/**
* @Override
*/
public void encodeChildren(FacesContext context) throws IOException {
renderChild(context, getFacet(containerFacet));
}
/**
* @Override
*/
public boolean getRendersChildren() {
return true;
}
}