All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.larmic.butterfaces.resolver.ClientBehaviorResolver Maven / Gradle / Ivy

package de.larmic.butterfaces.resolver;

import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
import javax.faces.component.behavior.AjaxBehavior;
import javax.faces.component.behavior.ClientBehavior;
import javax.faces.component.behavior.ClientBehaviorHolder;
import java.util.List;
import java.util.Map;

public class ClientBehaviorResolver {

    public static AjaxBehavior resolveActiveAjaxBehavior(final UIComponent component, final String event) {
        if (component instanceof ClientBehaviorHolder) {
            return findAjaxBehavior(((ClientBehaviorHolder) component).getClientBehaviors(), event);
        }

        return null;
    }

    public static AjaxBehavior resolveActiveAjaxBehavior(final UIComponentBase component, final String event) {
        return findAjaxBehavior(component.getClientBehaviors(), event);
    }

    private static AjaxBehavior findAjaxBehavior(Map> behaviors, String event) {
        if (behaviors.containsKey(event)) {
            final ClientBehavior clientBehavior = behaviors.get(event).get(0);

            if (clientBehavior instanceof AjaxBehavior && !((AjaxBehavior) clientBehavior).isDisabled()) {
                return ((AjaxBehavior) clientBehavior);
            }
        }

        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy