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

com.vaadin.client.widget.grid.CellReference Maven / Gradle / Ivy

Go to download

Vaadin is a web application framework for Rich Internet Applications (RIA). Vaadin enables easy development and maintenance of fast and secure rich web applications with a stunning look and feel and a wide browser support. It features a server-side architecture with the majority of the logic running on the server. Ajax technology is used at the browser-side to ensure a rich and interactive user experience.

There is a newer version: 8.27.1
Show newest version
/*
 * Copyright 2000-2016 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.client.widget.grid;

import com.google.gwt.dom.client.TableCellElement;
import com.vaadin.client.widgets.Grid;

/**
 * A data class which contains information which identifies a cell in a
 * {@link Grid}.
 * 

* Since this class follows the Flyweight-pattern any instance of * this object is subject to change without the user knowing it and so should * not be stored anywhere outside of the method providing these instances. * * @author Vaadin Ltd * @param * the type of the row object containing this cell * @since 7.4 */ public class CellReference { private int columnIndexDOM; private int columnIndex; private Grid.Column column; private final RowReference rowReference; public CellReference(RowReference rowReference) { this.rowReference = rowReference; } /** * Sets the identifying information for this cell. *

* The difference between {@link #columnIndexDOM} and {@link #columnIndex} * comes from hidden columns. * * @param columnIndexDOM * the index of the column in the DOM * @param columnIndex * the index of the column * @param column * the column object */ public void set(int columnIndexDOM, int columnIndex, Grid.Column column) { this.columnIndexDOM = columnIndexDOM; this.columnIndex = columnIndex; this.column = column; } /** * Gets the grid that contains the referenced cell. * * @return the grid that contains referenced cell */ public Grid getGrid() { return rowReference.getGrid(); } /** * Gets the row index of the row. * * @return the index of the row */ public int getRowIndex() { return rowReference.getRowIndex(); } /** * Gets the row data object. * * @return the row object */ public T getRow() { return rowReference.getRow(); } /** * Gets the index of the column. *

* NOTE: The index includes hidden columns in the count, unlike * {@link #getColumnIndexDOM()}. * * @return the index of the column */ public int getColumnIndex() { return columnIndex; } /** * Gets the index of the cell in the DOM. The difference to * {@link #getColumnIndex()} is caused by hidden columns. * * @since 7.5.0 * @return the index of the column in the DOM */ public int getColumnIndexDOM() { return columnIndexDOM; } /** * Gets the column objects. * * @return the column object */ public Grid.Column getColumn() { return column; } /** * Gets the value of the cell. * * @return the value of the cell */ public Object getValue() { return getColumn().getValue(getRow()); } /** * Get the element of the cell. * * @return the element of the cell */ public TableCellElement getElement() { return rowReference.getElement().getCells().getItem(columnIndexDOM); } /** * Gets the RowReference for this CellReference. * * @return the row reference */ protected RowReference getRowReference() { return rowReference; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy