package org.eclipse.nebula.widgets.nattable.core.layer.axis.impl

import org.eclipse.nebula.widgets.nattable.core.event.AbstractEventSourceSink
import org.eclipse.nebula.widgets.nattable.core.layer.axis.Axis

abstract class AbstractAxis extends AbstractEventSourceSink implements Axis {

	override getMinPixelLocation() {
		getStartPixelOfSegmentPosition(0)
	}
	
	override getPixelSize() {
		getStartPixelOfSegmentPosition(segmentCount) - minPixelLocation
	}
	
}