Use OnEditEnabler in MyPreferencesScreen to enable the save button

Change-Id: Ia50b4ce13b003ccb6861ac279120979a645d0c37
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2012-12-07 13:46:41 +01:00
parent 449912e114
commit 6ad83bae84

View File

@@ -20,10 +20,9 @@ import static com.google.gerrit.reviewdb.client.AccountGeneralPreferences.PAGESI
import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.ScreenLoadCallback; import com.google.gerrit.client.rpc.ScreenLoadCallback;
import com.google.gerrit.client.ui.OnEditEnabler;
import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gerrit.reviewdb.client.AccountGeneralPreferences;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.DateTimeFormat;
@@ -52,39 +51,15 @@ public class MyPreferencesScreen extends SettingsScreen {
protected void onInitUI() { protected void onInitUI() {
super.onInitUI(); super.onInitUI();
final ClickHandler onClickSave = new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
save.setEnabled(true);
}
};
final ChangeHandler onChangeSave = new ChangeHandler() {
@Override
public void onChange(final ChangeEvent event) {
save.setEnabled(true);
}
};
showSiteHeader = new CheckBox(Util.C.showSiteHeader()); showSiteHeader = new CheckBox(Util.C.showSiteHeader());
showSiteHeader.addClickHandler(onClickSave);
useFlashClipboard = new CheckBox(Util.C.useFlashClipboard()); useFlashClipboard = new CheckBox(Util.C.useFlashClipboard());
useFlashClipboard.addClickHandler(onClickSave);
copySelfOnEmails = new CheckBox(Util.C.copySelfOnEmails()); copySelfOnEmails = new CheckBox(Util.C.copySelfOnEmails());
copySelfOnEmails.addClickHandler(onClickSave);
reversePatchSetOrder = new CheckBox(Util.C.reversePatchSetOrder()); reversePatchSetOrder = new CheckBox(Util.C.reversePatchSetOrder());
reversePatchSetOrder.addClickHandler(onClickSave);
showUsernameInReviewCategory = new CheckBox(Util.C.showUsernameInReviewCategory()); showUsernameInReviewCategory = new CheckBox(Util.C.showUsernameInReviewCategory());
showUsernameInReviewCategory.addClickHandler(onClickSave);
maximumPageSize = new ListBox(); maximumPageSize = new ListBox();
for (final short v : PAGESIZE_CHOICES) { for (final short v : PAGESIZE_CHOICES) {
maximumPageSize.addItem(Util.M.rowsPerPage(v), String.valueOf(v)); maximumPageSize.addItem(Util.M.rowsPerPage(v), String.valueOf(v));
} }
maximumPageSize.addChangeHandler(onChangeSave);
Date now = new Date(); Date now = new Date();
dateFormat = new ListBox(); dateFormat = new ListBox();
@@ -96,7 +71,6 @@ public class MyPreferencesScreen extends SettingsScreen {
r.append(DateTimeFormat.getFormat(fmt.getLongFormat()).format(now)); r.append(DateTimeFormat.getFormat(fmt.getLongFormat()).format(now));
dateFormat.addItem(r.toString(), fmt.name()); dateFormat.addItem(r.toString(), fmt.name());
} }
dateFormat.addChangeHandler(onChangeSave);
timeFormat = new ListBox(); timeFormat = new ListBox();
for (AccountGeneralPreferences.TimeFormat fmt : AccountGeneralPreferences.TimeFormat for (AccountGeneralPreferences.TimeFormat fmt : AccountGeneralPreferences.TimeFormat
@@ -105,7 +79,6 @@ public class MyPreferencesScreen extends SettingsScreen {
r.append(DateTimeFormat.getFormat(fmt.getFormat()).format(now)); r.append(DateTimeFormat.getFormat(fmt.getFormat()).format(now));
timeFormat.addItem(r.toString(), fmt.name()); timeFormat.addItem(r.toString(), fmt.name());
} }
timeFormat.addChangeHandler(onChangeSave);
FlowPanel dateTimePanel = new FlowPanel(); FlowPanel dateTimePanel = new FlowPanel();
@@ -163,6 +136,16 @@ public class MyPreferencesScreen extends SettingsScreen {
} }
}); });
add(save); add(save);
final OnEditEnabler e = new OnEditEnabler(save);
e.listenTo(showSiteHeader);
e.listenTo(useFlashClipboard);
e.listenTo(copySelfOnEmails);
e.listenTo(reversePatchSetOrder);
e.listenTo(showUsernameInReviewCategory);
e.listenTo(maximumPageSize);
e.listenTo(dateFormat);
e.listenTo(timeFormat);
} }
@Override @Override