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

org.jboss.hal.ballroom.table.Table Maven / Gradle / Ivy

The newest version!
/*
 *  Copyright 2022 Red Hat
 *
 *  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
 *
 *      https://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 org.jboss.hal.ballroom.table;

import java.util.List;
import java.util.function.Function;

import org.jboss.elemento.IsElement;
import org.jboss.hal.ballroom.Attachable;
import org.jboss.hal.ballroom.form.Form;

public interface Table extends IsElement, Attachable {

    void show();

    void hide();

    void enableButton(int index, boolean enable);

    void bindForm(Form form);

    void bindForms(Iterable> forms);

    void clear();

    List getRows();

    void onSelectionChange(SelectionChangeHandler handler);

    default boolean hasSelection() {
        return !selectedRows().isEmpty();
    }

    T selectedRow();

    List selectedRows();

    void select(T data);

    void select(T data, Function identifier);

    void update(Iterable data);

    void update(Iterable data, RefreshMode mode);

    void update(Iterable data, Function identifier);

    void update(Iterable data, RefreshMode mode, Function identifier);

    /**
     * Convenience handler when a row selection or deselection takes place.
     *
     * @param  the row type
     */
    @FunctionalInterface
    interface SelectionChangeHandler {

        /**
         * Called when a selection changed. That is when a row is selected or deselected.
         *
         * @param table the table instance
         */
        void onSelectionChanged(Table table);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy