Package name.abuchen.portfolio.ui.dialogs

Source Code of name.abuchen.portfolio.ui.dialogs.PasswordDialog

package name.abuchen.portfolio.ui.dialogs;

import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.util.BindingHelper.Model;

import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.validation.MultiValidator;
import org.eclipse.core.databinding.validation.ValidationStatus;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;

public class PasswordDialog extends AbstractDialog
{
    public static class PasswordModel extends Model
    {
        private String password;
        private String repeat;

        public String getPassword()
        {
            return password;
        }

        public void setPassword(String password)
        {
            firePropertyChange("password", this.password, this.password = password); //$NON-NLS-1$
        }

        public String getRepeat()
        {
            return repeat;
        }

        public void setRepeat(String repeat)
        {
            firePropertyChange("repeat", this.repeat, this.repeat = repeat); //$NON-NLS-1$
        }

        @Override
        public void applyChanges()
        {}
    }

    public PasswordDialog(Shell parentShell)
    {
        super(parentShell, Messages.TitlePasswordDialog, new PasswordModel());
    }

    @Override
    protected void createFormElements(Composite editArea)
    {
        final IObservableValue password = bindings().bindStringInput(editArea, Messages.LabelPassword,
                        "password", SWT.PASSWORD); //$NON-NLS-1$
        final IObservableValue repeat = bindings().bindStringInput(editArea, Messages.LabelPasswordRepeat,
                        "repeat", SWT.PASSWORD); //$NON-NLS-1$

        // multi validator (passwords must be identical)
        MultiValidator validator = new MultiValidator()
        {

            @Override
            protected IStatus validate()
            {
                String pwd = (String) password.getValue();
                String rpt = (String) repeat.getValue();

                if (pwd.length() < 6)
                    return ValidationStatus.error(Messages.MsgPasswordMinCharacters);

                return pwd.equals(rpt) ? ValidationStatus.ok() : ValidationStatus
                                .error(Messages.MsgPasswordNotIdentical);
            }

        };
        bindings().getBindingContext().addValidationStatusProvider(validator);
    }

    public String getPassword()
    {
        return ((PasswordModel) getModel()).getPassword();
    }
}
TOP

Related Classes of name.abuchen.portfolio.ui.dialogs.PasswordDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.