-3

There is no proper material for ext js 2.3.0 extending classes. Please provide the required info or links for extending the extjs classes for version2.3.0

user2940383
  • 433
  • 1
  • 6
  • 10

1 Answers1

1

I would look at the documentation here http://dev.sencha.com/deploy/ext-2.3.0/docs/

Then I would look at the Ext singleton object which expose both extend and override methods which should allow you to do what you're after.

This is an example of using the extend method from the demo found here http://dev.sencha.com/deploy/yui-ext/examples/grid/array-grid.html The parent page of this is http://dev.sencha.com/deploy/yui-ext/examples/samples.html

Here in the below code, I extend Ext.grid.GridPanel to make MyGridPanel which then implements a new method called yourMethod which will then alert a message when the grid is clicked.

Ext.onReady(function () {

    // NOTE: This is an example showing simple state management. During development,
    // it is generally best to disable state management as dynamically-generated ids
    // can change across page loads, leading to unpredictable results.  The developer
    // should ensure that stable state ids are set for stateful components in real apps.
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

    var myData = [
        ['3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'],
        ['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'],
        ['Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
        ['American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'],
        ['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'],
        ['AT&T Inc.', 31.61, -0.48, -1.54, '9/1 12:00am'],
        ['Boeing Co.', 75.43, 0.53, 0.71, '9/1 12:00am'],
        ['Caterpillar Inc.', 67.27, 0.92, 1.39, '9/1 12:00am'],
        ['Citigroup, Inc.', 49.37, 0.02, 0.04, '9/1 12:00am'],
        ['E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '9/1 12:00am'],
        ['Exxon Mobil Corp', 68.1, -0.43, -0.64, '9/1 12:00am'],
        ['General Electric Company', 34.14, -0.08, -0.23, '9/1 12:00am'],
        ['General Motors Corporation', 30.27, 1.09, 3.74, '9/1 12:00am'],
        ['Hewlett-Packard Co.', 36.53, -0.03, -0.08, '9/1 12:00am'],
        ['Honeywell Intl Inc', 38.77, 0.05, 0.13, '9/1 12:00am'],
        ['Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'],
        ['International Business Machines', 81.41, 0.44, 0.54, '9/1 12:00am'],
        ['Johnson & Johnson', 64.72, 0.06, 0.09, '9/1 12:00am'],
        ['JP Morgan & Chase & Co', 45.73, 0.07, 0.15, '9/1 12:00am'],
        ['McDonald\'s Corporation', 36.76, 0.86, 2.40, '9/1 12:00am'],
        ['Merck & Co., Inc.', 40.96, 0.41, 1.01, '9/1 12:00am'],
        ['Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 12:00am'],
        ['Pfizer Inc', 27.96, 0.4, 1.45, '9/1 12:00am'],
        ['The Coca-Cola Company', 45.07, 0.26, 0.58, '9/1 12:00am'],
        ['The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am'],
        ['The Procter & Gamble Company', 61.91, 0.01, 0.02, '9/1 12:00am'],
        ['United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'],
        ['Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'],
        ['Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am']
    ];

    // example of custom renderer function
    function change(val) {
        if (val > 0) {
            return '<span style="color:green;">' + val + '</span>';
        } else if (val < 0) {
            return '<span style="color:red;">' + val + '</span>';
        }
        return val;
    }

    // example of custom renderer function
    function pctChange(val) {
        if (val > 0) {
            return '<span style="color:green;">' + val + '%</span>';
        } else if (val < 0) {
            return '<span style="color:red;">' + val + '%</span>';
        }
        return val;
    }

    // create the data store
    var store = new Ext.data.SimpleStore({
        fields: [{
            name: 'company'
        }, {
            name: 'price',
            type: 'float'
        }, {
            name: 'change',
            type: 'float'
        }, {
            name: 'pctChange',
            type: 'float'
        }, {
            name: 'lastChange',
            type: 'date',
            dateFormat: 'n/j h:ia'
        }]
    });
    store.loadData(myData);

    MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
        constructor: function (config) {
            // Your preprocessing here
            MyGridPanel.superclass.constructor.apply(this, arguments);
            // Your postprocessing here
        },

        yourMethod: function () {
            alert('this is a new method'); // etc.
        }
    });
    // create the Grid
    var grid = new MyGridPanel({
        store: store,
        columns: [{
            id: 'company',
            header: "Company",
            width: 160,
            sortable: true,
            dataIndex: 'company'
        }, {
            header: "Price",
            width: 75,
            sortable: true,
            renderer: 'usMoney',
            dataIndex: 'price'
        }, {
            header: "Change",
            width: 75,
            sortable: true,
            renderer: change,
            dataIndex: 'change'
        }, {
            header: "% Change",
            width: 75,
            sortable: true,
            renderer: pctChange,
            dataIndex: 'pctChange'
        }, {
            header: "Last Updated",
            width: 85,
            sortable: true,
            renderer: Ext.util.Format.dateRenderer('m/d/Y'),
            dataIndex: 'lastChange'
        }],
        stripeRows: true,
        autoExpandColumn: 'company',
        height: 350,
        width: 600,
        title: 'Array Grid'
    });

    grid.render('grid-example');
    grid.on('click', function (e) {
        console.log(e, this.yourMethod());
    });
});

Demo: http://jsfiddle.net/robschmuecker/84Lmu21L/

Rob Schmuecker
  • 8,934
  • 2
  • 18
  • 34
  • If i have created a grid panel using var MyGrid = new Ext.grid.GridPanel({...}) and now i want to use to extend this MyGrid. i have tried Ext.extend(MyGrid, {....}) but it didnt work out.. can you please provide info how to use it with an example – user2940383 Jan 22 '15 at 06:57
  • Can you please tell me what is the use of the constructor containing MyGridPanel.superclass.constructor.apply(this, arguments); in any extend class – user2940383 Jan 22 '15 at 09:32
  • This is beyond the scope of the question to be honest have a look at this, http://yuiblog.com/blog/2010/01/06/inheritance-patterns-in-yui-3/ and this http://yuilibrary.com/yui/docs/base/ – Rob Schmuecker Jan 22 '15 at 10:08