pulled out axis segment
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/Axis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/Axis.xtend
index 781efc0..25bec8f 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/Axis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/Axis.xtend
@@ -1,7 +1,11 @@
package org.eclipse.nebula.widgets.nattable.core.axis
import java.io.Serializable
+import org.eclipse.nebula.widgets.nattable.core.axis.segment.AxisSegment
+/**
+ * Represents a linear dimension (e.g. horizontal columns or vertical rows)
+ */
interface Axis {
/**
@@ -27,8 +31,6 @@
*/
def Serializable getIdOfSegmentPosition(int segmentPosition)
- def Object getSegmentDataValue(int segmentPosition)
-
- def void setSegmentDataValue(int segmentPosition, Object newValue)
+ def AxisSegment getSegment(int segmentPosition)
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisDataAccessor.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisDataAccessor.xtend
new file mode 100644
index 0000000..dd44ae5
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisDataAccessor.xtend
@@ -0,0 +1,5 @@
+package org.eclipse.nebula.widgets.nattable.core.axis
+
+interface AxisDataAccessor {
+
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/DefaultAxis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/DefaultAxis.xtend
index 9120188..9acaac0 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/DefaultAxis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/DefaultAxis.xtend
@@ -1,5 +1,7 @@
package org.eclipse.nebula.widgets.nattable.core.axis
+import org.eclipse.nebula.widgets.nattable.core.axis.segment.ReadOnlyAxisSegment
+
class DefaultAxis implements Axis {
int segmentCount
@@ -26,12 +28,8 @@
segmentPosition
}
- override getSegmentDataValue(int segmentPosition) {
- segmentPosition
- }
-
- override setSegmentDataValue(int segmentPosition, Object newValue) {
- throw new UnsupportedOperationException("TODO: auto-generated method stub")
+ override getSegment(int segmentPosition) {
+ new ReadOnlyAxisSegment(this, segmentPosition, 1, segmentPosition)
}
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend
new file mode 100644
index 0000000..9d8037f
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend
@@ -0,0 +1,21 @@
+package org.eclipse.nebula.widgets.nattable.core.axis.segment
+
+import org.eclipse.nebula.widgets.nattable.core.axis.Axis
+
+abstract class AbstractAxisSegment implements AxisSegment {
+
+ val Axis axis
+ val int segmentPosition
+ val int segmentSpan
+
+ new(Axis axis, int segmentPosition, int segmentSpan) {
+ this.axis = axis
+ this.segmentPosition = segmentPosition
+ this.segmentSpan = segmentSpan
+ }
+
+ override getAxis() { axis }
+ override getSegmentPosition() { segmentPosition }
+ override getSegmentSpan() { segmentSpan }
+
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend
new file mode 100644
index 0000000..1bf2b82
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend
@@ -0,0 +1,14 @@
+package org.eclipse.nebula.widgets.nattable.core.axis.segment
+
+import org.eclipse.nebula.widgets.nattable.core.axis.Axis
+
+interface AxisSegment {
+
+ def Axis getAxis()
+ def int getSegmentPosition()
+ def int getSegmentSpan()
+
+ def Object getDataValue()
+ def void setDataValue(Object newValue)
+
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/ReadOnlyAxisSegment.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/ReadOnlyAxisSegment.xtend
new file mode 100644
index 0000000..53fda77
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/ReadOnlyAxisSegment.xtend
@@ -0,0 +1,23 @@
+package org.eclipse.nebula.widgets.nattable.core.axis.segment
+
+import org.eclipse.nebula.widgets.nattable.core.axis.Axis
+
+class ReadOnlyAxisSegment extends AbstractAxisSegment {
+
+ val Object dataValue
+
+ new(Axis axis, int segmentPosition, int segmentSpan, Object dataValue) {
+ super(axis, segmentPosition, segmentSpan)
+
+ this.dataValue = dataValue
+ }
+
+ override getDataValue() {
+ dataValue
+ }
+
+ override setDataValue(Object newValue) {
+ throw new UnsupportedOperationException("TODO: auto-generated method stub")
+ }
+
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/viewport/ViewportAxis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/viewport/ViewportAxis.xtend
index bc12049..13168cc 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/viewport/ViewportAxis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/viewport/ViewportAxis.xtend
@@ -47,12 +47,8 @@
underlyingAxis.getIdOfSegmentPosition(originSegmentPosition + segmentPosition)
}
- override getSegmentDataValue(int segmentPosition) {
- underlyingAxis.getSegmentDataValue(originSegmentPosition + segmentPosition)
- }
-
- override setSegmentDataValue(int segmentPosition, Object newValue) {
- underlyingAxis.setSegmentDataValue(originSegmentPosition + segmentPosition, newValue)
+ override getSegment(int segmentPosition) {
+ underlyingAxis.getSegment(originSegmentPosition + segmentPosition)
}
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
index fdab9a0..8fb1b0d 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
@@ -2,7 +2,7 @@
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.cell.ReadOnlyCell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyCell
class DummyLayer implements Layer {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
index aaed4cc..edcf6c0 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
@@ -1,7 +1,7 @@
package org.eclipse.nebula.widgets.nattable.core.layer
import org.eclipse.nebula.widgets.nattable.core.axis.Axis
-import org.eclipse.nebula.widgets.nattable.core.cell.Cell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.Cell
interface Layer {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
index 54cb127..4ed5e8e 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
@@ -4,8 +4,8 @@
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.cell.ReadOnlyCell
import org.eclipse.nebula.widgets.nattable.core.data.ObjectPropertyAccessor
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyCell
class ListRowDataLayer implements Layer {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/Cell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend
similarity index 82%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/Cell.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend
index 109bd94..ef0f4f3 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/Cell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.cell
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/CellInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
similarity index 92%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/CellInvariants.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
index 612c542..22c2a9c 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/CellInvariants.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.cell
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/LayerDataAccessorCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend
similarity index 94%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/LayerDataAccessorCell.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend
index 711a93c..94ce514 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/LayerDataAccessorCell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.cell
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/ReadOnlyCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend
similarity index 92%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/ReadOnlyCell.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend
index 19abaad..d8a2e62 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/cell/ReadOnlyCell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.cell
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/composite/CompositeAxis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/composite/CompositeAxis.xtend
index 5356a3a..61d541e 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/composite/CompositeAxis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/composite/CompositeAxis.xtend
@@ -71,14 +71,14 @@
null
}
- override getSegmentDataValue(int segmentPosition) {
+ override getSegment(int segmentPosition) {
var segmentOffset = 0
for (layer : layers) {
val axis = layer.axis
if (segmentPosition < axis.segmentCount)
- return axis.getSegmentDataValue(segmentPosition - segmentOffset)
+ return axis.getSegment(segmentPosition - segmentOffset)
segmentOffset = segmentOffset + axis.segmentCount
}
@@ -86,19 +86,4 @@
null
}
- override setSegmentDataValue(int segmentPosition, Object newValue) {
- var segmentOffset = 0
-
- for (layer : layers) {
- val axis = layer.axis
-
- if (segmentPosition < axis.segmentCount) {
- axis.setSegmentDataValue(segmentPosition - segmentOffset, newValue)
- return
- }
-
- segmentOffset = segmentOffset + axis.segmentCount
- }
- }
-
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
index b689bf4..cce2315 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
@@ -2,9 +2,9 @@
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.cell.LayerDataAccessorCell
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerDataAccessorCell
class ColumnHeaderLayer implements Layer, LayerDataAccessor {
@@ -29,11 +29,11 @@
// LayerDataAccessor
override getCellDataValue(int columnPosition, int rowPosition) {
- horizontalAxis.getSegmentDataValue(columnPosition)
+ horizontalAxis.getSegment(columnPosition).dataValue
}
override setCellDataValue(int columnPosition, int rowPosition, Object newValue) {
- horizontalAxis.setSegmentDataValue(columnPosition, newValue)
+ horizontalAxis.getSegment(columnPosition).setDataValue(newValue)
}
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
index e1f2dc5..6847c29 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
@@ -2,9 +2,9 @@
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.cell.LayerDataAccessorCell
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerDataAccessorCell
class RowHeaderLayer implements Layer, LayerDataAccessor {
@@ -29,11 +29,11 @@
// LayerDataAccessor
override getCellDataValue(int columnPosition, int rowPosition) {
- verticalAxis.getSegmentDataValue(rowPosition)
+ verticalAxis.getSegment(rowPosition).dataValue
}
override setCellDataValue(int columnPosition, int rowPosition, Object newValue) {
- verticalAxis.setSegmentDataValue(rowPosition, newValue)
+ verticalAxis.getSegment(rowPosition).setDataValue(newValue)
}
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
index cfc603b..305f255 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
@@ -5,8 +5,8 @@
import javafx.scene.paint.Color
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
-import static extension org.eclipse.nebula.widgets.nattable.core.cell.CellInvariants.*
import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
+import static extension org.eclipse.nebula.widgets.nattable.core.layer.cell.CellInvariants.*
class DefaultLayerRenderer implements JavaFXLayerRenderer {