package fr.opensagres.mongodb.ide.ui.wizards;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.widgets.Composite;
import fr.opensagres.mongodb.ide.ui.internal.IErrorMessageAware;
public abstract class AbstractWizardPage extends WizardPage implements
IErrorMessageAware {
private boolean loaded;
protected AbstractWizardPage(String pageName) {
super(pageName);
this.loaded = false;
}
protected AbstractWizardPage(String pageName, String title,
ImageDescriptor titleImage) {
super(pageName, title, titleImage);
}
public void createControl(Composite parent) {
Composite container = createUI(parent);
setControl(container);
}
@Override
public void setVisible(boolean visible) {
if (visible) {
if (!loaded) {
onLoad();
loaded = true;
}
validate();
}
super.setVisible(visible);
}
protected abstract void onLoad();
protected abstract Composite createUI(Composite parent);
public void validate() {
boolean result = validateFields();
if (result) {
setErrorMessage(null);
}
super.setPageComplete(result);
super.getContainer().updateButtons();
}
protected abstract boolean validateFields();
}