/*
* Copyright (C) 2011-2014 GeoForge Project
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.geoforge.jfreechart.xyplot;
import java.util.Observer;
import org.geoforge.jfreechart.handler.IGfrValueLinearAndLogarithmic;
import org.geoforge.jfreechart.axis.GfrAxsLinRng;
import org.geoforge.jfreechart.axis.GfrAxsLgrRng;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.XYDataset;
/**
*
* @author Amadeus.Sowerby
*
* email: Amadeus.Sowerby_AT_gmail.com ... please remove "_AT_" from the above
* string to get the right email address
*
* Lgr: Logarithm
*/
abstract public class GfrXYPlotGridDepLgrAbs extends GfrXYPlotGridDepAbs implements
IGfrValueLinearAndLogarithmic,
Observer
{
//--beg private fields
private GfrAxsLgrRng _axsRangeAxisLgr_;
private GfrAxsLinRng _axsRangeAxisLin_;
//private boolean _blnAxisLog_ = false;
//--end private fields
//--beg public methods
protected GfrXYPlotGridDepLgrAbs(
XYDataset dataset,
ValueAxis domainAxis,
GfrAxsLinRng rangeAxisLinear,
GfrAxsLgrRng rangeAxisLogarithmic,
XYItemRenderer renderer)
{
super(
dataset,
domainAxis, // ValueAxis domainAxis
rangeAxisLinear, // ValueAxis rangeAxis
renderer);
this._axsRangeAxisLgr_ = rangeAxisLogarithmic;
this._axsRangeAxisLin_ = rangeAxisLinear;
/*if (_blnAxisLog_)
super.setRangeAxis(rangeAxisLogarithmic);
else
super.setRangeAxis(rangeAxisLinear);*/
}
public void setRangeAxisLogarithmic(
GfrAxsLgrRng axis)
{
this._axsRangeAxisLgr_ = axis;
}
public void setRangeAxisLinear(
GfrAxsLinRng axis)
{
super.setRangeAxis(axis);
this._axsRangeAxisLin_ = axis;
}
@Override
public boolean isAxisXLogarithmic()
{
ValueAxis vas = super.getRangeAxis();
if (vas instanceof GfrAxsLgrRng)
return true;
return false;
}
@Override
public void setAxisXLogarithmic(boolean bln)
{
//this._blnAxisLog_ = bln;
ValueAxis vas = super.getRangeAxis();
if (bln && (vas instanceof GfrAxsLgrRng))
return;
if (!bln && (vas instanceof GfrAxsLinRng))
return;
if (bln)
vas = this._axsRangeAxisLgr_;
else
vas = this._axsRangeAxisLin_;
super.setRangeAxis(vas);
}
//--end public methods
//--
}