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 @Override
69 public String onRender() {
70 String str = super.onRender();
71 str += FreemarkerUtil.process(AbstractSimpleSearchList.class, this);
72 return str;
73 }
74
75
76
77
78 public String getSearchStr() {
79 return this.searchStr;
80 }
81
82
83
84
85 public void setSearchStr(String searchStr) {
86 this.searchStr = searchStr;
87 }
88
89
90
91
92 @Override
93 public void initList(ListControl list) {
94 super.initList(list);
95 ((SearchableListModel) list.getModel()).setQuery(this.getQuery());
96 }
97
98
99
100
101 public SearchQuery getQuery() {
102 if(this.getSearchConfig() == null){
103 return SimpleSearchUtil.getSimpleSearchQuery(this.getSearchStr());
104 }
105 return SimpleSearchUtil.getSimpleSearchQuery(this.getSearchStr(), this.getSearchConfig());
106 }
107
108 @Override
109 protected void configureFunctionBar(FunctionBar bar) {
110 super.configureFunctionBar(bar);
111 bar.setSearchable(true);
112 bar.setSearchStr(this.getSearchStr());
113 bar.setOnSearchFunction(this.getList().getName() + ".search");
114 }
115
116
117
118
119 public abstract SearchConfig getSearchConfig();
120
121 }