public void onComponentCreated()

in myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/EffectsHandler.java [52:94]


    public void onComponentCreated(FaceletContext faceletContext, UIComponent uiComponent, UIComponent parent) {
        super.onComponentPopulated(faceletContext, uiComponent, parent);

        String eventName = getEventName(faceletContext);

        if (!(parent instanceof ClientBehaviorHolder)){
            throw new FacesException("Created component is not a ClientBehaviorHolder");
        }

        if (!(uiComponent instanceof AbstractEffects))
            throw new FacesException("Created component is not a AbstractEffects");

        AbstractEffects component = (AbstractEffects) uiComponent;

        FacesContext context = faceletContext.getFacesContext();
        Application app = context.getApplication();

        EffectsActivationBehavior activationBehavior = (EffectsActivationBehavior) app.createBehavior(EffectsActivationBehavior.ID);

        String effectsIdToHandle = component.getClientId(faceletContext.getFacesContext());
        if(!StringUtils.isBlank(component.getAdditionalStyleClassToActivate()))
            effectsIdToHandle = effectsIdToHandle + " " + component.getAdditionalStyleClassToActivate();

        activationBehavior.setEffectIdToHandle(effectsIdToHandle);

        if(StringUtils.isBlank(eventName))
            eventName = ((ClientBehaviorHolder) parent).getDefaultEventName();

        ((ClientBehaviorHolder) parent).addClientBehavior(eventName, activationBehavior);

        if(!StringUtils.isBlank(eventName) || deactivationEvents!=null){
            EffectsDeactivationBehavior deactivationBehavior = (EffectsDeactivationBehavior) app.createBehavior(EffectsDeactivationBehavior.ID);

            deactivationBehavior.setEffectIdToHandle(effectsIdToHandle);

            String[] deactivationEventNames = getDeactivationEventNames(faceletContext);
            if(deactivationEventNames!=null){
                for (String deactivationEventName : deactivationEventNames) {
                    ((ClientBehaviorHolder) parent).addClientBehavior(deactivationEventName, deactivationBehavior);
                }
            }
        }
    }