in codeexplorer/src/main/java/nl/obren/sokrates/codeexplorer/duplication/DuplicatesPane.java [95:131]
private void configureTable() {
table.setEditable(false);
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
filesForPreview1.setOnAction(event -> {
int selectedIndex = filesForPreview1.getSelectionModel().getSelectedIndex();
if (selection != null && selectedIndex >= 0) {
DuplicatedFileBlock duplicatedFileBlock = selection.getDuplicatedFileBlocks().get(selectedIndex);
codePreview1.setEditorValue(duplicatedFileBlock.getSourceFile());
codePreview1.select(duplicatedFileBlock.getStartLine(), duplicatedFileBlock.getEndLine() - 1);
codePreview1.goToLine(duplicatedFileBlock.getStartLine());
}
});
filesForPreview2.setOnAction(event -> {
int selectedIndex = filesForPreview2.getSelectionModel().getSelectedIndex();
if (selection != null && selectedIndex >= 0) {
DuplicatedFileBlock duplicatedFileBlock = selection.getDuplicatedFileBlocks().get(selectedIndex);
codePreview2.setEditorValue(duplicatedFileBlock.getSourceFile());
codePreview2.select(duplicatedFileBlock.getStartLine(), duplicatedFileBlock.getEndLine() - 1);
codePreview2.goToLine(duplicatedFileBlock.getStartLine());
}
});
table.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
selection = newSelection;
if (newSelection != null) {
duplicationFragmentPreview.setText(newSelection.getDisplayContent());
List<String> items = new ArrayList<>();
newSelection.getDuplicatedFileBlocks().forEach(duplicatedFileBlock -> {
items.add(duplicatedFileBlock.getSourceFile().getRelativePath() + " ("
+ duplicatedFileBlock.getStartLine() + ":" + duplicatedFileBlock.getEndLine() + ")");
});
filesForPreview1.setItems(FXCollections.observableArrayList(items));
filesForPreview1.getSelectionModel().select(0);
filesForPreview2.setItems(FXCollections.observableArrayList(items));
filesForPreview2.getSelectionModel().select(1);
}
});
}