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

com.softicar.platform.common.container.matrix.data.table.MatrixDataTable Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
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;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy