resize functionality
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/SimpleAxis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/SimpleAxis.xtend
index 14a1d82..49a5b14 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/SimpleAxis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/SimpleAxis.xtend
@@ -1,6 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.axis.impl
 
 import java.io.Serializable
+import java.util.TreeMap
 import org.eclipse.nebula.widgets.nattable.core.layer.axis.Axis
 
 /**
@@ -10,6 +11,7 @@
 	
 	int segmentCount
 	int defaultSegmentSize
+	val sizeMap = new TreeMap<Integer, Integer>  // segment position -> pixel size
 	
 	new(int segmentCount, int defaultSegmentSize) {
 		this.segmentCount = segmentCount
@@ -23,7 +25,20 @@
 	}
 
 	override getStartPixelOfSegmentPosition(int segmentPosition) {
-		segmentPosition * defaultSegmentSize
+		if (segmentPosition < 0) return -1
+		else if (segmentPosition == 0) return 0
+		else if (sizeMap.empty) return segmentPosition * defaultSegmentSize
+		else {
+			var numResizedSegments = 0
+			var resizeAggregate = 0
+			
+			for (resizedPosition : sizeMap.subMap(0, segmentPosition).keySet) {
+				numResizedSegments = numResizedSegments + 1
+				resizeAggregate = resizeAggregate + sizeMap.get(resizedPosition)
+			}
+
+			return ((segmentPosition - numResizedSegments) * defaultSegmentSize) + resizeAggregate
+		}
 	}
 	
 	override getSegmentPositionOfPixelLocation(int pixelLocation) {
@@ -41,4 +56,12 @@
 			return -1
 	}
 	
+	//
+
+	def void setSegmentPixelSize(int segmentPosition, int size) {
+		if (size < 0) throw new IllegalArgumentException("size must be >= 0")
+		
+		sizeMap.put(segmentPosition, size)
+	}
+	
 }
\ No newline at end of file
diff --git a/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTExample.xtend b/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTExample.xtend
index dcb0d84..d669077 100644
--- a/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTExample.xtend
+++ b/NatTable/test/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTExample.xtend
@@ -49,10 +49,14 @@
 	static def getSWTNatTable(Shell shell) {
 		val natTable = new SWTNatTable(shell)
 		
-		val bodyHorizontalAxis = new ReorderAxis(new SimpleAxis(4, 200))
-		bodyHorizontalAxis.reorderSegmentPosition(1, 2)
-		val bodyVerticalAxis = new HideShowAxis(new SimpleAxis(4, 100))
-		bodyVerticalAxis.hideSegmentId(0)
+		val bodyHorizontalAxis = new ReorderAxis(
+			new SimpleAxis(4, 200) => [ setSegmentPixelSize(0, 100) ]
+		) => [ reorderSegmentPosition(1, 2) ]
+		
+		val bodyVerticalAxis = new HideShowAxis(
+			new SimpleAxis(4, 100) => [ setSegmentPixelSize(2, 200) ]
+		) => [ hideSegmentId(0) ]
+		
 		val bodyLayer = new DummyLayer(
 			bodyHorizontalAxis,
 			bodyVerticalAxis