form.addWidget(new AvatarUploadFormElement("Photo", "/eurekastreams/personavatarupload",
Session.getInstance().getActionProcessor(), new AvatarUploadStrategy<PersonModelView>(
person, "resizePersonAvatar", EntityType.PERSON)));
form.addFormDivider();
form.addFormElement(new BasicTextBoxFormElement(MAX_LENGTH, false, "Title",
PersonModelView.TITILE_KEY, person.getTitle(),
"Your title will appear below your photo on the profile page", true));
form.addFormDivider();
form.addFormElement(new BasicTextBoxFormElement(MAX_LENGTH, false, "First Name",
PersonModelView.PREFERREDNAME_KEY, person.getPreferredName(),
"Entering a display name will replace your first name anywhere your name "
+ "appears in the system", true));
form.addFormDivider();
form.addFormElement(new BasicTextAreaFormElement(Person.MAX_JOB_DESCRIPTION_LENGTH,
"Job Description", PersonModelView.DESCRIPTION_KEY, person.getJobDescription(),
"Enter a brief description of your job responsibilities.", false));
form.addFormDivider();
String skills = DomainFormatUtility.buildCapabilitiesStringFromStrings(person.getInterests());
form.addFormElement(new AutoCompleteItemDropDownFormElement("Keywords",
PersonModelView.SKILLS_KEY, skills,
"Add keywords that describe your work experience, skills, interests, or "
+ "hobbies. Separate keywords with a comma. Including tags increases your "
+ "chances of being found in a profile search.", false,
"/resources/autocomplete/skill/", "itemNames", ElementType.TEXTAREA, ","));
form.addFormDivider();
form.addFormElement(new BasicTextBoxFormElement(MAX_LENGTH, false, "Phone",
PersonModelView.WORKPHONE_KEY, person.getWorkPhone(), null, false));
form.addFormDivider();
form.addFormElement(new BasicTextBoxFormElement(MAX_EMAIL, false, "Email",
PersonModelView.EMAIL_KEY, person.getEmail(), "(ex. user@example.com)", true));
form.addFormDivider();
BasicCheckBoxFormElement blockWallPost = new BasicCheckBoxFormElement("Stream Moderation",
"streamPostable", " Allow others to post to your stream", false, person