package info.opencards.ui.preferences;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
/**
* DOCUMENT ME!
*
* @author Holger Brandl
*/
public abstract class AbstractSettingsPanel extends JPanel {
private final List<SettingsPanelChangeListener> settingsPanelChangeListeners = new ArrayList<SettingsPanelChangeListener>();
private boolean settingsChanged;
AbstractSettingsPanel() {
}
/**
* Adds a new listener.
*/
public void addSettingsPanelChangeListener(SettingsPanelChangeListener l) {
if (l == null)
return;
settingsPanelChangeListeners.add(l);
}
/**
* Removes a listener.
*/
public void removeSettingsPanelChangeListener(SettingsPanelChangeListener l) {
if (l == null)
return;
settingsPanelChangeListeners.remove(l);
}
abstract void resetPanelSettings();
abstract void applySettingsChanges();
abstract protected void loadDefaults();
public boolean isSettingsChanged() {
for (SettingsPanelChangeListener settingsPanelChangeListener : settingsPanelChangeListeners) {
settingsPanelChangeListener.settingsChanged(this);
}
return settingsChanged;
}
protected void setSettingsChanged(boolean settingsChanged) {
this.settingsChanged = settingsChanged;
}
}