
de.larmic.butterfaces.component.partrenderer.InnerComponentWrapperPartRenderer Maven / Gradle / Ivy
package de.larmic.butterfaces.component.partrenderer;
import java.io.IOException;
import javax.faces.component.UIInput;
import javax.faces.context.ResponseWriter;
import de.larmic.butterfaces.component.html.HtmlInputComponent;
import de.larmic.butterfaces.component.html.InputComponentFacet;
/**
* Created by larmic on 27.08.14.
*/
public class InnerComponentWrapperPartRenderer {
public static final String INPUT_GROUP_ADDON_LEFT = "input-group-addon-left";
public static final String INPUT_GROUP_ADDON_RIGHT = "input-group-addon-right";
public static final String INPUT_GROUP_BTN_LEFT = "input-group-btn-left";
public static final String INPUT_GROUP_BTN_RIGHT = "input-group-btn-right";
public void renderInnerWrapperBegin(final HtmlInputComponent component,
final ResponseWriter writer) throws IOException {
this.renderInnerWrapperBegin(component, writer, component.isReadonly());
}
public void renderInnerWrapperBegin(final HtmlInputComponent component,
final ResponseWriter writer,
final boolean readonly) throws IOException {
final UIInput uiComponent = (UIInput) component;
if (!readonly) {
writer.startElement("div", uiComponent);
writer.writeAttribute("class", this.createComponentStyleClass(component), null);
}
}
private String createComponentStyleClass(final HtmlInputComponent component) {
final StringBuilder componentStyleClass = new StringBuilder();
componentStyleClass.append(this.createDefaultStyleClass(component));
if (component.getSupportedFacets().contains(InputComponentFacet.BOOTSTRAP_INPUT_GROUP_ADDON)
&& (component.getFacet(INPUT_GROUP_ADDON_LEFT) != null || component.getFacet(INPUT_GROUP_ADDON_RIGHT) != null)
|| component.getSupportedFacets().contains(InputComponentFacet.BOOTSTRAP_INPUT_GROUP_BTN)
&& (component.getFacet(INPUT_GROUP_BTN_LEFT) != null || component.getFacet(INPUT_GROUP_BTN_RIGHT) != null)
|| component.getSupportedFacets().contains(InputComponentFacet.CALENDAR)) {
componentStyleClass.append(" input-group");
}
return componentStyleClass.toString();
}
private String createDefaultStyleClass(HtmlInputComponent component) {
final StringBuilder defaultStyleClass = new StringBuilder();
if (component.isHideLabel()) {
defaultStyleClass.append("butter-component-value-hiddenLabel");
}else {
defaultStyleClass.append("butter-component-value");
}
return defaultStyleClass.toString();
}
public void renderInnerWrapperEnd(final HtmlInputComponent component,
final ResponseWriter writer) throws IOException {
this.renderInnerWrapperEnd(component, writer, component.isReadonly());
}
public void renderInnerWrapperEnd(final HtmlInputComponent component,
final ResponseWriter writer,
final boolean readonly) throws IOException {
if (!readonly) {
final UIInput uiComponent = (UIInput) component;
writer.endElement("div");
writer.startElement("script", uiComponent);
writer.writeText("addLabelAttributeToInnerComponent('" + component.getClientId() + "', '"
+ component.getLabel() + "');", null);
writer.endElement("script");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy