ContactPanelShort: Fix enabling/disabling save button on edit

There should be only a single OnEditEnabler that takes care of
enabling/disabling the save button. On each change of the full name we
created a new OnEditEnabler instance, each with a different original
value. Due to this changing the name from 'User' -> 'User Foo' ->
'User' was not possible, because the first OnEditEnabled with original
value 'User' disabled the save button.

Change-Id: I3f43fe1f17a577f78777bf44ff8be6685167df6a
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin 2016-08-19 15:36:40 +02:00
parent bbafaa36f5
commit b826642c34
2 changed files with 8 additions and 2 deletions

View File

@ -61,6 +61,7 @@ class ContactPanelShort extends Composite {
NpTextBox nameTxt;
private ListBox emailPick;
private Button registerNewEmail;
private OnEditEnabler onEditEnabler;
ContactPanelShort() {
body = new FlowPanel();
@ -167,6 +168,8 @@ class ContactPanelShort extends Composite {
}
}
});
onEditEnabler = new OnEditEnabler(save, nameTxt);
}
private boolean canEditFullName() {
@ -230,7 +233,7 @@ class ContactPanelShort extends Composite {
updateEmailList();
registerNewEmail.setEnabled(true);
save.setEnabled(false);
new OnEditEnabler(save, nameTxt);
onEditEnabler.updateOriginalValue(nameTxt);
}
display();
}
@ -249,7 +252,7 @@ class ContactPanelShort extends Composite {
currentEmail = account.email();
nameTxt.setText(account.name());
save.setEnabled(false);
new OnEditEnabler(save, nameTxt);
onEditEnabler.updateOriginalValue(nameTxt);
}
private void doRegisterNewEmail() {

View File

@ -73,6 +73,9 @@ public class OnEditEnabler implements KeyPressHandler, KeyDownHandler,
widget = w;
}
public void updateOriginalValue(final TextBoxBase tb) {
originalValue = tb.getValue().trim();
}
// Register input widgets to be listened to