| // Copyright (C) 2014 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 com.google.common.base.MoreObjects; |
| import java.util.Objects; |
| |
| public class DiffPreferencesInfo { |
| |
| /** Default number of lines of context. */ |
| public static final int DEFAULT_CONTEXT = 10; |
| |
| /** Default tab size. */ |
| public static final int DEFAULT_TAB_SIZE = 8; |
| |
| /** Default font size. */ |
| public static final int DEFAULT_FONT_SIZE = 12; |
| |
| /** Default line length. */ |
| public static final int DEFAULT_LINE_LENGTH = 100; |
| |
| public enum Whitespace { |
| IGNORE_NONE, |
| IGNORE_TRAILING, |
| IGNORE_LEADING_AND_TRAILING, |
| IGNORE_ALL |
| } |
| |
| public Integer context; |
| public Integer tabSize; |
| public Integer fontSize; |
| public Integer lineLength; |
| public Integer cursorBlinkRate; |
| public Boolean expandAllComments; |
| public Boolean intralineDifference; |
| public Boolean manualReview; |
| public Boolean showLineEndings; |
| public Boolean showTabs; |
| public Boolean showWhitespaceErrors; |
| public Boolean syntaxHighlighting; |
| public Boolean hideTopMenu; |
| public Boolean autoHideDiffTableHeader; |
| public Boolean hideLineNumbers; |
| public Boolean renderEntireFile; |
| public Boolean hideEmptyPane; |
| public Boolean matchBrackets; |
| public Boolean lineWrapping; |
| public Whitespace ignoreWhitespace; |
| public Boolean retainHeader; |
| public Boolean skipDeleted; |
| public Boolean skipUnchanged; |
| public Boolean skipUncommented; |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (!(obj instanceof DiffPreferencesInfo)) { |
| return false; |
| } |
| DiffPreferencesInfo other = (DiffPreferencesInfo) obj; |
| return Objects.equals(this.context, other.context) |
| && Objects.equals(this.tabSize, other.tabSize) |
| && Objects.equals(this.fontSize, other.fontSize) |
| && Objects.equals(this.lineLength, other.lineLength) |
| && Objects.equals(this.cursorBlinkRate, other.cursorBlinkRate) |
| && Objects.equals(this.expandAllComments, other.expandAllComments) |
| && Objects.equals(this.intralineDifference, other.intralineDifference) |
| && Objects.equals(this.manualReview, other.manualReview) |
| && Objects.equals(this.showLineEndings, other.showLineEndings) |
| && Objects.equals(this.showTabs, other.showTabs) |
| && Objects.equals(this.showWhitespaceErrors, other.showWhitespaceErrors) |
| && Objects.equals(this.syntaxHighlighting, other.syntaxHighlighting) |
| && Objects.equals(this.hideTopMenu, other.hideTopMenu) |
| && Objects.equals(this.autoHideDiffTableHeader, other.autoHideDiffTableHeader) |
| && Objects.equals(this.hideLineNumbers, other.hideLineNumbers) |
| && Objects.equals(this.renderEntireFile, other.renderEntireFile) |
| && Objects.equals(this.hideEmptyPane, other.hideEmptyPane) |
| && Objects.equals(this.matchBrackets, other.matchBrackets) |
| && Objects.equals(this.lineWrapping, other.lineWrapping) |
| && Objects.equals(this.ignoreWhitespace, other.ignoreWhitespace) |
| && Objects.equals(this.retainHeader, other.retainHeader) |
| && Objects.equals(this.skipDeleted, other.skipDeleted) |
| && Objects.equals(this.skipUnchanged, other.skipUnchanged) |
| && Objects.equals(this.skipUncommented, other.skipUncommented); |
| } |
| |
| @Override |
| public int hashCode() { |
| return Objects.hash( |
| context, |
| tabSize, |
| fontSize, |
| lineLength, |
| cursorBlinkRate, |
| expandAllComments, |
| intralineDifference, |
| manualReview, |
| showLineEndings, |
| showTabs, |
| showWhitespaceErrors, |
| syntaxHighlighting, |
| hideTopMenu, |
| autoHideDiffTableHeader, |
| hideLineNumbers, |
| renderEntireFile, |
| hideEmptyPane, |
| matchBrackets, |
| lineWrapping, |
| ignoreWhitespace, |
| retainHeader, |
| skipDeleted, |
| skipUnchanged, |
| skipUncommented); |
| } |
| |
| @Override |
| public String toString() { |
| return MoreObjects.toStringHelper("DiffPreferencesInfo") |
| .add("context", context) |
| .add("tabSize", tabSize) |
| .add("fontSize", fontSize) |
| .add("lineLength", lineLength) |
| .add("cursorBlinkRate", cursorBlinkRate) |
| .add("expandAllComments", expandAllComments) |
| .add("intralineDifference", intralineDifference) |
| .add("manualReview", manualReview) |
| .add("showLineEndings", showLineEndings) |
| .add("showTabs", showTabs) |
| .add("showWhitespaceErrors", showWhitespaceErrors) |
| .add("syntaxHighlighting", syntaxHighlighting) |
| .add("hideTopMenu", hideTopMenu) |
| .add("autoHideDiffTableHeader", autoHideDiffTableHeader) |
| .add("hideLineNumbers", hideLineNumbers) |
| .add("renderEntireFile", renderEntireFile) |
| .add("hideEmptyPane", hideEmptyPane) |
| .add("matchBrackets", matchBrackets) |
| .add("lineWrapping", lineWrapping) |
| .add("ignoreWhitespace", ignoreWhitespace) |
| .add("retainHeader", retainHeader) |
| .add("skipDeleted", skipDeleted) |
| .add("skipUnchanged", skipUnchanged) |
| .add("skipUncommented", skipUncommented) |
| .toString(); |
| } |
| |
| public static DiffPreferencesInfo defaults() { |
| DiffPreferencesInfo i = new DiffPreferencesInfo(); |
| i.context = DEFAULT_CONTEXT; |
| i.tabSize = DEFAULT_TAB_SIZE; |
| i.fontSize = DEFAULT_FONT_SIZE; |
| i.lineLength = DEFAULT_LINE_LENGTH; |
| i.cursorBlinkRate = 0; |
| i.expandAllComments = false; |
| i.intralineDifference = true; |
| i.manualReview = false; |
| i.showLineEndings = true; |
| i.showTabs = true; |
| i.showWhitespaceErrors = true; |
| i.syntaxHighlighting = true; |
| i.hideTopMenu = false; |
| i.autoHideDiffTableHeader = true; |
| i.hideLineNumbers = false; |
| i.renderEntireFile = false; |
| i.hideEmptyPane = false; |
| i.matchBrackets = false; |
| i.lineWrapping = false; |
| i.ignoreWhitespace = Whitespace.IGNORE_NONE; |
| i.retainHeader = false; |
| i.skipDeleted = false; |
| i.skipUnchanged = false; |
| i.skipUncommented = false; |
| return i; |
| } |
| } |