package com.loomis.jsf.component.wiki; import javax.faces.context.FacesContext; import javax.faces.render.Renderer; import org.apache.myfaces.custom.date.HtmlDateRenderer; import org.apache.myfaces.custom.date.HtmlInputDate; import org.apache.myfaces.custom.div.Div; import com.loomis.jsf.component.utils.LSComponentUtil; public class WikiDate extends HtmlInputDate implements WikiComponent { public static final String DEFAULT_RENDERER_TYPE = "com.loomis.jsf.component.wiki.WikiDateRenderer"; public static final String COMPONENT_TYPE = "com.loomis.jsf.component.wiki.WikiDate"; public static final String COMPONENT_FAMILY = "javax.faces.Input"; private Boolean wikiEnabled; public WikiDate() { setRendererType(DEFAULT_RENDERER_TYPE); } public static String getCOMPONENT_FAMILY() { return COMPONENT_FAMILY; } public Object saveState(FacesContext context) { Object[] values = new Object[2]; values[0] = super.saveState(context); values[1] = isWikiEnabled(); return values; } @Override public void restoreState(FacesContext context, Object state) { Object values[] = (Object[])state; super.restoreState(context, values[0]); if (values[1] != null) setWikiEnabled((Boolean) values[1]); } public Boolean isWikiEnabled() { Object objVal = LSComponentUtil.getValue(this, getFacesContext(), "wikiEnabled", Boolean.TRUE); return wikiEnabled != null ? wikiEnabled : (Boolean)objVal; } public void setWikiEnabled(Boolean wikiEnabled) { this.wikiEnabled = wikiEnabled; } public Renderer getOriginalRenderer() { return new HtmlDateRenderer(); } public Div getDisplayDiv() { return new Div(); } }