protected void setPanelPerson(P p, boolean newPerson) {
		if (getFieldsChanged()) {
			System.out.println("Player panel changing, fields modified.");
			try {
				savePerson();
			} catch (InvalidFieldException e) {
				setExceptionError(e);
				return;
			}
		}

		isNewPerson = newPerson;

		if (isNewPerson) {
			loadedPerson = newPerson();
			btnSave.setText("Add");
		} else {
			btnSave.setText("Save");
			
			if (loadedPerson == p) {
				return; // don't need to set it then..
			}
			
			loadedPerson = p;
		}

		// let the edit pane handle most
		personFields.setEditPane(p, newPerson);

		boolean t = GameData.getCurrentGame().isSeasonStarted();
		
		// delete button activation
		btnDelete.setEnabled(!t && table.getRowCount() > 0);

		if (newPerson || p == null) {
			// we don't want any rows selected
			ListSelectionModel m = table.getSelectionModel();
			m.clearSelection();

			return;
		}

		tableModel.setRowSelect(p);
	}