public MDPasswordField(String label, boolean light) {
String primaryStyleName = light ? Styles.TextFields.LIGHT : Styles.TextFields.DARK;
setPrimaryStyleName(primaryStyleName);
setFloatingLabelEnabled(true);
this.label.setValue(label);
this.label.setPrimaryStyleName(primaryStyleName + "-label");
this.label.addStyleName(RESTING);
this.label.setWidthUndefined();
this.icon.setPrimaryStyleName(primaryStyleName + "-icon");
this.field.setPrimaryStyleName(primaryStyleName + "-input");
this.field.addFocusListener(event -> {
addStyleName("focus");
updateFloatingLabelPosition(field.getValue());
});
this.field.addBlurListener(event -> {
removeStyleName("focus");
updateFloatingLabelPosition(field.getValue());
});
this.field.addValueChangeListener(event -> updateFloatingLabelPosition(event.getValue()));
this.helper.setPrimaryStyleName(primaryStyleName + "-helper");
this.helper.setWidthUndefined();
addComponents(this.label, icon, field, this.helper);
}