| package org.eclipse.nebula.widgets.nattable.core.layer |
| |
| import com.google.inject.Inject |
| import java.util.List |
| import org.eclipse.nebula.widgets.nattable.core.axis.Axis |
| import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis |
| import org.eclipse.nebula.widgets.nattable.core.data.ObjectPropertyAccessor |
| import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyCell |
| |
| class ListRowDataLayer implements Layer { |
| |
| val List<?> list |
| |
| val Axis horizontalAxis |
| val Axis verticalAxis |
| |
| @Inject extension ObjectPropertyAccessor |
| |
| new(List<?> list, Axis horizontalAxis) { |
| this.list = list |
| this.horizontalAxis = horizontalAxis |
| this.verticalAxis = new DefaultAxis(list.size, 20) |
| } |
| |
| override getHorizontalAxis() { horizontalAxis } |
| override getVerticalAxis() { verticalAxis } |
| |
| override getCell(int columnPosition, int rowPosition) { |
| val rowObject = list.get(rowPosition) |
| val propertyId = horizontalAxis.getIdOfSegmentPosition(columnPosition) |
| val value = rowObject.getProperty(propertyId) |
| |
| new ReadOnlyCell(this, columnPosition, rowPosition, value) |
| } |
| |
| } |