1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.atlassian.theplugin.crucible.model;
17
18 import com.atlassian.theplugin.commons.crucible.api.model.CrucibleFilter;
19 import com.atlassian.theplugin.commons.crucible.api.model.ReviewAdapter;
20 import com.atlassian.theplugin.commons.crucible.api.model.notification.CrucibleNotification;
21 import com.atlassian.theplugin.idea.crucible.ReviewNotificationBean;
22 import org.jetbrains.annotations.NotNull;
23
24 import java.util.*;
25
26
27
28
29
30
31 public class SearchingCrucibleReviewListModel extends CrucibleReviewListModelListenerHolder {
32
33 private String searchTerm;
34
35 public SearchingCrucibleReviewListModel(CrucibleReviewListModel parent) {
36 super(parent);
37 searchTerm = "";
38 }
39
40 public void setSearchTerm(@NotNull String searchTerm) {
41
42 if (this.searchTerm.equals(searchTerm)) {
43 return;
44 }
45 this.searchTerm = searchTerm.toLowerCase();
46
47 modelChanged(new UpdateContext(UpdateReason.SEARCH, null, null));
48 }
49
50 private Collection<ReviewAdapter> search(Collection<ReviewAdapter> col) {
51 if (searchTerm.length() == 0) {
52 return col;
53 }
54 List<ReviewAdapter> list = new ArrayList<ReviewAdapter>();
55 for (ReviewAdapter r : col) {
56 if (r.getPermId().getId().toLowerCase().indexOf(searchTerm) > -1
57 || r.getName().toLowerCase().indexOf(searchTerm) > -1) {
58 list.add(r);
59 }
60 }
61 return list;
62 }
63
64 public Collection<ReviewAdapter> getReviews() {
65 return search(parent.getReviews());
66 }
67
68 public int getReviewCount(CrucibleFilter filter) {
69 return parent.getReviewCount(filter);
70 }
71
72 public int getPredefinedFiltersReviewCount() {
73 return parent.getPredefinedFiltersReviewCount();
74 }
75
76 public List<CrucibleNotification> updateReviews(long epoch, Map<CrucibleFilter, ReviewNotificationBean> reviews,
77 UpdateReason updateReason) {
78 return Collections.emptyList();
79 }
80
81 public Collection<ReviewAdapter> getOpenInIdeReviews() {
82 return super.getOpenInIdeReviews();
83 }
84
85 public void rebuildModel(UpdateReason updateReason) {
86 }
87
88 public boolean isRequestObsolete(long epoch) {
89 return false;
90 }
91 }