Skip to content

Commit

Permalink
Bug Fix: Fixed tree table sorting columns really slowly
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenGnu committed Nov 4, 2021
1 parent 0ea51f6 commit 41ac65c
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion src/main/java/net/nikr/eve/jeveasset/gui/tabs/tree/TreeTab.java
Expand Up @@ -119,6 +119,7 @@ private enum TreeAction {
private final EventList<TreeAsset> eventList;
private final EventList<TreeAsset> exportEventList;
private final SortedList<TreeAsset> sortedList;
private final SortedList<TreeAsset> emptySortedList;
private final FilterList<TreeAsset> filterList;
private final TreeList<TreeAsset> treeList;
private final TreeFilterControl filterControl;
Expand Down Expand Up @@ -202,6 +203,10 @@ public TreeTab(final Program program) {
filterList = new FilterList<>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Sorting
EventList<TreeAsset> emptyEventList = EventListManager.create();
emptyEventList.getReadWriteLock().readLock().lock();
emptySortedList = new SortedList<>(emptyEventList);
emptyEventList.getReadWriteLock().readLock().unlock();
eventList.getReadWriteLock().readLock().lock();
sortedList = new SortedList<>(filterList);
eventList.getReadWriteLock().readLock().unlock();
Expand All @@ -217,7 +222,7 @@ public TreeTab(final Program program) {
jTable.setRowHeight(22);
jTable.addMouseListener(listener);
//Sorting
TableComparatorChooser<TreeAsset> tableComparatorChooser = TableComparatorChooser.install(jTable, sortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
TableComparatorChooser<TreeAsset> tableComparatorChooser = TableComparatorChooser.install(jTable, emptySortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
tableComparatorChooser.addSortActionListener(new ListenerSorter());
//Tree
TreeTableSupport install = TreeTableSupport.install(jTable, treeList, 0);
Expand Down Expand Up @@ -651,6 +656,16 @@ public void actionPerformed(ActionEvent e) {
@Override
public void run() {
expansionModel.setState(ExpandedState.LOAD);
try {
jTable.lock();
emptySortedList.getReadWriteLock().readLock().lock();
sortedList.getReadWriteLock().writeLock().lock();
sortedList.setComparator(emptySortedList.getComparator());
} finally {
emptySortedList.getReadWriteLock().readLock().unlock();
sortedList.getReadWriteLock().writeLock().unlock();
jTable.unlock();
}
}
});
}
Expand Down

0 comments on commit 41ac65c

Please sign in to comment.