| // 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; | |
| } | |
| } |