package org.richfaces.bootstrap.function; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import org.richfaces.bootstrap.javascript.api.Hideable; import org.richfaces.bootstrap.javascript.api.Showable; import org.richfaces.bootstrap.javascript.api.Toggleable; import org.richfaces.cdk.annotations.Function; import org.richfaces.ui.misc.RichFunction; /** * Bootstrap specific functions to operate with client-side component API. * * @author Lukas Fryc */ public final class BootstrapFunction { @Function public static String toggle(String target) { return bootstrapCall(target, Toggleable.class, "toggle"); } @Function public static String hide(String target) { return bootstrapCall(target, Hideable.class, "hide"); } @Function public static String show(String target) { return bootstrapCall(target, Showable.class, "show"); } private static String bootstrapCall(String target, Class<?> type, String operationName) { FacesContext facesContext = FacesContext.getCurrentInstance(); UIComponent component = RichFunction.findComponent(facesContext, target); BootstrapOperation operation = new BootstrapOperation(facesContext, component, operationName); operation.verifyComponent(type); String call = operation.getClientSideCall(); return call; } }