1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.ui.commons.markup.html.form;
20
21 import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.password.strength.PasswordStrengthBehavior;
22 import java.util.Optional;
23 import org.apache.syncope.client.ui.commons.Constants;
24 import org.apache.syncope.client.ui.commons.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
25 import org.apache.wicket.ajax.AjaxRequestTarget;
26 import org.apache.wicket.markup.html.form.PasswordTextField;
27 import org.apache.wicket.model.IModel;
28 import org.apache.wicket.model.ResourceModel;
29
30 public class AjaxPasswordFieldPanel extends FieldPanel<String> {
31
32 private static final long serialVersionUID = -5490115280336667460L;
33
34 public AjaxPasswordFieldPanel(
35 final String id,
36 final String name,
37 final IModel<String> model,
38 final boolean enableOnChange) {
39
40 this(id, name, model, enableOnChange, null);
41 }
42
43 public AjaxPasswordFieldPanel(
44 final String id,
45 final String name,
46 final IModel<String> model,
47 final boolean enableOnChange,
48 final PasswordStrengthBehavior passwordStrengthBehavior) {
49
50 super(id, name, model);
51
52 field = new PasswordTextField("passwordField", model);
53 add(field.setLabel(new ResourceModel(name, name)).setRequired(false).setOutputMarkupId(true));
54 Optional.ofNullable(passwordStrengthBehavior).ifPresent(field::add);
55
56 if (enableOnChange && !isReadOnly()) {
57 field.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
58
59 private static final long serialVersionUID = -1107858522700306810L;
60
61 @Override
62 protected void onUpdate(final AjaxRequestTarget target) {
63
64 }
65 });
66 }
67 }
68
69 public AjaxPasswordFieldPanel setResetPassword(final boolean resetPassword) {
70 ((PasswordTextField) field).setResetPassword(resetPassword);
71 return this;
72 }
73
74 @Override
75 public FieldPanel<String> addRequiredLabel() {
76 if (!isRequired()) {
77 setRequired(true);
78 }
79
80 this.isRequiredLabelAdded = true;
81 return this;
82 }
83 }