123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-grid-feature-Feature'>/**
- </span> * A feature is a type of plugin that is specific to the {@link Ext.grid.Panel}. It provides several
- * hooks that allows the developer to inject additional functionality at certain points throughout the
- * grid creation cycle. This class provides the base template methods that are available to the developer,
- * it should be extended.
- *
- * There are several built in features that extend this class, for example:
- *
- * - {@link Ext.grid.feature.Grouping} - Shows grid rows in groups as specified by the {@link Ext.data.Store}
- * - {@link Ext.grid.feature.RowBody} - Adds a body section for each grid row that can contain markup.
- * - {@link Ext.grid.feature.Summary} - Adds a summary row at the bottom of the grid with aggregate totals for a column.
- *
- * ## Using Features
- * A feature is added to the grid by specifying it an array of features in the configuration:
- *
- * var groupingFeature = Ext.create('Ext.grid.feature.Grouping');
- * Ext.create('Ext.grid.Panel', {
- * // other options
- * features: [groupingFeature]
- * });
- *
- * @abstract
- */
- Ext.define('Ext.grid.feature.Feature', {
- extend: 'Ext.util.Observable',
- alias: 'feature.feature',
- /*
- * @property {Boolean} isFeature
- * `true` in this class to identify an object as an instantiated Feature, or subclass thereof.
- */
- isFeature: true,
- <span id='Ext-grid-feature-Feature-property-disabled'> /**
- </span> * True when feature is disabled.
- */
- disabled: false,
- <span id='Ext-grid-feature-Feature-property-hasFeatureEvent'> /**
- </span> * @property {Boolean}
- * Most features will expose additional events, some may not and will
- * need to change this to false.
- */
- hasFeatureEvent: true,
- <span id='Ext-grid-feature-Feature-property-eventPrefix'> /**
- </span> * @property {String}
- * Prefix to use when firing events on the view.
- * For example a prefix of group would expose "groupclick", "groupcontextmenu", "groupdblclick".
- */
- eventPrefix: null,
- <span id='Ext-grid-feature-Feature-property-eventSelector'> /**
- </span> * @property {String}
- * Selector used to determine when to fire the event with the eventPrefix.
- */
- eventSelector: null,
- <span id='Ext-grid-feature-Feature-property-view'> /**
- </span> * @property {Ext.view.Table}
- * Reference to the TableView.
- */
- view: null,
- <span id='Ext-grid-feature-Feature-property-grid'> /**
- </span> * @property {Ext.grid.Panel}
- * Reference to the grid panel
- */
- grid: null,
- <span id='Ext-grid-feature-Feature-property-collectData'> /**
- </span> * Most features will not modify the data returned to the view.
- * This is limited to one feature that manipulates the data per grid view.
- */
- collectData: false,
-
- constructor: function(config) {
- this.initialConfig = config;
- this.callParent(arguments);
- },
- clone: function() {
- return new this.self(this.initialConfig);
- },
- init: Ext.emptyFn,
- getFeatureTpl: function() {
- return '';
- },
- <span id='Ext-grid-feature-Feature-method-getFireEventArgs'> /**
- </span> * Abstract method to be overriden when a feature should add additional
- * arguments to its event signature. By default the event will fire:
- *
- * - view - The underlying Ext.view.Table
- * - featureTarget - The matched element by the defined {@link #eventSelector}
- *
- * The method must also return the eventName as the first index of the array
- * to be passed to fireEvent.
- * @template
- */
- getFireEventArgs: function(eventName, view, featureTarget, e) {
- return [eventName, view, featureTarget, e];
- },
- <span id='Ext-grid-feature-Feature-method-attachEvents'> /**
- </span> * Approriate place to attach events to the view, selectionmodel, headerCt, etc
- * @template
- */
- attachEvents: function() {
- },
- getFragmentTpl: Ext.emptyFn,
- <span id='Ext-grid-feature-Feature-method-mutateMetaRowTpl'> /**
- </span> * Allows a feature to mutate the metaRowTpl.
- * The array received as a single argument can be manipulated to add things
- * on the end/begining of a particular row.
- * @param {Array} metaRowTplArray A String array to be used constructing an {@link Ext.XTemplate XTemplate}
- * to render the rows. This Array may be changed to provide extra DOM structure.
- * @template
- */
- mutateMetaRowTpl: Ext.emptyFn,
- <span id='Ext-grid-feature-Feature-method-getMetaRowTplFragments'> /**
- </span> * Allows a feature to inject member methods into the metaRowTpl. This is
- * important for embedding functionality which will become part of the proper
- * row tpl.
- * @template
- */
- getMetaRowTplFragments: function() {
- return {};
- },
- getTableFragments: function() {
- return {};
- },
- <span id='Ext-grid-feature-Feature-method-getAdditionalData'> /**
- </span> * Provide additional data to the prepareData call within the grid view.
- * @param {Object} data The data for this particular record.
- * @param {Number} idx The row index for this record.
- * @param {Ext.data.Model} record The record instance
- * @param {Object} orig The original result from the prepareData call to massage.
- * @template
- */
- getAdditionalData: function(data, idx, record, orig) {
- return {};
- },
- <span id='Ext-grid-feature-Feature-method-enable'> /**
- </span> * Enables the feature.
- */
- enable: function() {
- this.disabled = false;
- },
- <span id='Ext-grid-feature-Feature-method-disable'> /**
- </span> * Disables the feature.
- */
- disable: function() {
- this.disabled = true;
- }
- });</pre>
- </body>
- </html>
|