public Object getValueAt(int row, int column) {
        if (row >= listData.length)
            throw new IndexOutOfBoundsException("Table row "+row+" is not valid");

        PriceHistory h = listData[row];
        Object value;

        switch (column) {
            case 0:                                 // Date
                value = h.getDate();
                break;

            case 1:                                 // Price
                value = Double.valueOf(h.getPrice());
                break;
                
            case 2:                                 // Split
                double ratio = h.getSplitRatio();
                if (ratio == 0.0) {
                    value = "";
                } else if (ratio < 1.0) {
                    value = String.format("  1:%d", Math.round(1.0/ratio));
                } else {
                    value = String.format("  %d:1", Math.round(ratio));
                }
                break;

            default:
                throw new IndexOutOfBoundsException("Table column "+column+" is not valid");
        }

        return value;
    }