summaryrefslogtreecommitdiffstats
path: root/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java')
-rw-r--r--java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java234
1 files changed, 234 insertions, 0 deletions
diff --git a/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java b/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
new file mode 100644
index 0000000000..1f16d8d847
--- /dev/null
+++ b/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
@@ -0,0 +1,234 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.extensions.client;
+
+import java.util.List;
+import java.util.Map;
+
+/** Preferences about a single user. */
+public class GeneralPreferencesInfo {
+
+ /** Default number of items to display per page. */
+ public static final int DEFAULT_PAGESIZE = 25;
+
+ /** Valid choices for the page size. */
+ public static final int[] PAGESIZE_CHOICES = {10, 25, 50, 100};
+
+ /** Preferred method to download a change. */
+ public enum DownloadCommand {
+ REPO_DOWNLOAD,
+ PULL,
+ CHECKOUT,
+ CHERRY_PICK,
+ FORMAT_PATCH
+ }
+
+ public enum DateFormat {
+ /** US style dates: Apr 27, Feb 14, 2010 */
+ STD("MMM d", "MMM d, yyyy"),
+
+ /** US style dates: 04/27, 02/14/10 */
+ US("MM/dd", "MM/dd/yy"),
+
+ /** ISO style dates: 2010-02-14 */
+ ISO("MM-dd", "yyyy-MM-dd"),
+
+ /** European style dates: 27. Apr, 27.04.2010 */
+ EURO("d. MMM", "dd.MM.yyyy"),
+
+ /** UK style dates: 27/04, 27/04/2010 */
+ UK("dd/MM", "dd/MM/yyyy");
+
+ private final String shortFormat;
+ private final String longFormat;
+
+ DateFormat(String shortFormat, String longFormat) {
+ this.shortFormat = shortFormat;
+ this.longFormat = longFormat;
+ }
+
+ public String getShortFormat() {
+ return shortFormat;
+ }
+
+ public String getLongFormat() {
+ return longFormat;
+ }
+ }
+
+ public enum ReviewCategoryStrategy {
+ NONE,
+ NAME,
+ EMAIL,
+ USERNAME,
+ ABBREV
+ }
+
+ public enum DiffView {
+ SIDE_BY_SIDE,
+ UNIFIED_DIFF
+ }
+
+ public enum EmailStrategy {
+ ENABLED,
+ CC_ON_OWN_COMMENTS,
+ DISABLED
+ }
+
+ public enum EmailFormat {
+ PLAINTEXT,
+ HTML_PLAINTEXT
+ }
+
+ public enum DefaultBase {
+ AUTO_MERGE(null),
+ FIRST_PARENT(-1);
+
+ private final String base;
+
+ DefaultBase(String base) {
+ this.base = base;
+ }
+
+ DefaultBase(int base) {
+ this(Integer.toString(base));
+ }
+
+ public String getBase() {
+ return base;
+ }
+ }
+
+ public enum TimeFormat {
+ /** 12-hour clock: 1:15 am, 2:13 pm */
+ HHMM_12("h:mm a"),
+
+ /** 24-hour clock: 01:15, 14:13 */
+ HHMM_24("HH:mm");
+
+ private final String format;
+
+ TimeFormat(String format) {
+ this.format = format;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+ }
+
+ /** Number of changes to show in a screen. */
+ public Integer changesPerPage;
+ /** Should the site header be displayed when logged in ? */
+ public Boolean showSiteHeader;
+ /** Should the Flash helper movie be used to copy text to the clipboard? */
+ public Boolean useFlashClipboard;
+ /** Type of download URL the user prefers to use. */
+ public String downloadScheme;
+ /** Type of download command the user prefers to use. */
+ public DownloadCommand downloadCommand;
+
+ public DateFormat dateFormat;
+ public TimeFormat timeFormat;
+ public Boolean expandInlineDiffs;
+ public Boolean highlightAssigneeInChangeTable;
+ public Boolean relativeDateInChangeTable;
+ public DiffView diffView;
+ public Boolean sizeBarInChangeTable;
+ public Boolean legacycidInChangeTable;
+ public ReviewCategoryStrategy reviewCategoryStrategy;
+ public Boolean muteCommonPathPrefixes;
+ public Boolean signedOffBy;
+ public List<MenuItem> my;
+ public List<String> changeTable;
+ public Map<String, String> urlAliases;
+ public EmailStrategy emailStrategy;
+ public EmailFormat emailFormat;
+ public DefaultBase defaultBaseForMerges;
+ public Boolean publishCommentsOnPush;
+ public Boolean workInProgressByDefault;
+
+ public boolean isShowInfoInReviewCategory() {
+ return getReviewCategoryStrategy() != ReviewCategoryStrategy.NONE;
+ }
+
+ public DateFormat getDateFormat() {
+ if (dateFormat == null) {
+ return DateFormat.STD;
+ }
+ return dateFormat;
+ }
+
+ public TimeFormat getTimeFormat() {
+ if (timeFormat == null) {
+ return TimeFormat.HHMM_12;
+ }
+ return timeFormat;
+ }
+
+ public ReviewCategoryStrategy getReviewCategoryStrategy() {
+ if (reviewCategoryStrategy == null) {
+ return ReviewCategoryStrategy.NONE;
+ }
+ return reviewCategoryStrategy;
+ }
+
+ public DiffView getDiffView() {
+ if (diffView == null) {
+ return DiffView.SIDE_BY_SIDE;
+ }
+ return diffView;
+ }
+
+ public EmailStrategy getEmailStrategy() {
+ if (emailStrategy == null) {
+ return EmailStrategy.ENABLED;
+ }
+ return emailStrategy;
+ }
+
+ public EmailFormat getEmailFormat() {
+ if (emailFormat == null) {
+ return EmailFormat.HTML_PLAINTEXT;
+ }
+ return emailFormat;
+ }
+
+ public static GeneralPreferencesInfo defaults() {
+ GeneralPreferencesInfo p = new GeneralPreferencesInfo();
+ p.changesPerPage = DEFAULT_PAGESIZE;
+ p.showSiteHeader = true;
+ p.useFlashClipboard = true;
+ p.emailStrategy = EmailStrategy.ENABLED;
+ p.emailFormat = EmailFormat.HTML_PLAINTEXT;
+ p.reviewCategoryStrategy = ReviewCategoryStrategy.NONE;
+ p.downloadScheme = null;
+ p.downloadCommand = DownloadCommand.CHECKOUT;
+ p.dateFormat = DateFormat.STD;
+ p.timeFormat = TimeFormat.HHMM_12;
+ p.expandInlineDiffs = false;
+ p.highlightAssigneeInChangeTable = true;
+ p.relativeDateInChangeTable = false;
+ p.diffView = DiffView.SIDE_BY_SIDE;
+ p.sizeBarInChangeTable = true;
+ p.legacycidInChangeTable = false;
+ p.muteCommonPathPrefixes = true;
+ p.signedOffBy = false;
+ p.defaultBaseForMerges = DefaultBase.FIRST_PARENT;
+ p.publishCommentsOnPush = false;
+ p.workInProgressByDefault = false;
+ return p;
+ }
+}