com.vaadin.v7.client.connectors.AbstractGridRendererConnector Maven / Gradle / Ivy
Show all versions of vaadin-compatibility-client Show documentation
/*
* Copyright (C) 2000-2023 Vaadin Ltd
*
* This program is available under Vaadin Commercial License and Service Terms.
*
* See for the full
* license.
*/
package com.vaadin.v7.client.connectors;
import com.vaadin.client.ServerConnector;
import com.vaadin.v7.client.renderers.Renderer;
import com.vaadin.v7.client.widgets.Grid.Column;
import elemental.json.JsonObject;
/**
* An abstract base class for renderer connectors. A renderer connector is used
* to link a client-side {@link Renderer} to a server-side
* {@link com.vaadin.ui.components.grid.Renderer Renderer}. As a connector, it
* can use the regular Vaadin RPC and shared state mechanism to pass additional
* state and information between the client and the server. This base class
* itself only uses the basic {@link com.vaadin.shared.communication.SharedState
* SharedState} and no RPC interfaces.
*
* @param
* the presentation type of the renderer
*
* @since 7.4
* @author Vaadin Ltd
*/
public abstract class AbstractGridRendererConnector
extends AbstractRendererConnector {
/**
* Gets the row key for a row object.
*
* In case this renderer wants be able to identify a row in such a way that
* the server also understands it, the row key is used for that. Rows are
* identified by unified keys between the client and the server.
*
* @param row
* the row object
* @return the row key for the given row
*/
protected String getRowKey(JsonObject row) {
final ServerConnector parent = getParent();
if (parent instanceof GridConnector) {
return ((GridConnector) parent).getRowKey(row);
} else {
throw new IllegalStateException(
"Renderers can only be used " + "with a Grid.");
}
}
/**
* Gets the column id for a column.
*
* In case this renderer wants be able to identify a column in such a way
* that the server also understands it, the column id is used for that.
* Columns are identified by unified ids between the client and the server.
*
* @param column
* the column object
* @return the column id for the given column
*/
protected String getColumnId(Column, JsonObject> column) {
final ServerConnector parent = getParent();
if (parent instanceof GridConnector) {
return ((GridConnector) parent).getColumnId(column);
} else {
throw new IllegalStateException(
"Renderers can only be used " + "with a Grid.");
}
}
}