1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.admininterface.lists;
35
36 import info.magnolia.cms.gui.control.FunctionBar;
37 import info.magnolia.cms.gui.controlx.list.ListControl;
38 import info.magnolia.cms.gui.controlx.search.SearchConfig;
39 import info.magnolia.cms.gui.controlx.search.SearchableListModel;
40 import info.magnolia.cms.gui.controlx.search.SimpleSearchUtil;
41 import info.magnolia.cms.gui.query.SearchQuery;
42 import info.magnolia.freemarker.FreemarkerUtil;
43
44 import javax.servlet.http.HttpServletRequest;
45 import javax.servlet.http.HttpServletResponse;
46
47
48
49
50
51
52 public abstract class AbstractSimpleSearchList extends AbstractList {
53
54
55
56
57
58
59 public AbstractSimpleSearchList(String name, HttpServletRequest request, HttpServletResponse response) {
60 super(name, request, response);
61 }
62
63 private String searchStr = "";
64
65
66
67
68 public String onRender() {
69 String str = super.onRender();
70 str += FreemarkerUtil.process(AbstractSimpleSearchList.class, this);
71 return str;
72 }
73
74
75
76
77 public String getSearchStr() {
78 return this.searchStr;
79 }
80
81
82
83
84 public void setSearchStr(String searchStr) {
85 this.searchStr = searchStr;
86 }
87
88
89
90
91 public void initList(ListControl list) {
92 super.initList(list);
93 ((SearchableListModel) list.getModel()).setQuery(this.getQuery());
94 }
95
96
97
98
99 public SearchQuery getQuery() {
100 if(this.getSearchConfig() == null){
101 return SimpleSearchUtil.getSimpleSearchQuery(this.getSearchStr());
102 }
103 return SimpleSearchUtil.getSimpleSearchQuery(this.getSearchStr(), this.getSearchConfig());
104 }
105
106 protected void configureFunctionBar(FunctionBar bar) {
107 super.configureFunctionBar(bar);
108 bar.setSearchable(true);
109 bar.setSearchStr(this.getSearchStr());
110 bar.setOnSearchFunction(this.getList().getName() + ".search");
111 }
112
113
114
115
116 public abstract SearchConfig getSearchConfig();
117
118 }