@Override
	public void tableChanged(TableModelEvent event) {
		if (TableModelEvent.ALL_COLUMNS == event.getColumn()) {
			// rebuild the model
		} else if (gui.connected) {
			int column = event.getColumn();
			int row = event.getFirstRow();
			Object value = tableModel.getValueAt(row++, column++);
			try {
				rslt.absolute(row);
				Object old = rslt.getObject(column);
				if (old == null) {
					old = "";
				}
				// System.out.println(old + "\t-->\t" + value);
				if (!value.toString().equals(old.toString())) {
					// new and old values different
					// TODO fix readonly primary by reload insert row
					rslt.updateObject(column, value);
					rslt.updateRow();
					state("update x: " + column + " ; y: " + row + " to: "
							+ value);
				}
			} catch (SQLException e) {
				if (e.getErrorCode() == 0) {
					// row not in set --> insert row
					try {
						rslt.moveToInsertRow();
						rslt.updateObject(column, value);
					} catch (SQLException e1) {
						gui.handleSQLException(e1);
					}
				} else {
					gui.handleSQLException(e);
				}
			} finally {
				// reload();
			}
		} else {
			state("can't alter db --> not connected");
		}
	}