diff --git a/src/main/java/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.java b/src/main/java/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.java index 46676a2356..4bec06a601 100755 --- a/src/main/java/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.java +++ b/src/main/java/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.java @@ -22,7 +22,6 @@ import org.gwtbootstrap3.client.ui.TextArea; import org.gwtbootstrap3.client.ui.TextBox; import org.gwtbootstrap3.client.ui.Tooltip; -import org.gwtbootstrap3.client.ui.base.TextBoxBase; import org.gwtbootstrap3.client.ui.constants.ValidationState; import org.gwtbootstrap3.client.ui.html.Div; import org.gwtbootstrap3.client.ui.html.Paragraph; @@ -64,27 +63,48 @@ public interface Binder @UiField TextBox username; + @UiField + Paragraph usernameRenderer; + @UiField TextBox firstName; + @UiField + Paragraph firstNameRenderer; + @UiField TextBox lastName; + @UiField + Paragraph lastNameRenderer; + @UiField TextBox currentPosition; + @UiField + Paragraph currentPositionRenderer; + @UiField TextBox currentAffiliation; + @UiField + Paragraph currentAffiliationRenderer; + @UiField TextBox industry; + @UiField + Paragraph industryRenderer; + @UiField Div emailDiv; @UiField Div locationSuggestBoxContainer; + @UiField + Paragraph locationRenderer; + @UiField FormGroup linkFormGroup; @@ -151,7 +171,6 @@ public interface Binder SuggestBox locationSuggestBox; private Widget widget; - TextBoxBase[] textBoxes; com.google.gwt.user.client.ui.TextBoxBase locationTextBox; boolean isEditing = false; SynapseJSNIUtils jsniUtils; @@ -182,17 +201,6 @@ public UserProfileEditorWidgetViewImpl( locationTextBox = locationSuggestBox.getTextBox(); locationTextBox.addStyleName("form-control"); locationSuggestBoxContainer.add(locationSuggestBox); - // note, not adding email since it's not editable here. - textBoxes = - new TextBoxBase[] { - username, - firstName, - lastName, - currentPosition, - currentAffiliation, - industry, - link, - }; editProfileButton.addClickHandler(event -> { presenter.setIsEditingMode(true); }); @@ -215,6 +223,7 @@ public Widget asWidget() { @Override public void setUsername(String username) { this.username.setText(username); + usernameRenderer.setText(username); } @Override @@ -255,6 +264,7 @@ private IsWidget getEmailElement(String email, String paragraphStyles) { @Override public void setFirstName(String firstName) { this.firstName.setText(firstName); + firstNameRenderer.setText(firstName); } @Override @@ -275,6 +285,7 @@ public String getUsername() { @Override public void setLastName(String lastName) { this.lastName.setText(lastName); + lastNameRenderer.setText(lastName); } @Override @@ -340,11 +351,13 @@ public String getCurrentPosition() { @Override public void setCurrentPosition(String position) { currentPosition.setText(position); + currentPositionRenderer.setText(position); } @Override public void setCurrentAffiliation(String company) { currentAffiliation.setText(company); + currentAffiliationRenderer.setText(company); } @Override @@ -355,6 +368,7 @@ public String getCurrentAffiliation() { @Override public void setIndustry(String industry) { this.industry.setText(industry); + industryRenderer.setText(industry); } @Override @@ -365,6 +379,7 @@ public String getIndustry() { @Override public void setLocation(String location) { this.locationSuggestBox.setText(location); + locationRenderer.setText(location); } @Override @@ -395,33 +410,46 @@ public void addKeyDownHandlerToFields(KeyDownHandler keyDownHandler) { @Override public void setEditMode(boolean isEditing) { this.isEditing = isEditing; - for (TextBoxBase tb : textBoxes) { - tb.setReadOnly(!isEditing); - } bioEditor.setVisible(isEditing); bioRenderer.setVisible(!isEditing); locationTextBox.setReadOnly(!isEditing); + firstName.setVisible(isEditing); + firstNameRenderer.setVisible(!isEditing); firstName.setPlaceholder(isEditing ? "Enter first name" : ""); + lastName.setVisible(isEditing); + lastNameRenderer.setVisible(!isEditing); lastName.setPlaceholder(isEditing ? "Enter last name" : ""); + currentAffiliation.setVisible(isEditing); + currentAffiliationRenderer.setVisible(!isEditing); currentAffiliation.setPlaceholder( isEditing ? "Enter current affiliation" : "" ); + bioEditor.setPlaceholder("Enter bio"); + link.setVisible(isEditing); + linkRenderer.setVisible(!isEditing); link.setPlaceholder(isEditing ? "Enter link to more info" : ""); + locationSuggestBoxContainer.setVisible(isEditing); + locationRenderer.setVisible(!isEditing); locationTextBox .getElement() .setAttribute("placeholder", isEditing ? "Enter City, Country" : ""); + currentPosition.setVisible(isEditing); + currentPositionRenderer.setVisible(!isEditing); currentPosition.setPlaceholder(isEditing ? "Enter current position" : ""); + industry.setVisible(isEditing); + industryRenderer.setVisible(!isEditing); industry.setPlaceholder(isEditing ? "Enter industry/discipline" : ""); editProfileButton.setVisible(!isEditing); saveProfileButton.setVisible(isEditing); cancelButton.setVisible(isEditing); - linkRenderer.setVisible(!isEditing); - link.setVisible(isEditing); changeEmailLink.setVisible(isEditing); changePasswordLink.setVisible(isEditing); + username.setVisible(isEditing); + usernameRenderer.setVisible(!isEditing); + if (!isEditing) { DisplayUtils.showLoading(saveProfileButton, false, originalButtonText); } diff --git a/src/main/resources/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.ui.xml b/src/main/resources/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.ui.xml index 46b5221a77..9f4dac0fec 100755 --- a/src/main/resources/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.ui.xml +++ b/src/main/resources/org/sagebionetworks/web/client/widget/profile/UserProfileEditorWidgetViewImpl.ui.xml @@ -30,12 +30,14 @@ First Name + Last Name + @@ -44,6 +46,10 @@ Current Position + @@ -55,6 +61,10 @@ name="currentAffiliation" ui:field="currentAffiliation" /> + @@ -76,6 +86,7 @@ Username + @@ -95,12 +106,14 @@ Industry/Discipline + City, Country + @@ -144,6 +157,7 @@ > NotThePassword +