code: function changedActiveItems(item) {
    if (!defined(item._dataflowUrl)) {
      // All the data is already here, just update the total columns.
      var shownDimensionCombinations = calculateShownDimensionCombinations(
        item,
        item._fullDimensions
      );
      var columns = item._tableStructure.columns.slice(
        0,
        shownDimensionCombinations.ids.length + item._numberOfInitialColumns
      );
      if (columns.length > 0) {
        columns = columns.concat(
          buildTotalSelectedColumn(item, shownDimensionCombinations)
        );
        updateColumns(item, columns);
      }
      return when();
    } else {
      // Get the URL for the data request, and load & build the appropriate table.
      var activeConceptIds = calculateActiveConceptIds(item);
      var dimensionRequestString = calculateDimensionRequestString(
        item,
        activeConceptIds,
        item._fullDimensions
      );
      if (!defined(dimensionRequestString)) {
        return; // No value for a dimension, so ignore.
      }
      return loadAndBuildTable(item, dimensionRequestString);
    }
  }
docs: Called when the active column changes. Returns a promise.