In a bunch of places you have code like:
PasswordField passwordField = componentsFactory.createComponent(PasswordField.NAME);
and
PasswordField passwordField = componentsFactory.createComponent(PasswordField.NAME);
This doesn’t compile. It should either be:
PasswordField passwordField = (PasswordField)componentsFactory.createComponent(PasswordField.NAME);
or
PasswordField passwordField = componentsFactory.createComponent(PasswordField.class);