From 042c394f80135145a4ecdaf4f87022be15e623f2 Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Thu, 23 Jul 2015 10:46:03 +0200 Subject: [PATCH] Simplify client code that reads the user preferences Use Gerrit.getUserPeferences() instead of Gerrit.getUserAccount().getGeneralPreferences() The first one returns the client side representation of the user settings (AccountPreferencesInfo) while the second one returns the entity class for persisting the user preferences in the database (AccountGeneralPreferences). Gerrit.getUserPreferences() never returns null. If the user is not signed in the default preferences are returned. Hence we no longer need to check with Gerrit.isSignedIn() whether the user is signed in whenever we access the user preferences. Change-Id: I6420c221f66299485d0cd913a55563b0cd2a9b11 Signed-off-by: Edwin Kempin --- .../client/info/AccountPreferencesInfo.java | 6 ++- .../com/google/gerrit/client/Dispatcher.java | 5 +-- .../java/com/google/gerrit/client/Gerrit.java | 4 +- .../gerrit/client/admin/GroupListScreen.java | 14 +------ .../client/admin/ProjectBranchesScreen.java | 14 +------ .../client/admin/ProjectListScreen.java | 16 +------ .../gerrit/client/change/DownloadBox.java | 42 ++++++++----------- .../gerrit/client/change/FileTable.java | 7 ++-- .../gerrit/client/changes/ChangeTable.java | 20 +++------ .../client/changes/PagedSingleListScreen.java | 11 +---- .../gerrit/client/download/DownloadPanel.java | 10 +---- .../client/download/DownloadUrlLink.java | 10 ++--- .../gerrit/client/patches/PatchTable.java | 4 +- 13 files changed, 45 insertions(+), 118 deletions(-) diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/AccountPreferencesInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/AccountPreferencesInfo.java index 82749f0ff3..96bdaefaba 100644 --- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/AccountPreferencesInfo.java +++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/AccountPreferencesInfo.java @@ -59,7 +59,11 @@ public class AccountPreferencesInfo extends JavaScriptObject { } public final short changesPerPage() { - return get("changes_per_page", AccountGeneralPreferences.DEFAULT_PAGESIZE); + short changesPerPage = + get("changes_per_page", AccountGeneralPreferences.DEFAULT_PAGESIZE); + return 0 < changesPerPage + ? changesPerPage + : AccountGeneralPreferences.DEFAULT_PAGESIZE; } private final native short get(String n, int d) /*-{ return this.hasOwnProperty(n) ? this[n] : d }-*/; diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java index 01238694d5..1318a1d34f 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java @@ -625,10 +625,7 @@ public class Dispatcher { } private static boolean preferUnified() { - return Gerrit.isSignedIn() - && DiffView.UNIFIED_DIFF.equals(Gerrit.getUserAccount() - .getGeneralPreferences() - .getDiffView()); + return DiffView.UNIFIED_DIFF.equals(Gerrit.getUserPreferences().diffView()); } private static void unified(final String token, diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java index 3521c5cb92..8497ceed26 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java @@ -274,9 +274,7 @@ public class Gerrit implements EntryPoint { public static void setHeaderVisible(boolean visible) { topMenu.setVisible(visible); - siteHeader.setVisible(visible && (myAccount != null - ? myAccount.getGeneralPreferences().isShowSiteHeader() - : true)); + siteHeader.setVisible(visible && getUserPreferences().showSiteHeader()); } public static boolean isHeaderVisible() { diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java index c5f757d18e..134f869c8b 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java @@ -22,7 +22,6 @@ import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.Hyperlink; import com.google.gerrit.client.ui.Screen; import com.google.gerrit.common.PageLinks; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; @@ -44,7 +43,7 @@ public class GroupListScreen extends Screen { public GroupListScreen() { setRequiresSignIn(true); - configurePageSize(); + pageSize = Gerrit.getUserPreferences().changesPerPage(); } public GroupListScreen(String params) { @@ -65,17 +64,6 @@ public class GroupListScreen extends Screen { } } - private void configurePageSize() { - if (Gerrit.isSignedIn()) { - final AccountGeneralPreferences p = - Gerrit.getUserAccount().getGeneralPreferences(); - final short m = p.getMaximumPageSize(); - pageSize = 0 < m ? m : AccountGeneralPreferences.DEFAULT_PAGESIZE; - } else { - pageSize = AccountGeneralPreferences.DEFAULT_PAGESIZE; - } - } - @Override protected void onLoad() { super.onLoad(); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java index 725fb0999f..df5924045e 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java @@ -38,7 +38,6 @@ import com.google.gerrit.client.ui.Hyperlink; import com.google.gerrit.client.ui.NavigationTable; import com.google.gerrit.client.ui.OnEditEnabler; import com.google.gerrit.common.PageLinks; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.RefNames; @@ -92,18 +91,7 @@ public class ProjectBranchesScreen extends ProjectScreen { public ProjectBranchesScreen(final Project.NameKey toShow) { super(toShow); - configurePageSize(); - } - - private void configurePageSize() { - if (Gerrit.isSignedIn()) { - AccountGeneralPreferences p = - Gerrit.getUserAccount().getGeneralPreferences(); - short m = p.getMaximumPageSize(); - pageSize = 0 < m ? m : AccountGeneralPreferences.DEFAULT_PAGESIZE; - } else { - pageSize = AccountGeneralPreferences.DEFAULT_PAGESIZE; - } + pageSize = Gerrit.getUserPreferences().changesPerPage(); } private void parseToken() { diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java index 6990996110..aac86ad1a3 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java @@ -30,7 +30,6 @@ import com.google.gerrit.client.ui.ProjectSearchLink; import com.google.gerrit.client.ui.ProjectsTable; import com.google.gerrit.client.ui.Screen; import com.google.gerrit.common.PageLinks; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; @@ -57,10 +56,11 @@ public class ProjectListScreen extends Screen { private Query query; public ProjectListScreen() { - configurePageSize(); + pageSize = Gerrit.getUserPreferences().changesPerPage(); } public ProjectListScreen(String params) { + this(); for (String kvPair : params.split("[,;&]")) { String[] kv = kvPair.split("=", 2); if (kv.length != 2 || kv[0].isEmpty()) { @@ -75,18 +75,6 @@ public class ProjectListScreen extends Screen { start = Integer.parseInt(URL.decodeQueryString(kv[1])); } } - configurePageSize(); - } - - private void configurePageSize() { - if (Gerrit.isSignedIn()) { - final AccountGeneralPreferences p = - Gerrit.getUserAccount().getGeneralPreferences(); - final short m = p.getMaximumPageSize(); - pageSize = 0 < m ? m : AccountGeneralPreferences.DEFAULT_PAGESIZE; - } else { - pageSize = AccountGeneralPreferences.DEFAULT_PAGESIZE; - } } @Override diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DownloadBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DownloadBox.java index 93d46b972e..1e02ee6c0a 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DownloadBox.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DownloadBox.java @@ -26,7 +26,6 @@ import com.google.gerrit.client.rpc.NativeMap; import com.google.gerrit.client.rpc.Natives; import com.google.gerrit.client.rpc.RestApi; import com.google.gerrit.extensions.client.ListChangesOption; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gerrit.reviewdb.client.AccountGeneralPreferences.DownloadScheme; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gwt.core.client.JavaScriptObject; @@ -238,24 +237,21 @@ class DownloadBox extends VerticalPanel { } private static String getUserPreference() { - if (Gerrit.isSignedIn()) { - DownloadScheme pref = - Gerrit.getUserAccount().getGeneralPreferences().getDownloadUrl(); - if (pref != null) { - switch (pref) { - case ANON_GIT: - return "git"; - case ANON_HTTP: - return "anonymous http"; - case HTTP: - return "http"; - case SSH: - return "ssh"; - case REPO_DOWNLOAD: - return "repo"; - default: - return null; - } + DownloadScheme pref = Gerrit.getUserPreferences().downloadScheme(); + if (pref != null) { + switch (pref) { + case ANON_GIT: + return "git"; + case ANON_HTTP: + return "anonymous http"; + case HTTP: + return "http"; + case SSH: + return "ssh"; + case REPO_DOWNLOAD: + return "repo"; + default: + return null; } } return null; @@ -263,12 +259,10 @@ class DownloadBox extends VerticalPanel { private void saveScheme() { DownloadScheme scheme = getSelectedScheme(); - AccountGeneralPreferences pref = - Gerrit.getUserAccount().getGeneralPreferences(); - + AccountPreferencesInfo prefs = Gerrit.getUserPreferences(); if (Gerrit.isSignedIn() && scheme != null - && scheme != pref.getDownloadUrl()) { - pref.setDownloadUrl(scheme); + && scheme != prefs.downloadScheme()) { + prefs.downloadScheme(scheme); AccountPreferencesInfo in = AccountPreferencesInfo.create(); in.downloadScheme(scheme); AccountApi.self().view("preferences") diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java index 8355e5a03d..ad61446bdb 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java @@ -471,8 +471,8 @@ public class FileTable extends FlowPanel { this.comments = comments; this.drafts = drafts; this.hasUser = Gerrit.isSignedIn(); - this.showChangeSizeBars = !hasUser - || Gerrit.getUserAccount().getGeneralPreferences().isSizeBarInChangeTable(); + this.showChangeSizeBars = + Gerrit.getUserPreferences().sizeBarInChangeTable(); myTable.addStyleName(R.css().table()); } @@ -648,8 +648,7 @@ public class FileTable extends FlowPanel { if (Patch.COMMIT_MSG.equals(path)) { sb.append(Util.C.commitMessage()); - } else if (!hasUser || Gerrit.getUserAccount().getGeneralPreferences() - .isMuteCommonPathPrefixes()) { + } else if (Gerrit.getUserPreferences().muteCommonPathPrefixes()) { int commonPrefixLen = commonPrefix(path); if (commonPrefixLen > 0) { sb.openSpan().setStyleName(R.css().commonPrefix()) diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java index 5f61d3f0ec..61368253ad 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java @@ -71,19 +71,17 @@ public class ChangeTable extends NavigationTable { private final List
sections; private int columns; - private boolean showLegacyId; + private final boolean showLegacyId; private List labelNames; public ChangeTable() { super(Util.C.changeItemHelp()); columns = BASE_COLUMNS; labelNames = Collections.emptyList(); + showLegacyId = Gerrit.getUserPreferences().legacycidInChangeTable(); if (Gerrit.isSignedIn()) { keysAction.add(new StarKeyCommand(0, 's', Util.C.changeTableStar())); - showLegacyId = Gerrit.getUserAccount() - .getGeneralPreferences() - .isLegacycidInChangeTable(); } sections = new ArrayList<>(); @@ -242,18 +240,14 @@ public class ChangeTable extends NavigationTable { table.setWidget(row, C_PROJECT, new ProjectLink(c.projectNameKey())); table.setWidget(row, C_BRANCH, new BranchLink(c.projectNameKey(), c .status(), c.branch(), c.topic())); - if (Gerrit.isSignedIn() - && Gerrit.getUserAccount().getGeneralPreferences() - .isRelativeDateInChangeTable()) { + if (Gerrit.getUserPreferences().relativeDateInChangeTable()) { table.setText(row, C_LAST_UPDATE, relativeFormat(c.updated())); } else { table.setText(row, C_LAST_UPDATE, shortFormat(c.updated())); } int col = C_SIZE; - if (Gerrit.isSignedIn() - && !Gerrit.getUserAccount().getGeneralPreferences() - .isSizeBarInChangeTable()) { + if (!Gerrit.getUserPreferences().sizeBarInChangeTable()) { table.setText(row, col, Util.M.insertionsAndDeletions(c.insertions(), c.deletions())); } else { @@ -275,10 +269,8 @@ public class ChangeTable extends NavigationTable { String user; String info; - ReviewCategoryStrategy reviewCategoryStrategy = Gerrit.isSignedIn() - ? Gerrit.getUserAccount().getGeneralPreferences() - .getReviewCategoryStrategy() - : ReviewCategoryStrategy.NONE; + ReviewCategoryStrategy reviewCategoryStrategy = + Gerrit.getUserPreferences().reviewCategoryStrategy(); if (label.rejected() != null) { user = label.rejected().name(); info = getReviewCategoryDisplayInfo(reviewCategoryStrategy, diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PagedSingleListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PagedSingleListScreen.java index 9527c36d97..b7b9b07e7e 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PagedSingleListScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PagedSingleListScreen.java @@ -18,7 +18,6 @@ import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.rpc.ScreenLoadCallback; import com.google.gerrit.client.ui.Hyperlink; import com.google.gerrit.client.ui.Screen; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.user.client.History; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -39,15 +38,7 @@ public abstract class PagedSingleListScreen extends Screen { protected PagedSingleListScreen(String anchorToken, int start) { anchorPrefix = anchorToken; this.start = start; - - if (Gerrit.isSignedIn()) { - final AccountGeneralPreferences p = - Gerrit.getUserAccount().getGeneralPreferences(); - final short m = p.getMaximumPageSize(); - pageSize = 0 < m ? m : AccountGeneralPreferences.DEFAULT_PAGESIZE; - } else { - pageSize = AccountGeneralPreferences.DEFAULT_PAGESIZE; - } + pageSize = Gerrit.getUserPreferences().changesPerPage(); } @Override diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadPanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadPanel.java index 9e6537a85d..f6f9738196 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadPanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadPanel.java @@ -17,7 +17,6 @@ package com.google.gerrit.client.download; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.config.DownloadInfo.DownloadCommandInfo; import com.google.gerrit.client.config.DownloadInfo.DownloadSchemeInfo; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwtexpui.clippy.client.CopyableLabel; @@ -41,14 +40,7 @@ public abstract class DownloadPanel extends FlowPanel { private void setupWidgets() { if (!urls.isEmpty()) { - final AccountGeneralPreferences pref; - if (Gerrit.isSignedIn()) { - pref = Gerrit.getUserAccount().getGeneralPreferences(); - } else { - pref = new AccountGeneralPreferences(); - pref.resetToDefaults(); - } - urls.select(pref.getDownloadUrl()); + urls.select(Gerrit.getUserPreferences().downloadScheme()); FlowPanel p = new FlowPanel(); p.setStyleName(Gerrit.RESOURCES.css().downloadLinkHeader()); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadUrlLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadUrlLink.java index be0768cc04..262914b71c 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadUrlLink.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/download/DownloadUrlLink.java @@ -18,7 +18,6 @@ import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.account.AccountApi; import com.google.gerrit.client.config.DownloadInfo.DownloadSchemeInfo; import com.google.gerrit.client.info.AccountPreferencesInfo; -import com.google.gerrit.reviewdb.client.AccountGeneralPreferences; import com.google.gerrit.reviewdb.client.AccountGeneralPreferences.DownloadScheme; import com.google.gwt.aria.client.Roles; import com.google.gwt.core.client.JavaScriptObject; @@ -110,13 +109,10 @@ public class DownloadUrlLink extends Anchor implements ClickHandler { select(); - AccountGeneralPreferences pref = - Gerrit.getUserAccount().getGeneralPreferences(); + AccountPreferencesInfo prefs = Gerrit.getUserPreferences(); if (Gerrit.isSignedIn() && scheme != null - && scheme != pref.getDownloadUrl()) { - // If the user is signed-in, remember this choice for future panels. - // - pref.setDownloadUrl(scheme); + && scheme != prefs.downloadScheme()) { + prefs.downloadScheme(scheme); AccountPreferencesInfo in = AccountPreferencesInfo.create(); in.downloadScheme(scheme); AccountApi.self().view("preferences") diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchTable.java index 178a58362f..f3bc09203e 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchTable.java @@ -262,8 +262,8 @@ class PatchTable extends Composite { private static boolean isUnifiedPatchLink(final Patch patch) { return (patch.getPatchType().equals(PatchType.BINARY) || (Gerrit.isSignedIn() - && Gerrit.getUserAccount().getGeneralPreferences().getDiffView() - .equals(DiffView.UNIFIED_DIFF))); + && Gerrit.getUserPreferences().diffView() + .equals(DiffView.UNIFIED_DIFF))); } private static String getFileNameOnly(Patch patch) {