public void addMenu(Control tableView, Runnable copyTableCell, Supplier<String> createCsvFromTable){
MenuItem item = new MenuItem("Copy cell",uniformDesign.createIcon(FontAwesome.Glyph.COPY));
item.setOnAction(event -> {
copyTableCell.run();
});
item.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN));
KeyCodeCombination keyCodeCombination = new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN);
tableView.addEventFilter(KeyEvent.KEY_RELEASED, event -> {
if (keyCodeCombination.match(event)) {
copyTableCell.run();
}
});
MenuItem export = new MenuItem("Copy table (csv)",uniformDesign.createIcon(FontAwesome.Glyph.TABLE));
export.setOnAction(event -> {
exportTableToClipboard(createCsvFromTable.get());
});
MenuItem fileExport = new MenuItem("Save table (csv)",uniformDesign.createIcon(FontAwesome.Glyph.FILE));
fileExport.setOnAction(event -> {
exportTableToFile(createCsvFromTable.get(),tableView.getScene().getWindow());
});
ContextMenu menu = new ContextMenu();
menu.getItems().add(item);
menu.getItems().add(export);
menu.getItems().add(fileExport);
tableView.setContextMenu(menu);
}