In your case, to reverse the Y axis so that the older dates are at the top and the more recent dates at the bottom, you have to create and use a subclass of DateTimeAxis. It’s not particularly complicated though - you just have to override two protected methods: transformUserValueToChartValue and transformChartValueToUserValue.
In these methods you have to tell the axis how to map your user data into something the chart can use - basically, you have to swap round the dates!
To do this you will need to know the span, or range, of your data. One way of doing this, if you don’t know the span up front, is to get hold of the series on the axis and find the min and max Dates in the series’ data adapter - the Axis.getChart(), Chart.getSeriesForAxis(Axis) and Series.getDataAdapter() methods will be useful here.
Then it’s just a case of transforming your dates appropriately. If you think about it, the chartDate = span - userDate. And by the same logic, the userDate = span - chartDate. This will effectively swap the dates around - I found it helpful to first think about this in terms of a NumberAxis! So, with the min and max dates you have found, your _transformUserValueToChartValue _method will look something like:
Date min, max;
// … find min and max dates
long span = max.getTime() - min.getTime();
return new Date(span - userValue.getTime());
The transformChartValueToUserValue will look very similar but will subtract chartValue.getTime() instead of userValue.getTime().
Hope that helps!