package com.akjava.gwt.lib.client.experimental;
import com.google.common.base.Converter;
/*
* min -99 max 90
*/
public class ImageScaleRangeConverter extends Converter<Integer,Double>{
@Override
protected Double doForward(Integer rangeValue) {
if(rangeValue==0){
return 1.0;
}
if(rangeValue>0){
return 1.0+rangeValue*0.1;
}else if(rangeValue<0){
return 1.0+rangeValue*0.01;
}
return 1.0;
}
@Override
protected Integer doBackward(Double scale) {
if(scale==1){
return 0;
}else if(scale>1){
return (int)(scale*10)-10;
}else{//scale<1
int r=100-(int)(scale*100);
return -r;
}
}
private static Converter<Integer,Double> converter;
public static Converter<Integer,Double> getRangeToScale(){
Converter<Integer,Double> result=converter;
return (result == null) ? converter = new ImageScaleRangeConverter() : result;
}
private static Converter<Double,Integer> reverse;
public static Converter<Double,Integer> getScaleToRange(){
Converter<Double,Integer> result=reverse;
return (result == null) ? reverse = new ImageScaleRangeConverter().reverse() : result;
}
}