tableView.getColumns().addAll(firstNameColumn, lastNameColumn);
firstNameColumn.setCellValueFactory(new ProxyCellValueFactory<Object, Object>());
AdapterFactoryTableCellFactory<Object, Object> firstNameCellFactory = new AdapterFactoryTableCellFactory<>(adapterFactory, 0);
firstNameCellFactory.addCellCreationListener(new CellDragAdapter());
firstNameCellFactory.addCellCreationListener(new EditingDomainCellDropAdapter(editingDomain));
firstNameColumn.setCellFactory(firstNameCellFactory);
firstNameColumn.setSortable(false);
lastNameColumn.setCellValueFactory(new ProxyCellValueFactory<Object, Object>());
AdapterFactoryTableCellFactory<Object, Object> lastNameCellFactory = new AdapterFactoryTableCellFactory<Object, Object>(
adapterFactory, 1);
lastNameCellFactory.addCellCreationListener(new CellDragAdapter());
lastNameCellFactory.addCellCreationListener(new EditingDomainCellDropAdapter(editingDomain));
lastNameColumn.setCellFactory(lastNameCellFactory);
lastNameColumn.setSortable(false);
tableView.setItems(new AdapterFactoryObservableList<Object>(adapterFactory, contactsManager.getRootGroup()));