On change of user preferences create AccountInfoPreferences directly

To send the new user preferences to the server an
AccountGeneralPreferences object was created which was then converted
into an AccountInfoPreferences object. Rather create the
AccountInfoPreferences object directly without instantiating any
AccountGeneralPreferences object.

Change-Id: I1f7589c631388966e58930fd6b580c49c42dbd75
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2015-07-23 11:18:32 +02:00
parent 042c394f80
commit 8586292fcf
2 changed files with 37 additions and 43 deletions

View File

@@ -31,31 +31,25 @@ public class AccountPreferencesInfo extends JavaScriptObject {
return createObject().cast(); return createObject().cast();
} }
public static AccountPreferencesInfo create(AccountGeneralPreferences in,
List<TopMenuItem> myMenus) {
AccountPreferencesInfo p = createObject().cast();
p.changesPerPage(in.getMaximumPageSize());
p.showSiteHeader(in.isShowSiteHeader());
p.useFlashClipboard(in.isUseFlashClipboard());
p.downloadScheme(in.getDownloadUrl());
p.downloadCommand(in.getDownloadCommand());
p.copySelfOnEmail(in.isCopySelfOnEmails());
p.dateFormat(in.getDateFormat());
p.timeFormat(in.getTimeFormat());
p.relativeDateInChangeTable(in.isRelativeDateInChangeTable());
p.sizeBarInChangeTable(in.isSizeBarInChangeTable());
p.legacycidInChangeTable(in.isLegacycidInChangeTable());
p.muteCommonPathPrefixes(in.isMuteCommonPathPrefixes());
p.reviewCategoryStrategy(in.getReviewCategoryStrategy());
p.diffView(in.getDiffView());
if (myMenus != null) {
p.setMyMenus(myMenus);
}
return p;
}
public static AccountPreferencesInfo createDefault() { public static AccountPreferencesInfo createDefault() {
return create(AccountGeneralPreferences.createDefault(), null); AccountGeneralPreferences defaultPrefs =
AccountGeneralPreferences.createDefault();
AccountPreferencesInfo p = createObject().cast();
p.changesPerPage(defaultPrefs.getMaximumPageSize());
p.showSiteHeader(defaultPrefs.isShowSiteHeader());
p.useFlashClipboard(defaultPrefs.isUseFlashClipboard());
p.downloadScheme(defaultPrefs.getDownloadUrl());
p.downloadCommand(defaultPrefs.getDownloadCommand());
p.copySelfOnEmail(defaultPrefs.isCopySelfOnEmails());
p.dateFormat(defaultPrefs.getDateFormat());
p.timeFormat(defaultPrefs.getTimeFormat());
p.relativeDateInChangeTable(defaultPrefs.isRelativeDateInChangeTable());
p.sizeBarInChangeTable(defaultPrefs.isSizeBarInChangeTable());
p.legacycidInChangeTable(defaultPrefs.isLegacycidInChangeTable());
p.muteCommonPathPrefixes(defaultPrefs.isMuteCommonPathPrefixes());
p.reviewCategoryStrategy(defaultPrefs.getReviewCategoryStrategy());
p.diffView(defaultPrefs.getDiffView());
return p;
} }
public final short changesPerPage() { public final short changesPerPage() {
@@ -194,7 +188,7 @@ public class AccountPreferencesInfo extends JavaScriptObject {
private final native void diffViewRaw(String d) private final native void diffViewRaw(String d)
/*-{ this.diff_view = d }-*/; /*-{ this.diff_view = d }-*/;
final void setMyMenus(List<TopMenuItem> myMenus) { public final void setMyMenus(List<TopMenuItem> myMenus) {
initMy(); initMy();
for (TopMenuItem n : myMenus) { for (TopMenuItem n : myMenus) {
addMy(n); addMy(n);

View File

@@ -334,39 +334,39 @@ public class MyPreferencesScreen extends SettingsScreen {
} }
private void doSave() { private void doSave() {
AccountGeneralPreferences p = new AccountGeneralPreferences(); AccountPreferencesInfo p = AccountPreferencesInfo.create();
p.setShowSiteHeader(showSiteHeader.getValue()); p.showSiteHeader(showSiteHeader.getValue());
p.setUseFlashClipboard(useFlashClipboard.getValue()); p.useFlashClipboard(useFlashClipboard.getValue());
p.setCopySelfOnEmails(copySelfOnEmails.getValue()); p.copySelfOnEmail(copySelfOnEmails.getValue());
p.setMaximumPageSize(getListBox(maximumPageSize, DEFAULT_PAGESIZE)); p.changesPerPage(getListBox(maximumPageSize, DEFAULT_PAGESIZE));
p.setDateFormat(getListBox(dateFormat, p.dateFormat(getListBox(dateFormat,
AccountGeneralPreferences.DateFormat.STD, AccountGeneralPreferences.DateFormat.STD,
AccountGeneralPreferences.DateFormat.values())); AccountGeneralPreferences.DateFormat.values()));
p.setTimeFormat(getListBox(timeFormat, p.timeFormat(getListBox(timeFormat,
AccountGeneralPreferences.TimeFormat.HHMM_12, AccountGeneralPreferences.TimeFormat.HHMM_12,
AccountGeneralPreferences.TimeFormat.values())); AccountGeneralPreferences.TimeFormat.values()));
p.setRelativeDateInChangeTable(relativeDateInChangeTable.getValue()); p.relativeDateInChangeTable(relativeDateInChangeTable.getValue());
p.setSizeBarInChangeTable(sizeBarInChangeTable.getValue()); p.sizeBarInChangeTable(sizeBarInChangeTable.getValue());
p.setLegacycidInChangeTable(legacycidInChangeTable.getValue()); p.legacycidInChangeTable(legacycidInChangeTable.getValue());
p.setMuteCommonPathPrefixes(muteCommonPathPrefixes.getValue()); p.muteCommonPathPrefixes(muteCommonPathPrefixes.getValue());
p.setReviewCategoryStrategy(getListBox(reviewCategoryStrategy, p.reviewCategoryStrategy(getListBox(reviewCategoryStrategy,
ReviewCategoryStrategy.NONE, ReviewCategoryStrategy.NONE,
ReviewCategoryStrategy.values())); ReviewCategoryStrategy.values()));
p.setDiffView(getListBox(diffView, p.diffView(getListBox(diffView,
AccountGeneralPreferences.DiffView.SIDE_BY_SIDE, AccountGeneralPreferences.DiffView.SIDE_BY_SIDE,
AccountGeneralPreferences.DiffView.values())); AccountGeneralPreferences.DiffView.values()));
enable(false);
save.setEnabled(false);
List<TopMenuItem> items = new ArrayList<>(); List<TopMenuItem> items = new ArrayList<>();
for (List<String> v : myMenus.getValues()) { for (List<String> v : myMenus.getValues()) {
items.add(TopMenuItem.create(v.get(0), v.get(1))); items.add(TopMenuItem.create(v.get(0), v.get(1)));
} }
p.setMyMenus(items);
enable(false);
save.setEnabled(false);
AccountApi.self().view("preferences") AccountApi.self().view("preferences")
.put(AccountPreferencesInfo.create(p, items), .put(p, new GerritCallback<AccountPreferencesInfo>() {
new GerritCallback<AccountPreferencesInfo>() {
@Override @Override
public void onSuccess(AccountPreferencesInfo prefs) { public void onSuccess(AccountPreferencesInfo prefs) {
Gerrit.setUserPreferences(prefs); Gerrit.setUserPreferences(prefs);