Interface ColumnConfiguration
-
public interface ColumnConfigurationA representation of the columns in an instance ofEscalator.- Since:
- 7.4
- Author:
- Vaadin Ltd
- See Also:
Escalator.getColumnConfiguration()
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description intgetColumnCount()Returns the number of columns in the escalator.doublegetColumnWidth(int index)Returns the user-defined width of a column.doublegetColumnWidthActual(int index)Returns the actual width of a column.intgetFrozenColumnCount()Get the number of leftmost columns that are not affected by horizontal scrolling.voidinsertColumns(int index, int numberOfColumns)Adds columns at a certain index.voidrefreshColumns(int index, int numberOfColumns)Refreshes a range of columns in the current row containers in each Escalator section.voidremoveColumns(int index, int numberOfColumns)Removes columns at certain indices.voidsetColumnWidth(int index, double px)Sets (or unsets) an explicit width for a column.voidsetColumnWidths(Map<Integer,Double> indexWidthMap)Sets widths for a set of columns.voidsetFrozenColumnCount(int count)Sets the number of leftmost columns that are not affected by horizontal scrolling.
-
-
-
Method Detail
-
removeColumns
void removeColumns(int index, int numberOfColumns) throws IndexOutOfBoundsException, IllegalArgumentExceptionRemoves columns at certain indices.If any of the removed columns were frozen, the number of frozen columns will be reduced by the number of the removed columns that were frozen.
Note: This method simply removes the given columns, and does not do much of anything else. Especially if you have column spans, you probably need to run
refreshColumns(int, int)orRowContainer.refreshRows(int, int)- Parameters:
index- the index of the first column to be removednumberOfColumns- the number of rows to remove, starting fromindex- Throws:
IndexOutOfBoundsException- if the entire range of removed columns is not currently present in the escalatorIllegalArgumentException- ifnumberOfColumnsis less than 1.
-
insertColumns
void insertColumns(int index, int numberOfColumns) throws IndexOutOfBoundsException, IllegalArgumentExceptionAdds columns at a certain index.The new columns will be inserted between the column at the index, and the column before (an index of 0 means that the columns are inserted at the beginning). Therefore, the columns at the index and afterwards will be moved to the right.
The contents of the inserted columns will be queried from the respective cell renderers in the header, body and footer.
If there are frozen columns and the first added column is to the left of the last frozen column, the number of frozen columns will be increased by the number of inserted columns.
Note: Only the contents of the inserted columns will be rendered. If inserting new columns affects the contents of existing columns (e.g. you have column spans),
RowContainer.refreshRows(int, int)orrefreshColumns(int, int)needs to be called as appropriate.- Parameters:
index- the index of the column before which new columns are inserted, orgetColumnCount()to add new columns at the endnumberOfColumns- the number of columns to insert after theindex- Throws:
IndexOutOfBoundsException- ifindexis not an integer in the range[0..getColumnCount()]IllegalArgumentException- ifnumberOfColumnsis less than 1.
-
getColumnCount
int getColumnCount()
Returns the number of columns in the escalator.- Returns:
- the number of columns in the escalator
-
setFrozenColumnCount
void setFrozenColumnCount(int count) throws IllegalArgumentExceptionSets the number of leftmost columns that are not affected by horizontal scrolling.- Parameters:
count- the number of columns to freeze- Throws:
IllegalArgumentException- if the column count is < 0 or > the number of columns
-
getFrozenColumnCount
int getFrozenColumnCount()
Get the number of leftmost columns that are not affected by horizontal scrolling.- Returns:
- the number of frozen columns
-
setColumnWidth
void setColumnWidth(int index, double px) throws IllegalArgumentExceptionSets (or unsets) an explicit width for a column.- Parameters:
index- the index of the column for which to set a widthpx- the number of pixels the indicated column should be, or a negative number to let the escalator decide- Throws:
IllegalArgumentException- ifindexis not a valid column index
-
getColumnWidth
double getColumnWidth(int index) throws IllegalArgumentExceptionReturns the user-defined width of a column.- Parameters:
index- the index of the column for which to retrieve the width- Returns:
- the column's width in pixels, or a negative number if the width is implicitly decided by the escalator
- Throws:
IllegalArgumentException- ifindexis not a valid column index
-
setColumnWidths
void setColumnWidths(Map<Integer,Double> indexWidthMap) throws IllegalArgumentException
Sets widths for a set of columns.- Parameters:
indexWidthMap- a map from column index to its respective width to be set. If the given width for a column index is negative, the column is resized-to-fit.- Throws:
IllegalArgumentException- ifindexWidthMapisnullIllegalArgumentException- if any column index inindexWidthMapis invalidNullPointerException- If any value in the map isnull
-
getColumnWidthActual
double getColumnWidthActual(int index) throws IllegalArgumentExceptionReturns the actual width of a column.- Parameters:
index- the index of the column for which to retrieve the width- Returns:
- the column's actual width in pixels
- Throws:
IllegalArgumentException- ifindexis not a valid column index
-
refreshColumns
void refreshColumns(int index, int numberOfColumns) throws IndexOutOfBoundsException, IllegalArgumentExceptionRefreshes a range of columns in the current row containers in each Escalator section.The data for the refreshed columns is queried from the current cell renderer.
- Parameters:
index- the index of the first columns that will be updatednumberOfColumns- the number of columns to update, starting from the index- Throws:
IndexOutOfBoundsException- if any integer number in the range[index..(index+numberOfColumns)]is not an existing column index.IllegalArgumentException- ifnumberOfColumnsis less than 1.- See Also:
RowContainer.setEscalatorUpdater(EscalatorUpdater),Escalator.getHeader(),Escalator.getBody(),Escalator.getFooter()
-
-