/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon;
import org.openide.WizardDescriptor;
import org.openide.util.ChangeSupport;
import org.openide.util.HelpCtx;
import java.awt.Component;
import javax.swing.event.ChangeListener;
/**
* Why is this needed here? The same class already exists in cismet-gui-commons.
*
* @author martin.scholl@cismet.de
* @version $Revision$, $Date$
* @deprecated same class already exists in cismet-gui-commons
*/
public abstract class AbstractWizardPanel implements WizardDescriptor.Panel {
//~ Instance fields --------------------------------------------------------
protected final transient ChangeSupport changeSupport;
protected transient WizardDescriptor wizard;
private transient volatile Component component;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new AbstractWizardPanel object.
*/
public AbstractWizardPanel() {
this.changeSupport = new ChangeSupport(this);
}
//~ Methods ----------------------------------------------------------------
@Override
public Component getComponent() {
if (component == null) {
synchronized (this) {
if (component == null) {
component = createComponent();
}
}
}
return component;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
protected abstract Component createComponent();
@Override
public HelpCtx getHelp() {
return HelpCtx.DEFAULT_HELP;
}
@Override
public void readSettings(final Object settings) {
this.wizard = (WizardDescriptor)settings;
this.read(wizard);
}
@Override
public void storeSettings(final Object settings) {
this.wizard = (WizardDescriptor)settings;
this.store(wizard);
}
/**
* DOCUMENT ME!
*
* @param wizard DOCUMENT ME!
*/
protected abstract void read(final WizardDescriptor wizard);
/**
* DOCUMENT ME!
*
* @param wizard DOCUMENT ME!
*/
protected abstract void store(final WizardDescriptor wizard);
@Override
public void addChangeListener(final ChangeListener l) {
changeSupport.addChangeListener(l);
}
@Override
public void removeChangeListener(final ChangeListener l) {
changeSupport.removeChangeListener(l);
}
@Override
public boolean isValid() {
return true;
}
}