private void lookupCollaborators() {
		SwingWorker worker = new SwingWorker("Lookup Collaborators") {
			public Object construct() {
				return lookupClassmates();
			}

			public void finished() {
				String classmates = (String) get();
				if (classmates == null || classmates.trim().equals("")) {
					JOptionPane.showMessageDialog(ReportDialog.this, "Sorry, we did not find any classmate for you.");
					return;
				}
				String[] x = classmates.split(",");
				int n = x.length;
				String[] id = new String[n];
				String[] name = new String[n];
				for (int i = 0; i < n; i++) {
					String[] y = x[i].split(":");
					id[i] = y[0].trim();
					name[i] = y[1].trim();
				}
				String current = collaboratorField.getText();
				CollaboratorSelection cs = new CollaboratorSelection(name, current != null ? current.split(",") : null);
				cs.show(ReportDialog.this);
				if (cs.isOK()) {
					String s = cs.getSelection();
					String t = s;
					for (int i = 0; i < n; i++) {
						t = t.replace(name[i], id[i]);
					}
					student.setCollaboratorIdArray(t.split(","));
					collaboratorField.setText(s);
					if (s != null && !s.trim().equals("")) {
						changeNames(student.getFullName() + ", " + s);
					}
				}
			}
		};
		worker.start();
	}