
org.richfaces.renderkit.html.ProgressBarState Maven / Gradle / Ivy
/*
* JBoss, Home of Professional Open Source
* Copyright 2010, Red Hat, Inc. and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.richfaces.renderkit.html;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.richfaces.component.util.HtmlUtil;
enum ProgressBarState {
initialState {
@Override
public String getStateClientId(FacesContext context, UIComponent component) {
return component.getClientId(context) + ".init";
}
@Override
public String getStyleClass(FacesContext context, UIComponent component) {
return HtmlUtil.concatClasses("rf-pb-init", component.getAttributes().get("initialClass"));
}
@Override
public void encodeContent(FacesContext context, UIComponent component) throws IOException {
component.getFacet("initial").encodeAll(context);
}
@Override
public boolean hasContent(FacesContext context, UIComponent component) {
UIComponent facet = component.getFacet("initial");
return facet != null && facet.isRendered();
}
@Override
public void encodeStateForMetaComponent(FacesContext context, UIComponent component, ProgressBarStateEncoder encoder)
throws IOException {
encoder.encodeInitialState(context, component, this);
}
},
progressState {
@Override
public String getStateClientId(FacesContext context, UIComponent component) {
return component.getClientId(context) + ".lbl";
}
@Override
public String getStyleClass(FacesContext context, UIComponent component) {
return "rf-pb-lbl";
}
@Override
public void encodeContent(FacesContext context, UIComponent component) throws IOException {
ResponseWriter responseWriter = context.getResponseWriter();
if (component.getChildCount() > 0) {
for (UIComponent child : component.getChildren()) {
child.encodeAll(context);
}
}
Object label = component.getAttributes().get("label");
if (label != null) {
responseWriter.writeText(label, null);
}
}
@Override
public boolean hasContent(FacesContext context, UIComponent component) {
return true;
}
@Override
public void encodeStateForMetaComponent(FacesContext context, UIComponent component, ProgressBarStateEncoder encoder)
throws IOException {
encoder.encodeProgressStateContent(context, component, this);
}
},
finishState {
@Override
public String getStateClientId(FacesContext context, UIComponent component) {
return component.getClientId(context) + ".fin";
}
@Override
public String getStyleClass(FacesContext context, UIComponent component) {
return HtmlUtil.concatClasses("rf-pb-fin", component.getAttributes().get("finishClass"));
}
@Override
public void encodeContent(FacesContext context, UIComponent component) throws IOException {
UIComponent facet = component.getFacet("finish");
if (facet != null) {
facet.encodeAll(context);
}
}
@Override
public boolean hasContent(FacesContext context, UIComponent component) {
UIComponent facet = component.getFacet("finish");
return facet != null && facet.isRendered();
}
@Override
public void encodeStateForMetaComponent(FacesContext context, UIComponent component, ProgressBarStateEncoder encoder)
throws IOException {
encoder.encodeCompleteState(context, component, this);
}
};
public abstract String getStateClientId(FacesContext context, UIComponent component);
public abstract String getStyleClass(FacesContext context, UIComponent component);
public abstract void encodeContent(FacesContext context, UIComponent component) throws IOException;
public abstract boolean hasContent(FacesContext context, UIComponent component);
public abstract void encodeStateForMetaComponent(FacesContext context, UIComponent component,
ProgressBarStateEncoder encoder) throws IOException;
}