package com.isti.traceview.gui;
import java.util.List;
import com.isti.traceview.common.TimeInterval;
import com.isti.traceview.data.PlotData;
/**
* State pattern realization for scale mode. Scale mode defines method of trace scaling inside each
* ChannelView
*/
public interface IScaleModeState {
/**
* Should be called before other methods using
*
* @param graphs
* List {@link PlotData} for current ChannelView
* @param allViews
* List {@link ChannelView} All views for graph panel
* @param timeRange
* TimeInterval set in graph panel
* @param meanState
* current mean state
* @param height
* height of current view, in pixels
*/
public void init(List<PlotData> graphs, List<ChannelView> allViews, TimeInterval timeRange, IMeanState meanState, int height);
/**
* @param value
* trace value
* @return Y screen panel coordinate to draw
*/
public int getY(double value);
/**
* @param y
* Y screen panel coordinate
* @return trace value
*/
public double getValue(int y);
/**
* @return name of state
*/
public String getStateName();
/**
* @return max value for all traces in current ChannelView
*/
public double getMaxValue();
/**
* @return min value for all traces in current ChannelView
*/
public double getMinValue();
}