blob: 669bb63cd2c87a41ae417849280a6719467dad3c [file] [log] [blame]
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.PropertyAccessor
import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
class ListRowDataLayer implements Layer {
val List<?> list
val Axis horizontalAxis
val Axis verticalAxis
@Inject extension PropertyAccessor
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 getCellPositionBounds(int columnPosition, int rowPosition) {
new PositionRectangle(columnPosition, rowPosition, 1, 1)
}
override getCellDataValue(int columnPosition, int rowPosition) {
val rowObject = list.get(rowPosition)
val propertyId = horizontalAxis.getIdOfSegmentPosition(columnPosition)
rowObject.getProperty(propertyId)
}
override setCellDataValue(int columnPosition, int rowPosition, Object newValue) {
throw new UnsupportedOperationException("TODO: auto-generated method stub")
}
}