public void setValueAt(Object value, int row, int col) {

	    if (prevRow == -1) {
	        prevRow = row;
	    }
		// Fermentable m = (Fermentable) data.get(row);
		try {
			switch (col) {
				case 0:
					data.setFermentStepType(row, value.toString());
				case 1:
					try {
						NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
						Number number = format.parse(value.toString().trim());
						data.setFermentStepTime(row, number.intValue());
					} catch (NumberFormatException m) {
						m.printStackTrace();
					}
					break;
				case 2 :
					try {
						NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
						Number number = format.parse(value.toString().trim());
						data.setFermentStepTemp(row, number.doubleValue());
					} catch (NumberFormatException m) {
						m.printStackTrace();
					}
					break;
				case 3 :
					data.setFermentStepTempU(row, value.toString());
					break;	
			}
		} catch (Exception e) {
		};
		
		if (prevRow != row) {
    		data.calcFermentTotals();
    		// Don't fire off the updates until the row is deselected
    		
    		fireTableCellUpdated(row, col);
    		fireTableDataChanged();
		}
		//displayRecipe();		
	}