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

com.vaadin.flow.component.spreadsheet.client.SpreadsheetHandler Maven / Gradle / Ivy

There is a newer version: 24.6.0
Show newest version
/**
 * Copyright 2000-2024 Vaadin Ltd.
 *
 * This program is available under Vaadin Commercial License and Service Terms.
 *
 * See {@literal } for the full
 * license.
 */
package com.vaadin.flow.component.spreadsheet.client;

import java.util.HashMap;
import java.util.Map;

public interface SpreadsheetHandler extends GroupingHandler {

    /**
     * These cells have become visible and possibly need the content, if has not
     * been given previously or has not changed.
     */
    // @Delayed(lastOnly = true)
    public void onSheetScroll(int firstRow, int firstColumn, int lastRow,
            int lastColumn);

    /** Address field value changed. */
    public void sheetAddressChanged(String value);

    /** Single cell selected inside sheet. */
    // @Delayed
    public void cellSelected(int row, int column,
            boolean oldSelectionRangeDiscarded);

    /** Cell range selected from scratch. Actual selected cell not changed. */
    // @Delayed
    public void cellRangeSelected(int row1, int col1, int row2, int col2);

    /** Single cell added to selection. Selection changed to this. */
    // @Delayed
    public void cellAddedToSelectionAndSelected(int row, int column);

    /**
     * Multiple cells added to previous range selection. Actual selected cell
     * not changed.
     */
    // @Delayed
    public void cellsAddedToRangeSelection(int row1, int col1, int row2,
            int col2);

    /**
     * Complete row selected. New selected cell is at firstColumnIndex:row.
     *
     * @param row
     *            the row that was selected
     * @param firstColumnIndex
     *            column index for the selected cell (left most visible)
     */
    // @Delayed
    public void rowSelected(int row, int firstColumnIndex);

    /**
     * Complete row added to previous range selection. New selected cell is at
     * firstColumnIndex:row.
     *
     * @param row
     *            the row that was selected
     * @param firstColumnIndex
     *            column index for the selected cell (left most visible)
     */
    // @Delayed
    public void rowAddedToRangeSelection(int row, int firstColumnIndex);

    /**
     * Complete column selected. New selected cell is at column:firstRowIndex.
     *
     * @param column
     *            the column that was selected
     * @param firstRowIndex
     *            row index for the selected cell (top most visible)
     */
    // @Delayed
    public void columnSelected(int column, int firstRowIndex);

    /**
     * Complete column added to previous range selection. New selected cell is
     * at column:firstRowIndex.
     *
     * @param firstRowIndex
     *            row index for the selected cell (top most)
     * @param column
     *            the column that was selected
     */
    // @Delayed
    public void columnAddedToSelection(int firstRowIndex, int column);

    /**
     * The new selection that was painted from the old. Values and formulas
     * should be painted to the new selection.
     *
     * @param r1
     *            new selection top, 1-based
     * @param c1
     *            new selection left, 1-based
     * @param r2
     *            new selection bottom, 1-based
     * @param c2
     *            new selection right, 1-based
     */
    // @Delayed
    public void selectionIncreasePainted(int r1, int c1, int r2, int c2);

    /**
     * The existing selection has been painted inwards meaning that the painted
     * selection cells should be cleared.
     *
     * @param row
     *            topmost cell index where the clearing starts, 1-based
     * @param col
     *            leftmost cell index where the clearing starts, 1-based
     */
    // @Delayed
    public void selectionDecreasePainted(int row, int col);

    public void cellValueEdited(int row, int col, String value);

    /**
     *
     * @param sheetIndex
     *            0-based
     * @param scrollTop
     * @param scrollLeft
     */
    public void sheetSelected(int sheetIndex, int scrollLeft, int scrollTop);

    /**
     *
     * @param sheetIndex
     *            0-based
     * @param newName
     */
    public void sheetRenamed(int sheetIndex, String newName);

    /**
     * Sheet is created as the last sheet
     *
     * @param scrollTop
     * @param scrollLeft
     */
    public void sheetCreated(int scrollLeft, int scrollTop);

    /**
     * Cell range selected by painting
     *
     * @param selectedCellRow
     * @param selectedCellColumn
     * @param row1
     * @param col1
     * @param row2
     * @param col2
     */
    // @Delayed(lastOnly = true)
    public void cellRangePainted(int selectedCellRow, int selectedCellColumn,
            int row1, int col1, int row2, int col2);

    /**
     * Delete the contents of the selected cells, do not remove
     * style/formatting.
     */
    public void deleteSelectedCells();

    /**
     * A cell containing a hyperlink has been clicked.
     *
     * @param row
     *            1-based
     * @param column
     *            1-based
     */
    public void linkCellClicked(int row, int column);

    /**
     * Rows resized with header drag and drop. Indexes 1-based.
     *
     * @param newRowSizes
     *            row index and new size (converted pt)
     * @param row1
     * @param col1
     * @param row2
     * @param col2
     */
    public void rowsResized(Map newRowSizes, int row1, int col1,
            int row2, int col2);

    /**
     * Columns resized with drag and drop. Indexes 1-based.
     *
     * @param row1
     * @param col1
     * @param row2
     * @param col2
     * @param newColumnSizes
     *            column index and new size (px)
     */
    public void columnResized(Map newColumnSizes, int row1,
            int col1, int row2, int col2);

    /**
     * Row autofit with double click on the row header resizing area.
     *
     * @param rowIndex
     *            1-based
     */
    public void onRowAutofit(int rowIndex);

    /**
     * Column autofit with double click on the column header resizing area.
     *
     * @param columnIndex
     *            1-based
     */
    public void onColumnAutofit(int columnIndex);

    /**
     * Client pressed undo ctrl/meta+z
     */
    public void onUndo();

    /**
     * Client pressed redo ctrl/meta+y
     */
    public void onRedo();

    public void setCellStyleWidthRatios(
            HashMap cellStyleWidthRatioMap);

    /**
     * Client tried to modify protected cell
     */
    public void protectedCellWriteAttempted();

    /**
     * Client pasted text at current selection.
     *
     * @param text
     */
    public void onPaste(String text);

    /**
     * Called after successful cut operation; currently selected cells should be
     * cleared
     */
    public void clearSelectedCellsOnCut();

    public void updateCellComment(String text, int col, int row);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy