    Ext.define('Ext.rtl.chart.Legend', {
        override: 'Ext.chart.Legend',

        init: function() {
            var me = this;

            me.callParent(arguments);
            me.position = me.chart.invertPosition(me.position);
            me.rtl = me.chart.getHierarchyState().rtl;
        },

        updateItemDimensions: function() {
            var me = this,
                result = me.callParent(),
                padding = me.padding,
                spacing = me.itemSpacing,
                items = me.items,
                len = items.length,
                mfloor = Math.floor,
                width = result.totalWidth,
                usedWidth = 0,
                i, item, itemWidth;

            if (me.rtl && !me.isVertical) {
                for (i = 0; i < len; ++i) {
                    item = items[i];

                    // Set the item's position relative to the legend box
                    itemWidth = mfloor(item.getBBox().width + spacing);
                    item.x = -usedWidth + padding;
                    usedWidth += itemWidth;
                }
            }
            return result;
        }
    })