/* * Ext GWT 2.2.4 - Ext for GWT * Copyright(c) 2007-2010, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.charts.client.model; /** * Provides the chart scale given a minimum and maximum value. */ public interface ScaleProvider { public static ScaleProvider DEFAULT_SCALE_PROVIDER = new ScaleProvider() { public Scale calcScale(double min, double max) { if (min == 0 && max == 0) { return new Scale(-1, 1, 1); } min = Math.floor(min * (min > 0 ? .9 : 1.1)); max = Math.ceil(max * (max > 0 ? 1.1 : .9)); return new Scale(min, max, Math.max(Math.abs(min), Math.abs(max)) / 10); } }; public static ScaleProvider ROUNDED_NEAREST_SCALE_PROVIDER = new ScaleProvider() { public Scale calcScale(double min, double max) { Scale scale = DEFAULT_SCALE_PROVIDER.calcScale(min, max); scale.setInterval(Math.round(scale.getInterval())); return scale; } }; /** * Returns the scale for the given minimum and maximum value. * * @param min the minimum value * @param max the maximum value * @return the scale */ public Scale calcScale(double min, double max); }