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

com.vaadin.flow.data.renderer.RendererUtil Maven / Gradle / Ivy

There is a newer version: 24.5.5
Show newest version
/*
 * Copyright 2000-2024 Vaadin Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.vaadin.flow.data.renderer;

import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Function;

import org.slf4j.LoggerFactory;

import com.vaadin.flow.component.UI;
import com.vaadin.flow.dom.DomEvent;
import com.vaadin.flow.dom.DomListenerRegistration;
import com.vaadin.flow.dom.Element;
import com.vaadin.flow.function.SerializableConsumer;
import com.vaadin.flow.function.ValueProvider;
import com.vaadin.flow.internal.StateNode;
import com.vaadin.flow.internal.StateTree;
import com.vaadin.flow.server.Command;
import com.vaadin.flow.shared.Registration;

/**
 * Contains helper methods to register events triggered by rendered templates.
 * 

* Used internally by components that support {@link TemplateRenderer}. * * @author Vaadin Ltd * */ public class RendererUtil { private RendererUtil() { } /** * Registers the event handlers associated to a {@link TemplateRenderer}, if * any. The consumers returned by * {@link TemplateRenderer#getEventHandlers()} are processed and properly * configured to trigger messages from the client to the server, so event * handlers can catch the events and execute custom logic. * * @param * the type of the renderer and the associated keyMapper * @param renderer * the TemplateRenderer to be evaluated * @param contentTemplate * the {@code