replaced <code></code> with more concise {@code}
[idea/community.git] / plugins / xpath / xpath-view / src / org / intellij / plugins / xpathView / Config.java
1 /**
2  * Copyright 2002-2005 Sascha Weinreuter
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.intellij.plugins.xpathView;
17
18 import com.intellij.openapi.editor.markup.TextAttributes;
19 import org.intellij.plugins.xpathView.search.SearchScope;
20
21 import java.awt.*;
22
23 /**
24  * Class that holds the plugin's configuration. All customizable settings are accessible via property getters/setters.
25  * The configuration itself can be acquired with {@code getConfig()} in {@link XPathAppComponent}.
26  */
27 public class Config {
28   public boolean SHOW_IN_TOOLBAR = true;
29   public boolean SHOW_IN_MAIN_MENU = true;
30   public boolean OPEN_NEW_TAB = false;
31   public boolean HIGHLIGHT_RESULTS = true;
32   public boolean SHOW_USAGE_VIEW = false;
33
34   public SearchScope SEARCH_SCOPE = new SearchScope();
35   public boolean MATCH_RECURSIVELY = false;
36
37   public TextAttributes attributes = new TextAttributes(null, new Color(255, 213, 120), null, null, Font.PLAIN);
38   public TextAttributes contextAttributes = new TextAttributes(null, new Color(194, 255, 212), null, null, Font.PLAIN);
39   public boolean scrollToFirst = true;
40   public boolean bUseContextAtCursor = true;
41   public boolean bHighlightStartTagOnly = true;
42   public boolean bAddErrorStripe = true;
43
44   public boolean isScrollToFirst() {
45     return scrollToFirst;
46   }
47
48   public TextAttributes getAttributes() {
49     return attributes;
50   }
51
52   public void setHighlightBackground(Color bg) {
53     attributes.setBackgroundColor(bg);
54   }
55
56   public TextAttributes getContextAttributes() {
57     return contextAttributes;
58   }
59
60   public void setContextBackground(Color bg) {
61     contextAttributes.setBackgroundColor(bg);
62   }
63
64   public void setScrollToFirst(boolean b) {
65     scrollToFirst = b;
66   }
67
68   public boolean isUseContextAtCursor() {
69     return bUseContextAtCursor;
70   }
71
72   public void setUseContextAtCursor(boolean b) {
73     bUseContextAtCursor = b;
74   }
75
76   public boolean isHighlightStartTagOnly() {
77     return bHighlightStartTagOnly;
78   }
79
80   public void setHighlightStartTagOnly(boolean b) {
81     bHighlightStartTagOnly = b;
82   }
83
84   public boolean isAddErrorStripe() {
85     return bAddErrorStripe;
86   }
87
88   public void setAddErrorStripe(boolean b) {
89     bAddErrorStripe = b;
90   }
91
92   public boolean equals(Object o) {
93     if (this == o) return true;
94     if (o == null || getClass() != o.getClass()) return false;
95
96     final Config config = (Config)o;
97
98     if (HIGHLIGHT_RESULTS != config.HIGHLIGHT_RESULTS) return false;
99     if (OPEN_NEW_TAB != config.OPEN_NEW_TAB) return false;
100     if (SHOW_IN_MAIN_MENU != config.SHOW_IN_MAIN_MENU) return false;
101     if (SHOW_IN_TOOLBAR != config.SHOW_IN_TOOLBAR) return false;
102     if (SHOW_USAGE_VIEW != config.SHOW_USAGE_VIEW) return false;
103     if (bAddErrorStripe != config.bAddErrorStripe) return false;
104     if (bHighlightStartTagOnly != config.bHighlightStartTagOnly) return false;
105     if (bUseContextAtCursor != config.bUseContextAtCursor) return false;
106     if (scrollToFirst != config.scrollToFirst) return false;
107     if (!attributes.equals(config.attributes)) return false;
108     return contextAttributes.equals(config.contextAttributes);
109   }
110
111   public int hashCode() {
112     int result = (SHOW_IN_TOOLBAR ? 1 : 0);
113     result = 29 * result + (SHOW_IN_MAIN_MENU ? 1 : 0);
114     result = 29 * result + (OPEN_NEW_TAB ? 1 : 0);
115     result = 29 * result + (HIGHLIGHT_RESULTS ? 1 : 0);
116     result = 29 * result + (SHOW_USAGE_VIEW ? 1 : 0);
117     result = 29 * result + attributes.hashCode();
118     result = 29 * result + contextAttributes.hashCode();
119     result = 29 * result + (scrollToFirst ? 1 : 0);
120     result = 29 * result + (bUseContextAtCursor ? 1 : 0);
121     result = 29 * result + (bHighlightStartTagOnly ? 1 : 0);
122     result = 29 * result + (bAddErrorStripe ? 1 : 0);
123     return result;
124   }
125 }