Bug 108345 [History View] Add Find capability to CVS History view
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistorySearchFilter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistorySearchFilter.java
index 5e11300..661fed6 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistorySearchFilter.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSHistorySearchFilter.java
@@ -14,6 +14,7 @@
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.team.core.history.ITag;
import org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision;
import org.eclipse.team.internal.ui.history.AbstractHistoryCategory;
@@ -43,7 +44,7 @@
CVSFileRevision entry = (CVSFileRevision) element;
//empty fields should be considered a non-match
- boolean orSearch = (authorMatch(entry)) || (dateMatch(entry)) || (commentMatch(entry));
+ boolean orSearch = (authorMatch(entry)) || (dateMatch(entry)) || (commentMatch(entry) || revisionMatch(entry) || tagMatch(entry));
if (orSearch)
matchCounter++;
return orSearch;
@@ -53,24 +54,26 @@
protected boolean authorMatch(CVSFileRevision revision) {
String author = revision.getAuthor();
- Iterator iter = searchStrings.iterator();
- while (iter.hasNext()) {
- String nextString = (String) iter.next();
- if (!((author.indexOf(nextString)) == -1))
- return true;
+ if (author != null){
+ Iterator iter = searchStrings.iterator();
+ while (iter.hasNext()) {
+ String nextString = (String) iter.next();
+ if (!((author.indexOf(nextString)) == -1))
+ return true;
+ }
}
-
return false;
}
protected boolean commentMatch(CVSFileRevision revision) {
String comment = revision.getComment().toLowerCase();
- Iterator iter = searchStrings.iterator();
- while (iter.hasNext()) {
- if (!(comment.indexOf(((String) iter.next()).toLowerCase()) == -1))
- return true;
+ if (comment != null) {
+ Iterator iter = searchStrings.iterator();
+ while (iter.hasNext()) {
+ if (!(comment.indexOf(((String) iter.next()).toLowerCase()) == -1))
+ return true;
+ }
}
-
return false;
}
@@ -85,7 +88,34 @@
return false;
}
+
+ protected boolean tagMatch(CVSFileRevision revision) {
+ ITag[] tags = revision.getTags();
+ for (int i = 0; i < tags.length; i++) {
+ String tag = tags[i].getName().toLowerCase();
+ Iterator iter = searchStrings.iterator();
+ while (iter.hasNext()) {
+ if (!(tag.indexOf(((String) iter.next()).toLowerCase()) == -1))
+ return true;
+ }
+ }
+
+ return false;
+ }
+ protected boolean revisionMatch(CVSFileRevision revision) {
+ String rev = revision.getContentIdentifier();
+ if (rev != null) {
+ Iterator iter = searchStrings.iterator();
+ while (iter.hasNext()) {
+ if (!(rev.indexOf(((String) iter.next()).toLowerCase()) == -1))
+ return true;
+ }
+ }
+ return false;
+ }
+
+
public int getMatchCount() {
return matchCounter;
}