text: Ext.define('KitchenSink.view.charts.column.StackedController', {
      extend: 'Ext.app.ViewController',
      alias: 'controller.column-stacked',
  
      onPreview: function() {
          if (Ext.isIE8) {
              Ext.Msg.alert('Unsupported Operation', 'This operation requires a newer version of Internet Explorer.');
              return;
          }
          var chart = this.lookupReference('chart');
  
          chart.preview();
      },
  
      onThemeSwitch: function () {
          var chart = this.lookupReference('chart'),
              currentThemeClass = Ext.getClassName(chart.getTheme()),
              themes = Ext.chart.theme,
              themeNames = [],
              currentIndex = 0,
              name;
  
          for (name in themes) {
              if (Ext.getClassName(themes[name]) === currentThemeClass) {
                  currentIndex = themeNames.length;
              }
              if (name !== 'Base' && name.indexOf('Gradients') < 0) {
                  themeNames.push(name);
              }
          }
          chart.setTheme(themes[themeNames[++currentIndex % themeNames.length]]);
      },
  
      onStackGroupToggle: function (segmentedButton, button, pressed) {
          var chart = this.lookupReference('chart'),
              series = chart.getSeries()[0],
              value = segmentedButton.getValue();
  
          series.setStacked(value === 0);
          chart.redraw();
      },
  
      // The 'target' here is an object that contains information
      // about the target value when the drag operation on the column ends.
      onEditTipRender: function (tooltip, item, target, e) {
          var fieldIndex = Ext.Array.indexOf(item.series.getYField(), target.yField),
              browser = item.series.getTitle()[fieldIndex];
  
          tooltip.setHtml(
              browser + ' on ' + item.record.get('month') + ': ' +
              target.yValue.toFixed(1) + '%');
      },
  
      onBarTipRender: function (tooltip, record, item) {
          var fieldIndex = Ext.Array.indexOf(item.series.getYField(), item.field),
              browser = item.series.getTitle()[fieldIndex];
  
          tooltip.setHtml(browser + ' on ' +
              record.get('month') + ': ' +
              record.get(item.field).toFixed(1) + '%');
      },
  
      onGridMonthRender: function (value) {
          return value;
      },
  
      onGridValueRender: function (value) {
          return value + '%';
      },
  
      onAxisLabelRender: function (axis, label, layoutContext) {
          return label.toFixed(label < 10 ? 1: 0) + '%';
      }
  
  });