/*
* 1.1+Swing version.
*/
import javax.swing.*;
import javax.swing.event.*;
public class FollowerRangeModel extends ConverterRangeModel
implements ChangeListener {
ConverterRangeModel dataModel;
public FollowerRangeModel(ConverterRangeModel dataModel) {
this.dataModel = dataModel;
dataModel.addChangeListener(this);
}
public void stateChanged(ChangeEvent e) {
fireStateChanged();
}
public int getMaximum() {
int modelMax = dataModel.getMaximum();
double multiplyBy = dataModel.getMultiplier()/multiplier;
if (DEBUG) {
System.out.println("In FollowerRangeModel getMaximum");
System.out.println(" dataModel.getMaximum = " + modelMax
+ "; multiply by " + multiplyBy
+ "; result: " + modelMax*multiplyBy);
}
return (int)(modelMax * multiplyBy);
}
public void setMaximum(int newMaximum) {
dataModel.setMaximum((int)(newMaximum *
(multiplier/dataModel.getMultiplier())));
}
public int getValue() {
return (int)getDoubleValue();
}
public void setValue(int newValue) {
setDoubleValue((double)newValue);
}
public double getDoubleValue() {
return dataModel.getDoubleValue()
* dataModel.getMultiplier()
/ multiplier;
}
public void setDoubleValue(double newValue) {
dataModel.setDoubleValue(
newValue * multiplier
/ dataModel.getMultiplier());
}
public int getExtent() {
return super.getExtent();
}
public void setExtent(int newExtent) {
super.setExtent(newExtent);
}
public void setRangeProperties(int value,
int extent,
int min,
int max,
boolean adjusting) {
double multiplyBy = multiplier/dataModel.getMultiplier();
dataModel.setRangeProperties(value*multiplyBy,
extent, min,
(int)(max*multiplyBy),
adjusting);
}
}
|