1 package info.magnolia.module.admininterface.lists; 2 3 import info.magnolia.cms.beans.config.ContentRepository; 4 import info.magnolia.cms.gui.control.ContextMenu; 5 import info.magnolia.cms.gui.control.ContextMenuItem; 6 import info.magnolia.cms.gui.control.FunctionBar; 7 import info.magnolia.cms.gui.control.FunctionBarItem; 8 import info.magnolia.cms.gui.controlx.list.ListColumn; 9 import info.magnolia.cms.gui.controlx.list.ListControl; 10 import info.magnolia.cms.gui.controlx.list.ListModel; 11 import info.magnolia.cms.gui.controlx.search.RepositorySearchListModel; 12 import info.magnolia.cms.gui.controlx.search.SearchConfig; 13 import info.magnolia.cms.gui.query.SearchQuery; 14 import info.magnolia.cms.gui.query.SearchQueryExpression; 15 import info.magnolia.cms.gui.query.StringSearchQueryParameter; 16 import info.magnolia.cms.i18n.Messages; 17 import info.magnolia.cms.i18n.MessagesManager; 18 import info.magnolia.context.MgnlContext; 19 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.http.HttpServletResponse ; 22 23 import org.apache.commons.lang.StringUtils; 24 25 26 public class WebsiteSearchList extends AbstractSimpleSearchList { 27 28 protected Messages msgs = MessagesManager.getMessages(); 29 30 public WebsiteSearchList(String name, HttpServletRequest request, HttpServletResponse response) { 31 super(name, request, response); 32 } 33 34 public ListModel getModel() { 35 return new RepositorySearchListModel(ContentRepository.WEBSITE); 36 } 37 38 public void configureList(ListControl list) { 39 list.setRenderer(new AdminListControlRenderer() { 40 41 public String onSelect(ListControl list, Integer index) { 42 String js = "mgnl.admininterface.WebsiteSearchList.selected = '" + list.getIteratorValue("path") + "';"; 43 js += super.onSelect(list, index); 44 return js; 45 } 46 }); 47 48 list.addColumn(new ListColumn() { 50 51 { 52 setName("name"); 53 setColumnName("name"); 54 setLabel("Name"); 55 setWidth("200"); 56 } 57 58 public String render() { 59 return "<span style=\"vertical-align: middle\"><img SRC=\"" 60 + MgnlContext.getContextPath() 61 + "/.resources/icons/16/document_plain_earth.gif\"/></span>" 62 + this.getValue(); 63 } 64 65 }); 66 67 list.addColumn(new ListColumn("mgnl:authorid", "User", "200", true)); 68 list.addColumn(new ListColumn("title", "Title", "200", true)); 69 70 list.addSortableField("name"); 71 list.addSortableField("title"); 72 73 list.addGroupableField("mgnl:authorid"); 74 } 75 76 protected void configureContextMenu(ContextMenu menu) { 77 ContextMenuItem open = new ContextMenuItem("open"); 78 open.setLabel(msgs.get("tree.web.menu.open")); open.setIcon(request.getContextPath() + "/.resources/icons/16/document_plain_earth.gif"); open.setOnclick("mgnl.admininterface.WebsiteSearchList.show();"); open 82 .addJavascriptCondition("{test: function(){return mgnl.admininterface.WebsiteSearchList.selected != null}}"); 83 84 ContextMenuItem navigate = new ContextMenuItem("navigate"); 85 navigate.setLabel(msgs.get("tree.menu.navigate")); navigate.setIcon(request.getContextPath() + "/.resources/icons/16/compass.gif"); navigate.setOnclick("mgnl.admininterface.WebsiteSearchList.navigate();"); navigate 89 .addJavascriptCondition("{test: function(){return mgnl.admininterface.WebsiteSearchList.selected != null}}"); 90 91 menu.addMenuItem(open); 92 menu.addMenuItem(null); 93 menu.addMenuItem(navigate); 94 } 95 96 protected void configureFunctionBar(FunctionBar bar) { 97 bar.setSearchable(true); 98 bar.setSearchStr(this.getSearchStr()); 99 bar.setOnSearchFunction("mgnl.admininterface.WebsiteSearchList.search"); 100 101 ContextMenu menu = this.getContextMenu(); 102 103 bar.addMenuItem(new FunctionBarItem(menu.getMenuItemByName("open"))); 104 bar.addMenuItem(new FunctionBarItem(menu.getMenuItemByName("navigate"))); 105 106 } 107 108 111 public SearchQuery getQuery() { 112 SearchQuery query = new SearchQuery(); 113 if (StringUtils.isNotEmpty(this.getSearchStr())) { 114 SearchQueryExpression exp = new StringSearchQueryParameter( 115 "*", 116 this.getSearchStr(), 117 StringSearchQueryParameter.CONTAINS); 118 query.setRootExpression(exp); 119 } 120 return query; 121 } 122 123 126 public SearchConfig getSearchConfig() { 127 return null; 128 } 129 130 } 131 | Popular Tags |