code: public void setColumns(int n) {
          if (n < 1) throw new IllegalArgumentException("Min column count is 1");
          if (n > 5) throw new IllegalArgumentException("Max column count is 5");
          if (n == columns) return;
          this.columns = n;
          refresh(this.columns);
      }
docs: This is an O(n) operation where n is the number of child widgets. This
  is because in a jquery mobile table the cell position is determined by
  the classname assigned. So all cells in column0 are assigned a
  classname of ui-block-a, and so on.
  
  When the relative position of a cell is changed, the classname must be
  changed. Therefore all add and remove operations (except for the last
  element) and resize operations (such as this method) results in a
  shuffle which requires an iteration through all elements to update
  their appropriate classname.
  
  If the new column count is the same as the old column count then this
  is a no-op call.