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

jakarta.faces.render.ClientBehaviorRenderer Maven / Gradle / Ivy

Go to download

Jakarta Faces defines an MVC framework for building user interfaces for web applications, including UI components, state management, event handing, input validation, page navigation, and support for internationalization and accessibility.

There is a newer version: 4.1.2
Show newest version
/*
 * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.faces.render;

import jakarta.faces.component.UIComponent;
import jakarta.faces.component.behavior.ClientBehavior;
import jakarta.faces.component.behavior.ClientBehaviorContext;
import jakarta.faces.context.FacesContext;

/**
 * 

* A ClientBehaviorRenderer produces the client-side script that implements a * {@link ClientBehavior}'s client-side logic. It can also enqueue server-side * {@link jakarta.faces.event.BehaviorEvent}s that may be processed later by event listeners that have registered an * interest. *

* *

* Individual {@link ClientBehaviorRenderer} instances will be instantiated as requested during the rendering process, * and will remain in existence for the remainder of the lifetime of a web application. Because each instance may be * invoked from more than one request processing thread simultaneously, they MUST be programmed in a thread-safe manner. *

* * @since 2.0 */ public abstract class ClientBehaviorRenderer { // ------------------------------------------------------ Rendering Methods /** *

* Return the script that implements this ClientBehavior's client-side logic. The default implementation returns * null. *

* *

* ClientBehaviorRenderer.getScript() implementations are allowed to return null to indicate that no script is required * for this particular getScript() call. For example, a ClientBehaviorRenderer implementation may return null if the * associated ClientBehavior is disabled. *

* * @param behaviorContext the {@link ClientBehaviorContext} that provides properties that might influence this * getScript() call. Note that ClientBehaviorContext instances are short-lived objects that are only valid for the * duration of the call to getScript(). ClientBehaviorRenderer implementations must not hold onto references to * ClientBehaviorContexts. * * @param behavior the ClientBehavior instance that generates script. * * @return script that provides the client-side behavior, or null if no script is required. * * @since 2.0 * */ public String getScript(ClientBehaviorContext behaviorContext, ClientBehavior behavior) { return null; } /** *

* Decode any new state of this {@link ClientBehavior} from the request contained in the specified {@link FacesContext}. *

* *

* During decoding, events may be enqueued for later processing (by event listeners who have registered an interest), by * calling queueEvent(). *

* * @param context {@link FacesContext} for the request we are processing * @param component {@link UIComponent} the component associated with this * {@link jakarta.faces.component.behavior.Behavior} * @param behavior {@link ClientBehavior} the behavior instance * * @throws NullPointerException if context, component behavior is * null * * @since 2.0 */ public void decode(FacesContext context, UIComponent component, ClientBehavior behavior) { if (null == context || null == component || behavior == null) { throw new NullPointerException(); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy