package nl.fontys.sofa.limo.view.wizard.types.leg;
import java.util.ArrayList;
import javax.swing.event.ChangeListener;
import nl.fontys.sofa.limo.domain.component.procedure.Procedure;
import nl.fontys.sofa.limo.domain.component.type.LegType;
import nl.fontys.sofa.limo.view.custom.panel.ProceduresPanel;
import nl.fontys.sofa.limo.view.util.LIMOResourceBundle;
import org.openide.WizardDescriptor;
import org.openide.WizardValidationException;
import org.openide.util.HelpCtx;
/**
* Add Procedure to LegType
*
* @author Pascal Lindner
*/
public class ProceduresLegTypeWizard implements WizardDescriptor.Panel<WizardDescriptor>, WizardDescriptor.ValidatingPanel<WizardDescriptor> {
private ProceduresPanel component;
private LegType lastType;
private LegType legType;
public ProceduresLegTypeWizard() {
}
@Override
public ProceduresPanel getComponent() {
if (component == null) {
component = new ProceduresPanel();
}
return component;
}
@Override
public HelpCtx getHelp() {
return HelpCtx.DEFAULT_HELP;
}
@Override
public boolean isValid() {
return true;
}
@Override
public void addChangeListener(ChangeListener l) {
}
@Override
public void removeChangeListener(ChangeListener l) {
}
//Update Procedures
@Override
public void readSettings(WizardDescriptor wiz) {
legType = (LegType) wiz.getProperty(LegTypeWizardAction.TYPE_NEWTYPE);
if (legType != null) {
if (legType != lastType) {
getComponent().update(legType.getProcedures());
}
} else {
if (lastType != null) {
getComponent().update(new ArrayList<>());
}
}
lastType = legType;
}
//Store settings
@Override
public void storeSettings(WizardDescriptor wiz) {
legType.setProcedures(getComponent().getProcedures());
}
//Validate
@Override
public void validate() throws WizardValidationException {
if (component.getProcedures().isEmpty()) {
throw new WizardValidationException(null, null, LIMOResourceBundle.getString("VALUE_NOT_SET2", LIMOResourceBundle.getString("PROCEDURES")));
}
}
}