1 31 32 package org.opencms.workplace.list; 33 34 import org.opencms.i18n.CmsMessageContainer; 35 import org.opencms.workplace.CmsWorkplace; 36 37 import java.util.ArrayList ; 38 import java.util.Iterator ; 39 import java.util.List ; 40 41 52 public class CmsListSearchAction extends A_CmsListSearchAction implements I_CmsSearchMethod { 53 54 55 private final List m_columns = new ArrayList (); 56 57 62 public CmsListSearchAction(CmsListColumnDefinition column) { 63 64 super(); 65 useDefaultShowAllAction(); 66 m_columns.add(column); 67 } 68 69 74 public void addColumn(CmsListColumnDefinition column) { 75 76 m_columns.add(column); 77 } 78 79 82 public String buttonHtml(CmsWorkplace wp) { 83 84 if (getHelpText() == EMPTY_MESSAGE) { 86 String columns = ""; 87 Iterator it = m_columns.iterator(); 88 while (it.hasNext()) { 89 CmsListColumnDefinition col = (CmsListColumnDefinition)it.next(); 90 columns += "${key." + col.getName().getKey() + "}"; 91 if (it.hasNext()) { 92 columns += ", "; 93 } 94 } 95 if (columns.lastIndexOf(", ") > 0) { 96 columns = columns.substring(0, columns.lastIndexOf(", ")) 97 + " and " 98 + columns.substring(columns.lastIndexOf(", ") + 2); 99 } 100 setHelpText(new CmsMessageContainer( 101 Messages.get(), 102 Messages.GUI_LIST_ACTION_SEARCH_HELP_1, 103 new Object [] {columns})); 104 } 105 return super.buttonHtml(wp); 106 } 107 108 111 public List filter(List items, String filter) { 112 113 List res = new ArrayList (); 114 Iterator itItems = items.iterator(); 115 while (itItems.hasNext()) { 116 CmsListItem item = (CmsListItem)itItems.next(); 117 if (res.contains(item)) { 118 continue; 119 } 120 Iterator itCols = m_columns.iterator(); 121 while (itCols.hasNext()) { 122 CmsListColumnDefinition col = (CmsListColumnDefinition)itCols.next(); 123 if (item.get(col.getId()) == null) { 124 continue; 125 } 126 if (item.get(col.getId()).toString().indexOf(filter) > -1) { 127 res.add(item); 128 break; 129 } 130 } 131 } 132 return res; 133 } 134 } | Popular Tags |