code: protected Component newUsernameTextField(final String id, final IModel<T> model)
  	{
  		final IModel<String> labelModel = ResourceModelFactory
  			.newResourceModel("global.username.label", this);
  		final IModel<String> placeholderModel = ResourceModelFactory
  			.newResourceModel("global.enter.your.username.label", this);
  		final LabeledTextFieldPanel<String, T> nameTextField = new LabeledTextFieldPanel<String, T>(
  			id, model, labelModel)
  		{
  
  			private static final long serialVersionUID = 1L;
  
  			@Override
  			@SuppressWarnings({ "rawtypes", "unchecked" })
  			protected TextField newTextField(final String id, final IModel<T> modelSuper)
  			{
  				final TextField<String> textField = new TextField<String>(id,
  					new PropertyModel<>(model, "username"));
  				textField.setOutputMarkupId(true);
  				textField.setRequired(true);
  				if (placeholderModel != null)
  				{
  					textField.add(new AttributeAppender("placeholder", placeholderModel));
  				}
  				return textField;
  			}
  		};
  		return nameTextField;
  	}
docs: Factory method for creating the TextField for the username. This method is invoked in the
  constructor from the derived classes and can be overridden so users can provide their own
  version of a TextField for the username.
  
  @param id
  the id
  @param model
  the model
  @return the text field