package org.ovirt.engine.ui.common.widget.table; import com.google.gwt.dom.client.Element; import com.google.gwt.user.cellview.client.Column; /** * Interface implemented by table widgets that support resizable columns. * <p> * Each column should have an explicit width defined in PX units. * * @param <T> * Table row data type. */ public interface HasResizableColumns<T> { /** * Called when the user initiates the column resize operation. * <p> * This happens when the user depresses mouse button (mouse down event) while the cursor is within the column header * resize bar area. * * @param column * The column being resized. * @param headerElement * Column header element. */ void onResizeStart(Column<T, ?> column, Element headerElement); /** * Called when the column resize operation finishes. * <p> * This happens when the user releases mouse button (mouse up event) after resizing given column. * * @param column * The column being resized. * @param headerElement * Column header element. */ void onResizeEnd(Column<T, ?> column, Element headerElement); /** * Resizes the given column to a new width. * * @param column * The column to resize. * @param newWidth * New column width, in PX units. */ void resizeColumn(Column<T, ?> column, int newWidth); /** * Returns the minimum width of the given column. * * @param column * The column to search for. * @return Minimum width of the given column, in PX units. */ int getMinimumColumnWidth(Column<T, ?> column); }