com.softicar.platform.common.container.matrix.data.table.MatrixDataTable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.container.matrix.data.table;
import com.softicar.platform.common.container.data.table.DataTableIdentifier;
import com.softicar.platform.common.container.data.table.IDataTable;
import com.softicar.platform.common.container.data.table.in.memory.AbstractInMemoryDataTable;
import com.softicar.platform.common.container.matrix.IMatrix;
import com.softicar.platform.common.core.i18n.IDisplayString;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
/**
* Adapter to convert an {@link IMatrix} into an {@link IDataTable}.
*
* @author Alexander Schmidt
* @author Oliver Richers
*/
public class MatrixDataTable extends AbstractInMemoryDataTable> {
private final List> rows;
public MatrixDataTable(IMatrix matrix, Class rowClass, Class valueClass, IDisplayString rowTitle,
Function columnNameFunction) {
newColumn(rowClass)//
.setGetter(row -> row.getRow())
.setTitle(rowTitle)
.addColumn();
for (C col: matrix.getColumns()) {
newColumn(valueClass)//
.setGetter(row -> row.getValue(col))
.setTitle(columnNameFunction.apply(col))
.addColumn();
}
this.rows = new ArrayList<>();
for (R row: matrix.getRows()) {
this.rows.add(new MatrixDataTableRow<>(row, matrix.getRowMap(row)));
}
}
@Override
public DataTableIdentifier getIdentifier() {
return DataTableIdentifier.empty();
}
@Override
protected Iterable> getTableRows() {
return rows;
}
}