package nl.fontys.sofa.limo.view.wizard.leg.multimode;
import java.util.HashMap;
import javax.swing.event.ChangeListener;
import nl.fontys.sofa.limo.domain.component.leg.MultiModeLeg;
import org.openide.WizardDescriptor;
import org.openide.WizardValidationException;
import org.openide.util.HelpCtx;
/**
* Multimode leg Wizard.
*
* @author Pascal Lindner
*/
public class MultimodeLegTableWizard implements WizardDescriptor.ValidatingPanel<WizardDescriptor> {
private MultimodeLegTablePanel component;
private MultiModeLeg leg;
@Override
public MultimodeLegTablePanel getComponent() {
if (component == null) {
component = new MultimodeLegTablePanel();
}
return component;
}
@Override
public HelpCtx getHelp() {
return HelpCtx.DEFAULT_HELP;
}
@Override
public boolean isValid() {
return true;
}
@Override
public void validate() throws WizardValidationException {
if (getComponent().getLegModel().getMap() == null || getComponent().getLegModel().getMap().isEmpty()) {
throw new WizardValidationException(null, "A multi-mode leg should contain at least one leg!", null);
}
}
@Override
public void addChangeListener(ChangeListener l) {
}
@Override
public void removeChangeListener(ChangeListener l) {
}
@Override
public void readSettings(WizardDescriptor wiz) {
leg = (MultiModeLeg) wiz.getProperty("leg");
if (leg.getLegs() != null) {
getComponent().getLegModel().addLegs(new HashMap<>(leg.getLegs()));
}
}
//Save the Map of Legs
@Override
public void storeSettings(WizardDescriptor wiz) {
leg.setLegs(getComponent().getLegModel().getMap());
}
}