package org.jmeld.util.conf;
import java.io.*;
public abstract class AbstractConfiguration
{
private boolean changed;
private ConfigurationPreference preference;
private boolean disableFireChanged;
private boolean drawCurves;
private int curveType;
public AbstractConfiguration()
{
preference = new ConfigurationPreference(getClass());
}
public abstract void init();
public String getConfigurationFileName()
{
try
{
return preference.getFile().getCanonicalPath();
}
catch (IOException ex)
{
return "??";
}
}
public void setConfigurationFile(File file)
{
preference.setFile(file);
}
public boolean isChanged()
{
return changed;
}
public void save()
{
try
{
ConfigurationPersister.getInstance().save(this, preference.getFile());
changed = false;
fireChanged(changed);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public void addConfigurationListener(ConfigurationListenerIF listener)
{
getManager().addConfigurationListener(getClass(), listener);
}
public void removeConfigurationListener(ConfigurationListenerIF listener)
{
getManager().removeConfigurationListener(getClass(), listener);
}
void disableFireChanged(boolean disableFireChanged)
{
this.disableFireChanged = disableFireChanged;
}
public void fireChanged()
{
if (disableFireChanged)
{
return;
}
fireChanged(true);
}
public void fireChanged(boolean changed)
{
this.changed = changed;
getManager().fireChanged(getClass());
}
private ConfigurationManager getManager()
{
return ConfigurationManager.getInstance();
}
public boolean getDrawCurves() {
return drawCurves;
}
public boolean isDrawCurves() {
return drawCurves;
}
public void setDrawCurves(boolean drawCurves) {
this.drawCurves = drawCurves;
}
public int getCurveType() {
return curveType;
}
public void setCurveType(int curveType) {
this.curveType = curveType;
}
}