package org.obo.app.swing;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import ca.odell.glazedlists.swing.TableComparatorChooser;
public class SortDisabler implements ActionListener {
private boolean previousSortWasReverse = false;
private int previouslySortedColumn = -1;
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source instanceof TableComparatorChooser<?>) {
this.turnOffSortingIfNeeded((TableComparatorChooser<?>)source);
}
}
private void turnOffSortingIfNeeded(TableComparatorChooser<?> sorter) {
final int sortedColumn = (sorter.getSortingColumns().isEmpty()) ? -1 : sorter.getSortingColumns().get(0);
if (this.previousSortWasReverse && this.previouslySortedColumn == sortedColumn) {
this.previousSortWasReverse = false;
sorter.clearComparator();
}
if (sortedColumn > -1) {
this.previousSortWasReverse = sorter.isColumnReverse(sortedColumn);
this.previouslySortedColumn = sortedColumn;
}
}
}