Table of Contents

We have a list of useful code snippets for you. Simply use them for your application. All snippets are free to use and licensed under Apache 2.0.

Checkbox in Table Header

If you want to show a checkbox in the table header of a v7 Table:

use following code:

book.getRowDefinition().getColumnDefinition("CHECK").setSortable(false)
book.getRowDefinition().getColumnDefinition("CHECK")
    .setLabel("<input type='checkbox' id='checkboxSelectAll' onclick=\"selectAllListener(this.checked)\" " +
              "style=\"position:absolute;top: 2px;\"/>");

and to receive events from the checkbox:

JavaScript.getCurrent().addFunction("selectAllListener", new JavaScriptFunction() 
{
    public void call(JsonArray arguments) 
    {
        System.out.println("Pressed!");
    }
});

Checkbox in Grid Header

If you want to show a checkbox in the header of a Grid:

use following code:

CheckBox cbx = new CheckBox();
cbx.addValueChangeListener(new ValueChangeListener<Boolean>()
{
    @Override
    public void valueChange(ValueChangeEvent<Boolean> event)
    {
        System.out.println("Pressed!");
    }
});
 
UIFactoryManager.getFactory().invokeLater(() ->
{
    // Cast the resource to a Grid.
    ((Grid)((VaadinGrid)navLoggings.getUIResource()).getResource())
        // Get the first (automatically added) row.
        .getHeaderRow(0)
        // Get the cell for the column we want.
        .getCell("CHECK")
        // Add the component.
        .setComponent(cbx);
});

Disable autocomplete

You have different options:

1) Disable for a specific editor

((IAutoCompleteFeature)editCompanyHeadofdepartmentsurname.getUIResource()).setAutoComplete(false);

2) Disable for the cell editor

ICellEditor ced = UICellEditor.getCellEditor(book, "COLUMN");
 
//if you set a custom cell editor	
if (ced instanceof UICellEditor)
{
    ced = (ICellEditor)((UICellEditor)ced).getUIResource();
}
 
((IAutoCompleteFeature)ced).setAutoComplete(false);

Be careful with cell editors, because if no custom cell editor was set, the default (global) cell editors will be used. If you change the autocomplete feature for the global text cell editor, all editors are affected.

It's a good idea to set a custom cell editor:

book.getRowDefinition().getColumnDefinition("COLUMN").getDataType().setCellEditor(new UITextCellEditor());