package nl.fontys.sofa.limo.view.wizard.hub;
import java.text.MessageFormat;
import javax.swing.event.ChangeListener;
import nl.fontys.sofa.limo.domain.component.hub.Hub;
import nl.fontys.sofa.limo.validation.BeanValidator;
import nl.fontys.sofa.limo.validation.ValidationException;
import nl.fontys.sofa.limo.view.util.LIMOResourceBundle;
import org.openide.WizardDescriptor;
import org.openide.WizardValidationException;
import org.openide.util.HelpCtx;
/**
* Location Wizard for Hub.
*
* @author Pascal Lindner
*/
public class LocationHubWizard implements WizardDescriptor.Panel<WizardDescriptor>, WizardDescriptor.ValidatingPanel<WizardDescriptor> {
private LocationHubPanel component;
private Hub hub;
private final BeanValidator validator = BeanValidator.getInstance();
@Override
public LocationHubPanel getComponent() {
if (component == null) {
component = new LocationHubPanel();
}
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) {
}
@Override
public void readSettings(WizardDescriptor wiz) {
hub = (Hub) wiz.getProperty("hub");
if (hub != null) {
getComponent().updateLabel(null);
getComponent().updateLabel(hub.getLocation());
}
}
@Override
public void storeSettings(WizardDescriptor wiz) {
hub.setLocation(getComponent().getHubLocation());
}
@Override
public void validate() throws WizardValidationException {
Hub localHub = new Hub(this.hub);
localHub.setLocation(component.getHubLocation());
try {
validator.validate(localHub);
} catch (ValidationException ex) {
throw new WizardValidationException(null, MessageFormat.format(LIMOResourceBundle.getString("VALUE_NOT_SET"), LIMOResourceBundle.getString("CONTINENT")), null);
}
}
}