code: public Filter getDefaultFilter(final String filterString) {
  
          return new Filter() {
  
              private static final long serialVersionUID = 1L;
  
              @SuppressWarnings("synthetic-access")
              public boolean appliesToProperty(Object propertyId) {
  
                  for (ColumnBean col : m_columns) {
                      if (col.getProperty().getName().equals(propertyId) && col.getInfo().filterable()) {
                          return true;
                      }
                  }
                  return false;
              }
  
              @SuppressWarnings("synthetic-access")
              public boolean passesFilter(Object itemId, Item item) throws UnsupportedOperationException {
  
                  if (CmsStringUtil.isEmpty(filterString)) {
                      return true;
                  }
                  T bean = (T)itemId;
                  for (ColumnBean col : m_columns) {
                      if (col.getInfo().filterable()) {
                          if (("" + item.getItemProperty(col.getProperty().getName()).getValue()).toLowerCase().contains(
                              filterString)) {
                              return true;
                          }
                      }
                  }
                  return false;
              }
          };
  
      }
docs: Creates a default filter which just searches the lower case version of the result of the toString() method applied to all columns with the annotation attribute filterable = true.<P>
  
  @param filterString the string for which to filter
  
  @return the default filter for the given filter string