package com.isti.traceview.gui;
/**
* Abstract class for state pattern realization for scale mode. Each concrete scale mode should
* extend this class ChannelView
*
* @author Max Kokoulin
*/
public abstract class ScaleModeAbstract implements IScaleModeState {
protected double maxValue = Double.NEGATIVE_INFINITY;
protected double amp = 0.0;
protected int height = 0;
private static double manualValueMax = Double.NEGATIVE_INFINITY;
private static double manualValueMin = Double.POSITIVE_INFINITY;
/*
* Returns channel value Input: Y screen panel coordinate
*/
public double getValue(int y) {
return maxValue - y * (amp / new Double(height));
}
public int getY(double value) {
return new Double(height * ((maxValue - value) / (new Double(amp)))).intValue();
}
public double getMaxValue() {
return maxValue;
}
public double getMinValue() {
return maxValue - amp;
}
public static double getManualValueMax() {
return manualValueMax;
}
public static double getManualValueMin() {
return manualValueMin;
}
public static void setManualValueMax(double val) {
manualValueMax = val;
}
public static void setManualValueMin(double val) {
manualValueMin = val;
}
}