VCardList list = new VCardList(); Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
	public void valueChanged(ListSelectionEvent e) {		if (!e.getValueIsAdjusting()) {			VCardList list = new VCardList();			Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();			Person person = null;			Call call = null;			int rows[] = table.getSelectedRows();			selectedCalls = rows.length;			selectedCallsTotalMinutes = 0;			for (int i = 0; i < rows.length; i++) {				call = (Call) table.getJfritz().getCallerlist().getFilteredCallVector().get(rows[i]);				person = call.getPerson();				if (person != null && person.getFullname() != "") { //$NON-NLS-1$ 					// FIXME					// person.getVCard					list.addVCard(person);				}				selectedCallsTotalMinutes += call.getDuration();			}			StringSelection cont = new StringSelection(list.toVCardList());			clip.setContents(cont, null);			if (rows.length == 1) {				// table.getJfritz().getJframe().getPhoneBookPanel().getPersonPanel().setPerson(person);				PhoneBookTable pt = table.getJfritz().getJframe()						.getPhoneBookPanel().getPhoneBookTable();				Vector persons = table.getJfritz().getPhonebook()						.getFilteredPersons();				for (int i = 0; i < persons.size(); i++) {					Person p = (Person) persons.get(i);					if (p == person) {						pt.getSelectionModel().setSelectionInterval(i, i);						table.getJfritz().getJframe().getPhoneBookPanel()								.showPersonPanel();												// assuring that the newly selected row in the phonebook is visible						JViewport viewport = (JViewport)pt.getParent();						Rectangle rect = pt.getCellRect(i, 0, true);						Point vp = viewport.getViewPosition();						rect.setLocation(rect.x-vp.x, rect.y-vp.y);						viewport.scrollRectToVisible(rect);												break;					}				}				table.getJfritz().getJframe().getCallerListPanel()						.setDeleteEntryButton();				table.getJfritz().getJframe().setStatus();			} else if (rows.length > 0) {				// Setze Statusbar mit Infos ber selektierte Anrufe				table.getJfritz().getJframe().setStatus(JFritz.getMessage("entries").replaceAll( //$NON-NLS-1$						"%N", Integer.toString(selectedCalls)) + ", "  //$NON-NLS-1$,  //$NON-NLS-2$                        + JFritz.getMessage("total_duration") + ": " + (selectedCallsTotalMinutes / 60) + " min"); //$NON-NLS-1$,  //$NON-NLS-2$,  //$NON-NLS-3$				if (rows.length == table.getRowCount())					table.getJfritz().getJframe().getCallerListPanel()							.setDeleteListButton();				else					table.getJfritz().getJframe().getCallerListPanel()							.setDeleteEntriesButton(rows.length);			} else {				table.getJfritz().getJframe().getCallerListPanel()						.disableDeleteEntriesButton();			}		}	}