private Direction calculateLineDirection(GridPoint referencePoint) {
		GridPoint sourceLocation = this.source.getLocation();
		if (sourceLocation.equals(referencePoint)) {
			return Direction.NONE;
		}

		int xDiff = referencePoint.getColumn() - sourceLocation.getColumn();
		int yDiff = referencePoint.getRow() - sourceLocation.getRow();
		if (Math.abs(xDiff) > Math.abs(yDiff)) {
			return xDiff > 0 ? Direction.RIGHT : Direction.LEFT;
		} else {
			return yDiff > 0 ? Direction.DOWN : Direction.UP;
		}
	}