public String getColumnText(Object element, int columnIndex) {
      TransactionPair<?> pair = (TransactionPair<?>) element;
      Transaction t = pair.getTransaction();

      switch (columnIndex) {
        case 0:
          return Values.Date.format(t.getDate());
        case 1:
          if (t instanceof AccountTransaction) return ((AccountTransaction) t).getType().toString();
          else if (t instanceof PortfolioTransaction)
            return ((PortfolioTransaction) t).getType().toString();
          return null;
        case 2:
          return Values.Share.format(t.getShares());
        case 3:
          if (model.isChangeTransactions() && t.getDate().before(model.getExDate())) {
            long shares = t.getShares() * model.getNewShares() / model.getOldShares();
            return Values.Share.format(shares);
          }
          return null;
        case 4:
          return pair.getOwner().toString();
        default:
          return null;
      }
    }