package jav.gui.wizard.profiler.resendID; import cis.profiler.client.ProfilerWebServiceStub.ValidateEmailRequest; import cis.profiler.client.ProfilerWebServiceStub.ValidateEmailRequestType; import cis.profiler.client.ProfilerWebServiceStub.ValidateEmailResponse; import cis.profiler.client.ProfilerWebServiceStub.ValidateEmailResponseType; import jav.gui.main.MainController; import java.rmi.RemoteException; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.openide.WizardDescriptor; import org.openide.WizardValidationException; import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; /** *Copyright (c) 2012, IMPACT working group at the Centrum für Informations- und Sprachverarbeitung, University of Munich. *All rights reserved. *Redistribution and use in source and binary forms, with or without *modification, are permitted provided that the following conditions are met: *Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. *Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in the *documentation and/or other materials provided with the distribution. *THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS *IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT *HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This file is part of the ocr-postcorrection tool developed * by the IMPACT working group at the Centrum für Informations- und Sprachverarbeitung, University of Munich. * For further information and contacts visit http://ocr.cis.uni-muenchen.de/ * * @author thorsten (thorsten.vobl@googlemail.com) */ public class ResendIDWizardPanel1 implements WizardDescriptor.ValidatingPanel<WizardDescriptor>, ChangeListener { private ResendIDVisualPanel1 component; private WizardDescriptor model; private ChangeSupport changeSupport = new ChangeSupport(this); @Override public ResendIDVisualPanel1 getComponent() { if (component == null) { component = new ResendIDVisualPanel1(this); } return component; } @Override public HelpCtx getHelp() { return HelpCtx.DEFAULT_HELP; } @Override public boolean isValid() { if( getComponent().getEmail().equals("") || !getComponent().getEmail().matches(".*@.*")) { return false; } else { return true; } } @Override public final void addChangeListener(ChangeListener l) { changeSupport.addChangeListener(l); } @Override public final void removeChangeListener(ChangeListener l) { changeSupport.removeChangeListener(l); } @Override public void readSettings(WizardDescriptor data) { this.model = data; } @Override public void storeSettings(WizardDescriptor data) { model.putProperty("Email", getComponent().getEmail()); } @Override public void stateChanged(ChangeEvent e) { changeSupport.fireChange(); } @Override public void validate() throws WizardValidationException { ValidateEmailRequest vrq = new ValidateEmailRequest(); ValidateEmailRequestType vrqt = new ValidateEmailRequestType(); vrqt.setEmail(getComponent().getEmail()); vrq.setValidateEmailRequest(vrqt); try { ValidateEmailResponse vrs = MainController.findInstance().getProfilerWebServiceStub().validateEmail(vrq); ValidateEmailResponseType vrst = vrs.getValidateEmailResponse(); /* * if there is no such email registered in the database, throw exception * (valid means that an email has not been registered yet) */ if (vrst.getReturncode() == 0 && vrst.getIsvalid()) { component.setMessage(java.util.ResourceBundle.getBundle("jav/gui/wizard/profiler/resendID/Bundle").getString("no_such_email")); throw new WizardValidationException(component, "", ""); } else if(vrst.getReturncode() != 0){ component.setMessage(vrst.getMessage()); throw new WizardValidationException(component, "", ""); } } catch (RemoteException ex) { component.setMessage(ex.getMessage()); throw new WizardValidationException(component, "", ""); } } }