Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1679)

Unified Diff: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchRule.java

Issue 17431004: New UI for Find command: find-as-you-type. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchRule.java
===================================================================
--- editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchRule.java (revision 0)
+++ editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchRule.java (revision 0)
@@ -0,0 +1,153 @@
+/**
+ *
+ */
+package com.xored.glance.internal.ui.search;
+
+import java.util.regex.Pattern;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+
+import com.xored.glance.internal.ui.GlancePlugin;
+import com.xored.glance.internal.ui.preferences.IPreferenceConstants;
+
+/**
+ * @author Yuri Strot
+ */
+public class SearchRule implements IPreferenceConstants {
+
+ /**
+ * @param text
+ * @param caseSensitive
+ * @param prefix
+ */
+ public SearchRule(String text) {
+ this.text = text;
+ loadFromPref();
+ }
+
+ /**
+ * @param text
+ * @param caseSensitive
+ * @param prefix
+ */
+ public SearchRule(String text, boolean caseSensitive, boolean camelCase, boolean wordPrefix,
+ boolean regExp) {
+ this.text = text;
+ this.caseSensitive = caseSensitive;
+ this.camelCase = camelCase;
+ this.wordPrefix = wordPrefix;
+ this.regExp = regExp;
+ }
+
+ /**
+ * @return the text
+ */
+ public String getText() {
+ return text;
+ }
+
+ /**
+ * @return the caseSensitive
+ */
+ public boolean isCaseSensitive() {
+ return caseSensitive;
+ }
+
+ /**
+ * @return the regExp
+ */
+ public boolean isRegExp() {
+ return regExp;
+ }
+
+ /**
+ * @return the prefix
+ */
+ public boolean isWordPrefix() {
+ return wordPrefix;
+ }
+
+ /**
+ * @return the camelCase
+ */
+ public boolean isCamelCase() {
+ return camelCase;
+ }
+
+ /**
+ * @return the pattern
+ */
+ public Pattern getPattern() {
+ if (pattern == null) {
+ pattern = SearchUtils.createPattern(text, caseSensitive, regExp, wordPrefix, camelCase);
+ }
+ return pattern;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((text == null) ? 0 : text.hashCode());
+ result = prime * result + (caseSensitive ? 1231 : 1237);
+ result = prime * result + (regExp ? 1231 : 1237);
+ result = prime * result + (wordPrefix ? 1231 : 1237);
+ result = prime * result + (camelCase ? 1231 : 1237);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SearchRule other = (SearchRule) obj;
+ if (!isSettingsEqual(other))
+ return false;
+ return isTextEquals(other);
+ }
+
+ public boolean isSettingsEqual(SearchRule other) {
+ if (other == null)
+ return false;
+ if (caseSensitive != other.caseSensitive)
+ return false;
+ if (regExp != other.regExp)
+ return false;
+ if (wordPrefix != other.wordPrefix)
+ return false;
+ if (camelCase != other.camelCase)
+ return false;
+ return true;
+ }
+
+ public boolean isTextEquals(SearchRule other) {
+ if (other == null)
+ return false;
+ if (text == null) {
+ if (other.text != null)
+ return false;
+ } else if (!text.equals(other.text))
+ return false;
+ return true;
+ }
+
+ private void loadFromPref() {
+ IPreferenceStore preferences = GlancePlugin.getDefault().getPreferenceStore();
+ caseSensitive = preferences.getBoolean(SEARCH_CASE_SENSITIVE);
+ regExp = preferences.getBoolean(SEARCH_REGEXP);
+ wordPrefix = preferences.getBoolean(SEARCH_WORD_PREFIX);
+ camelCase = preferences.getBoolean(SEARCH_CAMEL_CASE);
+ }
+
+ private Pattern pattern;
+ private String text;
+ private boolean caseSensitive;
+ private boolean regExp;
+ private boolean wordPrefix;
+ private boolean camelCase;
+
+}

Powered by Google App Engine
This is Rietveld 408576698