diff options
Diffstat (limited to 'gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountGeneralPreferences.java')
-rw-r--r-- | gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountGeneralPreferences.java | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountGeneralPreferences.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountGeneralPreferences.java new file mode 100644 index 0000000000..b9ff4fb095 --- /dev/null +++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountGeneralPreferences.java @@ -0,0 +1,241 @@ +// Copyright (C) 2008 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.reviewdb.client; + +import com.google.gwtorm.client.Column; + +/** Preferences about a single user. */ +public final class AccountGeneralPreferences { + + /** Default number of items to display per page. */ + public static final short DEFAULT_PAGESIZE = 25; + + /** Valid choices for the page size. */ + public static final short[] PAGESIZE_CHOICES = {10, 25, 50, 100}; + + /** Preferred scheme type to download a change. */ + public static enum DownloadScheme { + ANON_GIT, ANON_HTTP, ANON_SSH, HTTP, SSH, REPO_DOWNLOAD, DEFAULT_DOWNLOADS; + } + + /** Preferred method to download a change. */ + public static enum DownloadCommand { + REPO_DOWNLOAD, PULL, CHECKOUT, CHERRY_PICK, FORMAT_PATCH; + } + + public static 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"); + + 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 static 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. */ + @Column(id = 2) + protected short maximumPageSize; + + /** Should the site header be displayed when logged in ? */ + @Column(id = 3) + protected boolean showSiteHeader; + + /** Should the Flash helper movie be used to copy text to the clipboard? */ + @Column(id = 4) + protected boolean useFlashClipboard; + + /** Type of download URL the user prefers to use. */ + @Column(id = 5, length = 20, notNull = false) + protected String downloadUrl; + + /** Type of download command the user prefers to use. */ + @Column(id = 6, length = 20, notNull = false) + protected String downloadCommand; + + /** If true we CC the user on their own changes. */ + @Column(id = 7) + protected boolean copySelfOnEmail; + + @Column(id = 8, length = 10, notNull = false) + protected String dateFormat; + + @Column(id = 9, length = 10, notNull = false) + protected String timeFormat; + + /** + * If true display the patch sets in the ChangeScreen in reverse order + * (show latest patch set on top). + */ + @Column(id = 10) + protected boolean displayPatchSetsInReverseOrder; + + @Column(id = 11) + protected boolean displayPersonNameInReviewCategory; + + public AccountGeneralPreferences() { + } + + public short getMaximumPageSize() { + return maximumPageSize; + } + + public void setMaximumPageSize(final short s) { + maximumPageSize = s; + } + + public boolean isShowSiteHeader() { + return showSiteHeader; + } + + public void setShowSiteHeader(final boolean b) { + showSiteHeader = b; + } + + public boolean isUseFlashClipboard() { + return useFlashClipboard; + } + + public void setUseFlashClipboard(final boolean b) { + useFlashClipboard = b; + } + + public DownloadScheme getDownloadUrl() { + if (downloadUrl == null) { + return null; + } + return DownloadScheme.valueOf(downloadUrl); + } + + public void setDownloadUrl(DownloadScheme url) { + if (url != null) { + downloadUrl = url.name(); + } else { + downloadUrl = null; + } + } + + public DownloadCommand getDownloadCommand() { + if (downloadCommand == null) { + return null; + } + return DownloadCommand.valueOf(downloadCommand); + } + + public void setDownloadCommand(DownloadCommand cmd) { + if (cmd != null) { + downloadCommand = cmd.name(); + } else { + downloadCommand = null; + } + } + + public boolean isCopySelfOnEmails() { + return copySelfOnEmail; + } + + public void setCopySelfOnEmails(boolean includeSelfOnEmail) { + copySelfOnEmail = includeSelfOnEmail; + } + + public boolean isDisplayPatchSetsInReverseOrder() { + return displayPatchSetsInReverseOrder; + } + + public void setDisplayPatchSetsInReverseOrder(final boolean displayPatchSetsInReverseOrder) { + this.displayPatchSetsInReverseOrder = displayPatchSetsInReverseOrder; + } + + public boolean isDisplayPersonNameInReviewCategory() { + return displayPersonNameInReviewCategory; + } + + public void setDisplayPersonNameInReviewCategory(final boolean displayPersonNameInReviewCategory) { + this.displayPersonNameInReviewCategory = displayPersonNameInReviewCategory; + } + + public DateFormat getDateFormat() { + if (dateFormat == null) { + return DateFormat.STD; + } + return DateFormat.valueOf(dateFormat); + } + + public void setDateFormat(DateFormat fmt) { + dateFormat = fmt.name(); + } + + public TimeFormat getTimeFormat() { + if (timeFormat == null) { + return TimeFormat.HHMM_12; + } + return TimeFormat.valueOf(timeFormat); + } + + public void setTimeFormat(TimeFormat fmt) { + timeFormat = fmt.name(); + } + + public void resetToDefaults() { + maximumPageSize = DEFAULT_PAGESIZE; + showSiteHeader = true; + useFlashClipboard = true; + copySelfOnEmail = false; + displayPatchSetsInReverseOrder = false; + displayPersonNameInReviewCategory = false; + downloadUrl = null; + downloadCommand = null; + dateFormat = null; + timeFormat = null; + } +} |