/**
 * @private
 * 
 * The string grid filter allows you to create a filter selection that limits results
 * to values matching a particular string.  The filter can be set programmatically or via 
 * user input with a configurable {@link Ext.field.Text text field} in the filter section 
 * of the column header.
 *
 * Example String Filter Usage:
 * 
 * ```javascript
 * @example({ framework: 'extjs' })
 * var store = Ext.create('Ext.data.Store', {
 *     fields: ['firstname', 'lastname', 'seniority', 'department', 'hired', 'active'],
 *     data: [
 *         {
 *              firstname:"Michael",
 *              lastname:"Scott",
 *              seniority:7,
 *              department:"Management",
 *              hired:"01/10/2004",
 *              active: true
 *         },
 *         {
 *              firstname:"Dwight",
 *              lastname:"Schrute",
 *              seniority:2,
 *              department:"Sales",
 *              hired:"04/01/2004",
 *              active: true
 *         },
 *         {
 *              firstname:"Jim",
 *              lastname:"Halpert",
 *              seniority:3,
 *              department:"Sales",
 *              hired:"02/22/2006",
 *              active: false
 *         },
 *         {
 *              firstname:"Kevin",
 *              lastname:"Malone",
 *              seniority:4,
 *              department:"Accounting",
 *              hired:"06/10/2007",
 *              active: true
 *         },
 *         {
 *              firstname:"Angela",
 *              lastname:"Martin",
 *              seniority:5,
 *              department:"Accounting",
 *              hired:"10/21/2008",
 *              active: false
 *         }
 *     ]
 * });
 *   
 * Ext.create({
 *     xtype: 'grid',
 *     title: 'Filter Grid - String Type',
 *     itemConfig: {
 *         viewModel: true
 *     },
 *     plugins: {
 *          gridfilters: true
 *     },
 *     store: store,
 *     columns: [
 *         {text: 'First Name',  dataIndex:'firstname'},
 *         {text: 'Last Name',  dataIndex:'lastname'},
 *         {
 *              text: 'Department',
 *              dataIndex:'department',
 *              filter: {
 *                  type: 'string',
 *                  menu: {
 *                      items: {
 *                          like: {
 *                              placeholder: 'Custom Like...'
 *                          }
 *                      }
 *                  }
 *              }
 *         },
 *         {text: 'Seniority',  dataIndex:'seniority'},
 *         {text: 'Hired Month',  dataIndex:'hired'},
 *         {text: 'Active',  dataIndex:'active'}
 *     ],
 *     width: 500,
 *     fullscreen: true
 * });
 * ```
 */
Ext.define('Ext.grid.filters.menu.String', {
    extend: 'Ext.grid.filters.menu.Base',
    alias: 'gridFilters.string',
 
    menu: {
        items: {
            like: {
                xtype: 'textfield',
                placeholder: 'Like...',
                operator: 'like',
                listeners: {
                    change: 'up.onInputChange'
                }
            }
        }
    }
});