source: josm/trunk/src/org/openstreetmap/josm/gui/history/ReversedChangeListener.java@ 17318

Last change on this file since 17318 was 16456, checked in by simon04, 4 years ago

fix #19161 - History/RelationMemberListViewer: show reversed diff indicator

File size: 1.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import javax.swing.JTable;
5import javax.swing.event.TableModelEvent;
6import javax.swing.event.TableModelListener;
7import javax.swing.table.TableColumnModel;
8
9/**
10 * Updates the column header text and indicates a normal/reversed diff sorting
11 */
12final class ReversedChangeListener implements TableModelListener {
13 private final TableColumnModel columnModel;
14 private final JTable table;
15 private Boolean reversed;
16 private final String nonReversedText;
17 private final String reversedText;
18 private final String reversedTooltip;
19
20 ReversedChangeListener(JTable table, TableColumnModel columnModel, String reversedTooltip) {
21 this.columnModel = columnModel;
22 this.table = table;
23 Object columnName = columnModel.getColumn(0).getHeaderValue();
24 this.nonReversedText = columnName + (table.getFont().canDisplay('\u25bc') ? " \u25bc" : " (1-n)");
25 this.reversedText = columnName + (table.getFont().canDisplay('\u25b2') ? " \u25b2" : " (n-1)");
26 this.reversedTooltip = reversedTooltip;
27 }
28
29 @Override
30 public void tableChanged(TableModelEvent e) {
31 if (e.getSource() instanceof DiffTableModel) {
32 final DiffTableModel mod = (DiffTableModel) e.getSource();
33 if (reversed == null || reversed != mod.isReversed()) {
34 reversed = mod.isReversed();
35 columnModel.getColumn(0).setHeaderValue(reversed ? reversedText : nonReversedText);
36 table.getTableHeader().setToolTipText(reversed ? reversedTooltip : null);
37 table.getTableHeader().repaint();
38 }
39 }
40 }
41}
Note: See TracBrowser for help on using the repository browser.