moved geometry classes to separate package; use pixel range for
viewport; dummy layer
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 7da945f..1bdd117 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
@@ -1,19 +1,28 @@
package org.eclipse.nebula.widgets.nattable.core.axis.viewport
import org.eclipse.nebula.widgets.nattable.core.axis.Axis
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRange
class ViewportAxis implements Axis {
val Axis underlyingAxis
+ /**
+ * Indicates the visible portion of the axis. Note that the pixel locations returned by this ClientDimensionProvider
+ * must be in terms of underlying axis pixel coordinates.
+ */
+ val PixelRange visibleDimension
+
int pixelOrigin
- new(Axis underlyingAxis) {
+ new(Axis underlyingAxis, PixelRange visibleDimension) {
this.underlyingAxis = underlyingAxis
+ this.visibleDimension = visibleDimension
}
override getSegmentCount() {
- throw new UnsupportedOperationException("TODO: need to know client area size to implement this..")
+ val endSegmentPosition = underlyingAxis.getSegmentPositionByPixelLocation(visibleDimension.endPixel)
+ endSegmentPosition - originSegmentPosition
}
override getStartPixelOfSegmentPosition(int segmentPosition) {
@@ -32,4 +41,8 @@
underlyingAxis.getSegmentPositionByPixelLocation(pixelOrigin)
}
+ def void setPixelOrigin(int pixelOrigin) {
+ this.pixelOrigin = pixelOrigin
+ }
+
}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelCoordinate.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelCoordinate.xtend
new file mode 100644
index 0000000..189c4c8
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelCoordinate.xtend
@@ -0,0 +1,7 @@
+package org.eclipse.nebula.widgets.nattable.core.geometry
+
+@Data
+class PixelCoordinate {
+ int x
+ int y
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRange.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRange.xtend
new file mode 100644
index 0000000..3c3607c
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRange.xtend
@@ -0,0 +1,8 @@
+package org.eclipse.nebula.widgets.nattable.core.geometry
+
+@Data
+class PixelRange {
+ int startPixel
+ int endPixel
+ int pixelSize
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelRectangle.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRectangle.xtend
similarity index 91%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelRectangle.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRectangle.xtend
index 9e9d2b7..a999d0d 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelRectangle.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRectangle.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.layer
+package org.eclipse.nebula.widgets.nattable.core.geometry
class PixelRectangle {
val PixelCoordinate pixelOrigin
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionCoordinate.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionCoordinate.xtend
new file mode 100644
index 0000000..d4185df
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionCoordinate.xtend
@@ -0,0 +1,7 @@
+package org.eclipse.nebula.widgets.nattable.core.geometry
+
+@Data
+class PositionCoordinate {
+ int columnPosition
+ int rowPosition
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionRectangle.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionRectangle.xtend
similarity index 92%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionRectangle.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionRectangle.xtend
index 6455346..a7d7b06 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionRectangle.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PositionRectangle.xtend
@@ -1,4 +1,4 @@
-package org.eclipse.nebula.widgets.nattable.core.layer
+package org.eclipse.nebula.widgets.nattable.core.geometry
class PositionRectangle {
val PositionCoordinate positionOrigin
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Cell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Cell.xtend
index 90185be..7eb464b 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Cell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Cell.xtend
@@ -1,5 +1,7 @@
package org.eclipse.nebula.widgets.nattable.core.layer
+import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
+
interface Cell {
def Layer getLayer()
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/CellInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/CellInvariants.xtend
index 7a5fc9d..d95c419 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/CellInvariants.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/CellInvariants.xtend
@@ -1,6 +1,7 @@
package org.eclipse.nebula.widgets.nattable.core.layer
import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
class CellInvariants {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/AbstractLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
similarity index 78%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/AbstractLayer.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
index cb97cb7..df47710 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/AbstractLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
@@ -3,7 +3,7 @@
import org.eclipse.nebula.widgets.nattable.core.axis.Axis
import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis
-abstract class AbstractLayer implements Layer {
+class DummyLayer implements Layer {
val Axis horizontalAxis
val Axis verticalAxis
@@ -13,8 +13,6 @@
verticalAxis = new DefaultAxis(rowCount, defaultRowHeight)
}
- // Pixel dimensions
-
override getHorizontalAxis() {
horizontalAxis
}
@@ -23,4 +21,8 @@
verticalAxis
}
+ override getCellByPosition(int columnPosition, int rowPosition) {
+// new Cell(this, columnPosition, rowPosition)
+ }
+
}
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelCoordinate.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelCoordinate.xtend
deleted file mode 100644
index aeb794f..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PixelCoordinate.xtend
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.core.layer
-
-@Data
-class PixelCoordinate {
- int x
- int y
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionCoordinate.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionCoordinate.xtend
deleted file mode 100644
index 3187d40..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/PositionCoordinate.xtend
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.core.layer
-
-@Data
-class PositionCoordinate {
- int columnPosition
- int rowPosition
-}
\ No newline at end of file