primaryTableViewHeader = (TableViewHeader)wtkxSerializer.get("primaryTableViewHeader");
fixedTableView = (TableView)wtkxSerializer.get("fixedTableView");
fixedTableViewHeader = (TableViewHeader)wtkxSerializer.get("fixedTableViewHeader");
// Keep selection state in sync
primaryTableView.getTableViewSelectionListeners().add(new TableViewSelectionListener() {
@Override
public void selectedRangeAdded(TableView tableView, int rangeStart, int rangeEnd) {
if (!synchronizingSelection) {
synchronizingSelection = true;
fixedTableView.addSelectedRange(rangeStart, rangeEnd);
synchronizingSelection = false;
}
}
@Override
public void selectedRangeRemoved(TableView tableView, int rangeStart, int rangeEnd) {
if (!synchronizingSelection) {
synchronizingSelection = true;
fixedTableView.removeSelectedRange(rangeStart, rangeEnd);
synchronizingSelection = false;
}
}
@Override
public void selectedRangesChanged(TableView tableView, Sequence<Span> previousSelectedRanges) {
if (!synchronizingSelection) {
synchronizingSelection = true;
fixedTableView.setSelectedRanges(tableView.getSelectedRanges());
synchronizingSelection = false;
}
}
});
fixedTableView.getTableViewSelectionListeners().add(new TableViewSelectionListener() {
@Override
public void selectedRangeAdded(TableView tableView, int rangeStart, int rangeEnd) {
if (!synchronizingSelection) {
synchronizingSelection = true;
primaryTableView.addSelectedRange(rangeStart, rangeEnd);