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.beans.config.ContentRepository;
37 import info.magnolia.cms.gui.control.ContextMenu;
38 import info.magnolia.cms.gui.control.ContextMenuItem;
39 import info.magnolia.cms.gui.control.FunctionBar;
40 import info.magnolia.cms.gui.control.FunctionBarItem;
41 import info.magnolia.cms.gui.controlx.list.ListColumn;
42 import info.magnolia.cms.gui.controlx.list.ListControl;
43 import info.magnolia.cms.gui.controlx.list.ListModel;
44 import info.magnolia.cms.gui.controlx.search.RepositorySearchListModel;
45 import info.magnolia.cms.gui.controlx.search.SearchConfig;
46 import info.magnolia.cms.gui.controlx.search.SimpleSearchUtil;
47 import info.magnolia.cms.gui.query.SearchQuery;
48 import info.magnolia.cms.i18n.Messages;
49 import info.magnolia.cms.i18n.MessagesManager;
50 import info.magnolia.context.MgnlContext;
51
52 import javax.servlet.http.HttpServletRequest;
53 import javax.servlet.http.HttpServletResponse;
54
55 public class WebsiteSearchList extends AbstractSimpleSearchList {
56
57 protected Messages msgs = MessagesManager.getMessages();
58
59 public WebsiteSearchList(String name, HttpServletRequest request, HttpServletResponse response) {
60 super(name, request, response);
61 }
62
63 public ListModel getModel() {
64 return new RepositorySearchListModel(ContentRepository.WEBSITE);
65 }
66
67 public void configureList(ListControl list) {
68 list.setRenderer(new AdminListControlRenderer() {
69
70 public String onDblClick(ListControl list, Integer index) {
71 return "mgnl.admininterface.WebsiteSearchList.show();";
72 }
73
74 public String onSelect(ListControl list, Integer index) {
75 String js = "mgnl.admininterface.WebsiteSearchList.selected = '" + list.getIteratorValue("path") + "';";
76 js += super.onSelect(list, index);
77 return js;
78 }
79 });
80
81
82 list.addColumn(new ListColumn() {
83
84 {
85 setName("name");
86 setColumnName("name");
87 setLabel("Name");
88 setWidth("200");
89 }
90
91 public String render() {
92 return "<span style=\"vertical-align: middle\"><img src=\""
93 + MgnlContext.getContextPath()
94 + "/.resources/icons/16/document_plain_earth.gif\"/></span>"
95 + this.getValue();
96 }
97
98 });
99
100 list.addColumn(new ListColumn("mgnl:authorid", "User", "200", true));
101 list.addColumn(new ListColumn("title", "Title", "200", true));
102
103 list.addSortableField("name");
104 list.addSortableField("title");
105
106 list.addGroupableField("mgnl:authorid");
107 }
108
109 protected void configureContextMenu(ContextMenu menu) {
110 ContextMenuItem open = new ContextMenuItem("open");
111 open.setLabel(msgs.get("tree.web.menu.open"));
112 open.setIcon(request.getContextPath() + "/.resources/icons/16/document_plain_earth.gif");
113 open.setOnclick("mgnl.admininterface.WebsiteSearchList.show();");
114 open.addJavascriptCondition("{test: function(){return mgnl.admininterface.WebsiteSearchList.selected != null}}");
115
116 ContextMenuItem navigate = new ContextMenuItem("navigate");
117 navigate.setLabel(msgs.get("tree.menu.navigate"));
118 navigate.setIcon(request.getContextPath() + "/.resources/icons/16/compass.gif");
119 navigate.setOnclick("mgnl.admininterface.WebsiteSearchList.navigate();");
120 navigate.addJavascriptCondition("{test: function(){return mgnl.admininterface.WebsiteSearchList.selected != null}}");
121
122 menu.addMenuItem(open);
123 menu.addMenuItem(null);
124 menu.addMenuItem(navigate);
125 }
126
127 protected void configureFunctionBar(FunctionBar bar) {
128 super.configureFunctionBar(bar);
129 bar.setOnSearchFunction("mgnl.admininterface.WebsiteSearchList.search");
130
131 ContextMenu menu = this.getContextMenu();
132
133 bar.addMenuItem(new FunctionBarItem(menu.getMenuItemByName("open")));
134 bar.addMenuItem(new FunctionBarItem(menu.getMenuItemByName("navigate")));
135
136 }
137
138
139
140
141 public SearchQuery getQuery() {
142 return SimpleSearchUtil.getSimpleSearchQuery(this.getSearchStr());
143
144 }
145
146
147
148
149 public SearchConfig getSearchConfig() {
150 return null;
151 }
152
153 }